Quick Intro to Workflow Task Assignment
Workflows are mostly about enabling human interactions in a business process. One of the ways to enable such interactions is through Task Assignment. A Task is a unit of work that will be accomplished with a Participant. A Task is sometimes manual (e.g., calling someone on the phone, posting a letter, etc.), or it can be some sort of automated, electronic activity (e.g., filling a form on a web site). Whatever the task happens to be, its outcome will determine the best way to proceed when it is completed.
A Task can be assigned to an individual as well as a group of actors, either at design time (static) or at runtime (dynamic). When actors are selected at design time, it means you assign the task to a particular individual or group. Once the Workflow is run, you cannot change the actor based on conditions. However, when you decide on the actors at runtime, you will decide who (actor) is more suitable for the task based on specific criteria of the available actors and/or task. You can use a complex hierarchical decision mechanism or simply go with a Decision Table to decide on the relevant actors.
As you can see in the Approval Workflow example shown above, there is a “Select Approvers” step. This step allows you to select the actors from a Directory Service (i.e., Active Directory or your own custom Database). This pool of actors depends entirely on what you need and what your application provides as a Directory Service to the Workflow engine.
When a Workflow is dynamic, it can decide on the appropriate actors of the task at runtime. For example, who can approve a contract based on its value? When the task is assigned, it can also manage the interaction of those actors. If one person approves the contract, is that all that is required? Or does the contract require at least three positive votes out of five people? These scenarios can go on and on. This aspect of a Task can be controlled by an Interaction Policy. In a dynamic Workflow platform, you can define all aspects of the Workflow at runtime (as well as at design time), which then enables you to model complex Workflow behaviour up front, or decide how to do it based on conditions at runtime.
A Task is a unit of work that will be assigned to the Participants of a Workflow. A task can be assigned to a group of people in parallel, so that all of these take action on the task, or it can be assigned to individuals separately. When a group of actors is working on a Task, the interaction policy determines the outcome of the task.
For more detailed information, have a look at http://wiki.flexrule.com/index.php?title=Designer:Workflow/Task_Assignment