Most processes depict real-life, practical business or scientific scenarios which need the interactions of a human at least once in its workflow design. Typically, these interactions are initiated by the process itself, and requests a user input to proceed. For example, consider a "bank loan request" process which often requires the final decision to be taken by a human.
These human interactions are referred to as human tasks. Human Tasks enable human interactions to be initiated from a process, so that the process issues tasks that can be completed by humans. Within a BPEL processes, such tasks are modeled as outgoing service calls, but those service calls are intended for and processed by a human. For example, a loan issuing process may include a human task step in its workflow to let a bank manager/executive review and approve a loan. Such a task can typically trigger an email/alert to the manager, allowing him to click on a link, review the loan, and approve it. While the approval is pending, the calling processes wait, and the approval or rejection triggers a message in the process which takes the process to the next step of execution in its workflow.
In SOA, human tasks management is generally facilitated by a Web service. For example, the human tasks server, which manages all human task related operations, is defined as a web service by the Human Tasks specification. Human tasks are realized using two technical specifications: Web Services for Human Task (WS-HumanTask: http://docs.oasis-open.org/bpel4people/bpel4people-1.1-spec-cd-09.pdf) Specification and WS-BPEL Extension for People (BPEL4People: http://docs.oasis-open.org/bpel4people/ws-humantask-1.1-spec-cd-10.pdf) specification. WS-HumanTask defines interfaces for a task server that enable the workflow engine to create tasks, enabling the organizations to map the tasks to humans and manage them. Support for users to interact with the tasks. On the other hand, BPEL4people specification extends workflow process definitions to include human tasks definitions.
EI Business Process implements the WS-Human Task specification. It has WS-Human Task API and UI which expose the functionality in Task Management API. It enables users to bundle a human tasks definition as a zip file and upload it, where the tasks definition includes input and output message formats for the human task.
Adding a human task
Follow the instructions below to add a human task.
- Log on to the product's management console and select "Human Tasks-> Add" under the "Main" menu.
- The "New HumanTask Package" window opens. Provide the file and click "Upload.
- The "Deployed Task Configurations" window opens with the newly-added human task listed. For example,
- Package Name: The name of the package.
- Task Definition: The task definition
- Type: Whether this definition is a Task or a Notification
- Status: The package status.
- Click on a selected "Task Definition".
Using the Human Task Explorer
You can access the WS-HumanTask-Explorer of EI Business Process via https://<hostIP>:9445/humantask-explorer/login.
After login with valid username and password, user will be directed to the task inbox.
Tasks assigned to logged-in user are listed in the MY TASKS tab.
Click on a task list entry, the user will be directed to the task view. Tasks can be filtered based on status by clicking on the particular status in left sidebar.
Task view display the detailed description of the task. The content of the UI depends on the relationship of logged-in user and the viewed task.
List down abstract details (subject, description)
Task Operations (1)
Provide support to change state of the task (only provided to task owner)
Start : Start progress of the task
Stop : Stop progress
Release : Release assigned task (release operation will update state of the task to READY, which allowing other users to claim it to themselves)
Suspend : suspend task.
Resume : resume suspended task
Fail : fail the task
Assign : assign task to another user.
Skip: skip a task from further action
Note that allowed operations differ depending on the state of the task and user permissions.
Additional Task information (2)
Additional information related to the task. This section consists of three tabs:
Summary of task information
All the tasks which is claimable to the logged-in user, are listed down in the claimable tasks tab.
By clicking on each entry, the user can view the task and claim it in the task view.
When viewing a claimable task, which is in READY state(not assigned to a particular user), the task view is similar to above. The viewer can assign it to himself by clicking the claim button, located top left corner among task operations.
Apart from the pages explained above, Notification tab displays the notifications to the user. Search tab can be used to search tasks. Search has options to search by task status and category. Results can be ordered based on the task name, created date, updated date or priority.
For a set of samples on managing human tasks, see Human Task Samples.
Creating a Human Task-artifact project
You will find a human task editor packaged along with the WSO2 EI tooling. This human task editor can be used to create a human task artifact easily.
To create a human task artifact you should have Eclipse setup with the EI tooling pack. For more information, see Installing Enterprise Integrator Tooling.
- Start Eclipse and navigate to File>New>Other.
- Search or scroll and find the Human Task category under the WSO2 folder and click on Human Task Project.
- Enter a project name, human task file name, task name and a target namespace in the form that appears and click Finish. You will now have a new human task project.