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.
WSO2 Business Process Server 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. The human task management functionality is provided by the following feature in the WSO2 feature repository.
Name : WSO2 Carbon - HumanTask Application Deployer Feature
Identifier : org.wso2.carbon.application.deployer.humantask.feature.group
If human task management capability is not included in your product by default, you can add it by installing the above feature using the instructions given in section, Feature Management. 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".