Sequence Flow
Introduction
A Sequence Flow is used to show the order of Flow Elements in a Process or a Choreography. Each Sequence Flow has only one source and only one target. The source and target MUST be from the set of the following Flow Elements: Events (Start, Intermediate, and End), Activities (Task and Sub-Process; for Processes), Choreography Activities (Choreography Task and Sub-Choreography; for Choreographies), and Gateways.
— BPMN 2.0.2 Standard, 8.4.13, Sequence Flow
There are a number of ways to connect elements in BPMN. However, by far the most common one within executable business processes is the Sequence Flow.
A sequence flow is the connector between two elements of a process. After an element is visited during process execution, all outgoing sequence flows are followed. This means that the default nature of BPMN 2.0 is to be parallel: two outgoing sequence flows create two separate, parallel paths of execution.
A sequence flow can have a condition defined on it. When a BPMN 2.0 activity is left, the default behavior is to evaluate the conditions on the outgoing sequence flow. When a condition evaluates to true, that outgoing sequence flow is selected. When multiple sequence flow are selected that way, multiple executions are generated and the process is continued in a parallel way.
The above holds for BPMN 2.0 activities (and events), but not for gateways. Gateways handle sequence flow with conditions in specific ways, depending on the gateway type.
A condition defined on a gateway must be an expression and must always evaluate either to the boolean value true
or false
.
All BPMN 2.0 tasks and gateways can have a default sequence flow. This sequence flow is only selected as the outgoing sequence flow for that activity if and only if none of the other sequence flow could be selected. Conditions on a default sequence flow are always ignored.
It's a modeling best practice that the only elements with more than one incoming or outgoing sequence flows are gateways. All other elements typically have one incoming and one outgoing sequence flow. The only exception to this rule are events, which often have also no incoming or no outgoing sequence flow.
Properties
:::palette-item com.flowable.design:flowable-core-palette com/flowable/palette/core.process.palette SequenceFlow