Custom tasks
Functionality
Service name in microservice orchestration environment: dqhumantask
Example of a link to Swagger: http://dqhumantask.<full namespace name>/dqhumantask/swagger-ui/#/
The module provides the ability for users to access a single list of user tasks assigned as part of the execution of various business processes. The user can filter tasks and process them. When processing a user task, the business process continues to execute, taking into account the action that the user selected when processing the task. User tasks are designed in a business process by specifying a node of the appropriate type.
The User Tasks module provides the following functions:
- Viewing, creating, and editing user task templates.
- Viewing the list of user tasks.
- Managing filters in the list of user tasks.
- Quick processing of a user task from the user task list interface.
- Highlighting the most important tasks in the list.
- Viewing the protocol of a user task.
- Reassigning a task to another performer.
- Cancelling a task for technical or other reasons.
- Processing a user task.
- Choosing a task distribution algorithm.
- Assigning responsible persons who have access to view the task.
- Delegating and escalating a user task.
To work with the "User Tasks" module, log in to the Q.BPM platform.
In the user's side menu, the models "Task Templates" and "Task List" are available. When selecting the "Task Templates" menu item, a search and view form for the list of task templates will open. When selecting the "Task List" menu item, a search and view form for the list of user tasks will open.
Cube Configuration
The cube configuration is done in the version diagram editor. To do this, you need to add "User Task" to the process diagram and configure it.
To configure the cube, simply select the user task template in the modal window from the drop-down list.
To use the "or" gateway after the user task, it is necessary to specify the output parameter in the user task cube that will contain the result of processing this task. To form the output parameter, specify the variable name, type, and value. Example:
- To specify a specific performer in the input parameters, add the parameter:
createdBy - specify the userAccountId of the user
. - To pass actions for task processing, use the parameter:
actions - a map with values **action name: system action name**
. - To pass a comment to tasks, use the parameter:
comment - pass the text of the comment
. - To determine the task responsibilities dynamically from the process, you need to:
- update the Q.BPM Player version
- configure authorization
- enable the "Define dynamically" parameter in the user task template
- pass a list of
responsible
objects to the process on the cube with the "User Task" type. See the example below
def responsible = [
['subjectType': 'ROLE', 'subjectId': roleId, 'subjectName': 'roleSysName', 'subject': 'Роль', 'isPerform': true],
['subjectType': 'USER', 'subjectId': userAccountId, 'subjectName': 'userLogin', 'subject': 'Пользователь', 'isPerform': true],
['subjectType': 'EMPLOYEE', 'subjectId': employeeId, 'subjectName': 'fullName', 'subject': 'Сотрудник', 'isPerform': true],
['subjectType': 'PRODUCTION_ROLE', 'subjectId': roleId, 'subjectName': 'roleSysName', 'subject': 'Производственная роль', 'isPerform': true],
['subjectType': 'USER_GROUP', 'subjectId': groupId, 'subjectName': 'sysName', 'subject': 'Группа пользователей', 'isPerform': true]
]
If a task distribution algorithm is used for dynamic determination in the template, make sure that the subjectType to which the task will be assigned has all the necessary connections involved in the algorithm.
For example: the algorithm specifies a connection between the employee and the department, but this connection is not established for the employee in the system. Thus, when assigning 'subjectType': 'USER', the employee will not see the task.
Task priority
Tasks can be prioritized. The priority is used to filter the list of tasks. To set the priority in a business process, select a cube with the User Task type. In the properties of the cube on the “General” tab, in the “Priority” field, specify a numerical value:
- from 0 to 50 – Low priority
- 51-99 – Average priority
- 100-150 – High priority
If you leave the "Priority" field on the die blank, then by default the task is given a low priority.
User Task List
The User Task List provides extensive functionality for working with a list, including the following features:
- Selection of various filters, including organizational structure filters.
- Editing displayed columns in the task list table.
- Saving applied filters for various needs - you can save different combinations and switch between them.
- Reassignment of the performer.
- Quick task processing from the user task list.
- Task marking - highlighting tasks in the list based on user logic.
- Display and sorting of tasks by priority and overdue status.
- Task cancellation.
- Viewing the task protocol - history.
- Viewing comments - if important messages were left during the business process execution or closure of the previous task.
- Transition to the user task processing form.
- Task delegation.
- Viewing related (child) tasks.
- Postponing the task.
User Task Protocol
The form displays the history of interaction with the task. Various logic based on task processing actions can be implemented in the business process, allowing the task to be sent for a "repeat" cycle. For example, to clarify details or repeat the calculation of an operation.
Task Processing
The processing interface provides detailed information about the user task. The interface includes:
- Left side panel - summary information about the task.
- Central part of the interface - a custom-designed widget for processing various types of tasks.
- User task processing buttons:
- Cancel - closes the task processing form.
- Dropdown list of available actions for task processing.
The custom user task widget must be designed by the developer. The link to the widget must be specified in the user task template. The platform provides a standard processing widget containing the "Comment" input field.
When processing a user task with the "Delegation" type, the parent task will be automatically set to the "Completed" status with the same processing action as the delegation task. When processing a user task with the "Escalation" type, the parent task will not be automatically completed. The parent task will need to be processed.