The flow mechanism defines the sequence and dependency between task templates within a task group template, and between tasks within a task group.
Flow is a configuration process that determines how a task or task group is processed at runtime. For example, tasks and tasks groups can be carried out sequentially or simultaneously.
Flow is defined based on the association between a task and task group. Flow cannot be established if no association exists. Association is what the other instances are, in relation to the current instance. Flow is how these instances are executed.
A flow consists of one or more flow relationship records. Each flow relationship record is capped by an inbound and outbound task object. The task object is a task template (Definition stage), task (Execution stage), task group template (Definition stage), or a task group (Execution stage). The inbound task object to a flow relationship record is called the predecessor. The outbound task object to a flow relationship record is called the successor.
When you define a task group template, you can establish how the associated task group template and task templates relate to one another. This is called flow, and determines the sequence in which task groups and tasks are generated at runtime.
A task or task group can be executed simultaneously or sequentially. When the flow is defined as a sequence, all predecessors must be completed before the successor task or task group can start.
The flow is also determined by the outcome of the predecessor. The resulting output can be stored as a variable. The values in these variables can be used by workflow to decide the behavior of the flow.
For example, in the following illustration the flow, represented by the diamond, indicates that if Task 1 is flagged as successful, Task 2 is activated. Otherwise, Task 3 is activated. The following figure illustrates a branching flow.
The flow configuration is evaluated along with other advanced settings, such as conditions, actions, and behavior, when the task is completed (State = closed, success, failed, or canceled).
For a detailed example of building flow into your tasks, see Example of creating task templates with a workflow.