Controlling flow with gateways
This topic describes:
Defining parallel sequence flows
In the above diagram, a parallel gateway branches the sequence flow to execute three activities concurrently. If conditional expressions are defined on any of the sequence flows, the parallel gateway ignores them.
The parallel gateway can also be used to join multiple incoming paths. When used as a join gateway to streamline multiple sequence flows into one, the join gateway waits until all the threads complete before proceeding with the next step in the sequence.
Creating conditional sequence flows
In the above diagram, an exclusive gateway executes a single activity, based on a unique conditional expression. The conditional expression can evaluate the result of any activity executed before reaching the gateway.
Conditional sequence flows will be evaluated in the order in which they were defined. One of the sequence flows must be defined without any condition, for use as the default sequence flow if the other conditions are not matched.
To maintain workflow readability, the following conventions are shown:
- The diamond indicates the sequence flows set with the property type of Conditional.
- The backslash indicates the sequence flow set with the property type of Default.
Using the exclusive gateway to join paths
To maintain workflow readability, an exclusive gateway can also be used to join multiple paths. An exclusive gateway is non-blocking, and allows sequence flows to continue even if all paths are not followed. To enable the sequence flow to execute as each activity completes, use an exclusive gateway to define a non-blocking join, as in the image below.