Gateways¶
A gateway splits one path into several, or joins several paths back into one. What it does depends on its type and on the routing rules attached to its outgoing connections.
Gateway types¶
Right-click a gateway and open Gateway Type:
| Type | Menu entry | What it does |
|---|---|---|
| Exclusive | Exclusive (XOR) Gateway | Takes one outgoing path: the first rule whose condition is true |
| Parallel | Parallel (AND) Gateway | Takes every outgoing path, without evaluating conditions |
| Inclusive | Inclusive (OR) Gateway | Takes every outgoing path whose condition is true |
A parallel gateway does not offer conditions, and it does not offer a default flow. It waits at a joining point until every incoming branch has arrived.
You can also connect a gateway directly to another gateway. The chain is followed in one go, so the case does not stop between the two gateways.
Routing rules¶
Right-click the gateway and choose Routing rules. Each outgoing connection has one row.
- Each row has a visible drag handle; drag rows to change the order in which the conditions are evaluated.
- Expanding a row's Condition field does not resize or shrink the window, and the expanded row keeps its height.
- Save and reopen: the new order is kept.
Write the condition by hand; the @@ button opens the variable picker. See
Conditions for the expression syntax.
Default flow¶
One outgoing connection can be marked as the default flow. It is taken only when no other rule matched, which is what keeps a case from stopping when the data does not fit any condition.
Open the gateway's context menu and choose Default Flow, then the connection. The submenu is not offered on a parallel gateway, where every path is always taken.
How the rules are evaluated¶
The rules are read in the order of the list, and the order matters:
| Gateway | When several conditions are true |
|---|---|
| Exclusive | The first matching rule wins; the rest are not taken |
| Inclusive, parallel by evaluation | Every matching rule is taken |
| Any with a default flow | The default is used only if nothing matched |
If nothing matches and there is no default flow, the case cannot move:
Process definition error: All conditions in evaluation routing rule evaluated to false, so workflow has stopped. Please change the definition of the evaluation routing rule.
The message names the routing rule, not the case: the fix is a default flow or a wider condition in the process definition.
What the canvas refuses to save¶
The diagram is validated as you connect elements. These are errors, not warnings:
- A converging gateway needs two or more incoming connections.
- A diverging gateway needs two or more outgoing connections.
- A converging gateway needs an outgoing connection.
- A diverging gateway needs an incoming connection.
Subprocesses¶
Right-click a subprocess to see its context menu; it does not offer Delete routing
rule. In Properties, the input and output variable tables sort by Source and
Target, and the @@ button in the Target column opens the variable picker
without errors.
Related¶
- Conditions — the expressions a routing rule evaluates.
- Events — what starts a case and what it waits for.
- Task properties — steps and trigger conditions.
- Derivation — what the user sees when a case moves.