Dynamically Assigning Task Participants with the Assignment Service

Human workflow participants are specified declaratively in a routing slip. The routing slip guides the human workflow by specifying the participants and how they participate in the human workflow (for example, management chain hierarchy, serial list of approvers, and so on).

The Human Task Editor enables you to declaratively create the routing slip using various built-in patterns. In addition, you can use advanced routing based on business rules to do more complex routing. However, to do more sophisticated routing using custom logic, you implement a custom assignment service to do routing.

To support a dynamic assignment, an assignment service is used. The assignment service is responsible for determining the task assignees. You can also implement your own assignment service and plug in that implementation for use with a particular human workflow.

The assignment service determines the following task assignment details in a human workflow:

  • The assignment when the task is initiated.

  • The assignment when the task is reinitiated.

  • The assignment when a user updates the task outcome. When the task outcome is updated, the task can either be routed to other users or completed.

  • The assignees from whom information for the task can be requested.

  • If the task supports reapproval from Oracle BPM Worklist, a user can request information for reapproval.

  • The users who reapprove the task if reapproval is supported.

The human workflow service identifies and invokes the assignment service for a particular task to determine the task assignment.

For example, a simple assignment service iteration is as follows:

  1. A client initiates an expense approval task whose routing is determined by the assignment service.

  2. The assignment service determines that the task assignee is jcooper.

  3. When jcooper approves the task, the assignment service assigns the task to jstein. The assignment service also specifies that a notification must be sent to the creator of the task, jlondon.

  4. jstein approves the task and the assignment service indicates that there are no more users to whom to assign the task.