My Tasks

The My Tasks view displays the current user’s active tasks. The task tree groups them by assignment type, process, and task name.

my tasks view

Task List

The following actions are available:

  • Assigned Tasks – Contains tasks assigned directly to the current user.

  • Group Tasks – Contains tasks for which the current user is a candidate.

  • Open task – Open the selected task’s process form to review or complete the task.

  • Refresh – Reload the tasks.

The Process instance business key column displays the business key, which identifies the object associated with the process.

When designing processes, aim to specify a business key. The instance name can serve as an effective business key.

The Due Date column shows when a task is expected to be completed. The value is informational; tracking overdue tasks and responding to them requires custom application logic.

Advanced Task List View

You can create a standalone task list view and customize it for your application. It does not replace the standard My Tasks view.

advanced my tasks view
  • The left side features a filter component that allows filtering by task name, process name, or assignee.

  • The right side displays a table containing the list of user tasks.

Creating an Advanced Task List View

In the Jmix Studio view wizard, select the BPM: Advanced Task List View template.

advanced my tasks view template

Studio generates the view descriptor and controller with comments that explain how to customize them.

Granting Access

As with other views in your project, users need access to the advanced task list view and its associated entities. Grant them an appropriate resource role.

The following BpmProcessTaskPerformerRole grants the required permissions:

import io.jmix.bpm.entity.*;
import io.jmix.security.model.*;
import io.jmix.security.role.annotation.EntityAttributePolicy;
import io.jmix.security.role.annotation.EntityPolicy;
import io.jmix.security.role.annotation.ResourceRole;
import io.jmix.securityflowui.role.annotation.MenuPolicy;
import io.jmix.securityflowui.role.annotation.ViewPolicy;

@ResourceRole(name = "BPM: process task performer", code = BpmProcessTaskPerformerRole.CODE, scope = SecurityScope.UI)
public interface BpmProcessTaskPerformerRole {
    String CODE = "bpm-process-task-performer";

    @ViewPolicy(viewIds = {
            "AdvancedTaskListView", (1)
            "bpm_DefaultStartProcessForm",
            "bpm_DefaultTaskProcessForm",
            "bpm_InputDialogStartProcessForm",
            "bpm_InputDialogTaskProcessForm"
    })
    @MenuPolicy(menuIds = {
            "AdvancedTaskListView" (2)
    })
    @EntityPolicy(entityClass = ContentStorage.class, actions = {EntityPolicyAction.READ})
    @EntityPolicy(entityClass = ProcessDefinitionData.class, actions = {EntityPolicyAction.READ})
    @EntityPolicy(entityClass = TaskData.class, actions = {EntityPolicyAction.READ})
    @EntityAttributePolicy(entityClass = ContentStorage.class, attributes = "*", action = EntityAttributePolicyAction.VIEW)
    @EntityAttributePolicy(entityClass = ProcessDefinitionData.class, attributes = "*", action = EntityAttributePolicyAction.VIEW)
    @EntityAttributePolicy(entityClass = TaskData.class, attributes = "*", action = EntityAttributePolicyAction.VIEW)
    void bpmProcessTaskPerformer();
}
1 Specify the generated view id here.
2 Provide the id of the menu item that navigates to the generated view.