Sequence Flow is a connection object that shows the execution order of activities in a Process.
Overview of Sequence Flow
Sequence Flow is a connection object that
“connects activities and shows the order those activities by means of a solid line with an arrowhead (a solid-line arrow).”
Generally, Sequence Flow is “unidirectional,” and it develops a Process either left to right or top to bottom in a Process diagram, so the arrow’s direction is basically either right-pointing or down-pointing. Each Flow has only one
- Source object: Flow Object as a source (Flow Object that is a source of a flow)
- Target object: Flow Object as a target (Flow Object that is a target of a flow)
However, one Flow Object can have more than one Sequence Flows that connects to it.
In BPMN, Sequence Flow is defined as an object that illustrates, in a diagram, the “execution order” of actual business processes.
Sequence Flow has the following attributes (characteristics).
- Cannot get across boundaries of pools (difference from Message Flow)
- Cannot get across boundaries of Sub-Processes
- Does not receive any influence from artifacts (data objects, groups, annotations, etc.)
- Can connect to any places on the boundaries of Flow Objects.
Redundancy of BPMN
BPMN, which is a flexible notation, has various ways to describe business processes by means of Sequence Flow. So, an identical Process can be drawn in different ways depending on Process diagram designers; such lack of consistency sometimes could puzzle people in charge of actual tasks in the job. This property, which is a side-effect of the high flexibility, is generally called “redundancy” of BPMN.
Types of Sequence Flow
Sequence Flow is classified into three types as follows.
Uncontrolled Sequence Flow
Uncontrolled Sequence Flow is used to simply proceed to the following (subsequent) Flow Object. No conditional expression affects it, and it doesn’t traverse any Gateways. Uncontrolled Sequence Flow allows us to describe tasks carried out in parallel.
Conditional Sequence Flow
Conditional Sequence Flow has a diamond at is source, and a conditional expression is written for it. When a conditional expression defined on the Flow is satisfied, this Flow proceeds. In case a Flow object that is the source of the Flow is an activity with conditional split, it has “Conditional Marker” (a small diamond) at the source of the Sequence Flow. In case Conditional Sequence Flow originates from Decision Gateway, because this Gateway plays a role of “Conditional Marker,” it doesn’t require any markers.
Default Sequence Flow
Default Sequence Flow is Sequence Flow for which a default conditional expression is defined. When all of the other conditional Sequence Flows are “false,” it is taken. It is illustrated (represented) with a backslash near the source of the Sequence Flow.
Mechanism of Sequence Flow
Process Model designers use Sequence Flow in roughly two ways, i.e. Normal Flow and Exceptional Flow, as follows:
- Normal Flow
- Exceptional Flow
- Based on Intermediate Event, which occurs in the middle of process execution, Exceptional Flow arises outside of Normal Flow of a Process. Generally, in case a Throw Intermediate Event (i.e. Message, Timer, Error) is connected to an activity in Normal Flow and there is a reason to activate it, a Token traverses down the Exceptional Flow for “exception handling.”
This is used when a model designer cannot define the order of a series of activities in advance. An executor of the activity decides the effects of the Sequence Flow (i.e. direction, number of times, etc.). A “tilde” is used to draw this.
Merging/Split of Default Flow
Alternative routes, parallel routes, and merging of routes used in Default Flow can be summed up as follows:
|Forking Flow / And-Split||This type splits one Flow into some parallel Flows. Since any control is not performed according to conditions or situations, Unconditional Sequence Flow is used here. Not using Parallel Gateways is an easiest way to draw.|
|Joining Flow / And-Join||This type joins multiple parallel Flows into one. Tokens generated by a Forking Split generally go through multiple parallel Flows and join when they traverse parallel Gateways.|
|This type split one Flow into multiple alternative Flows. They are represented with Controlled Sequence Flows and Gateways (Exclusive, Inclusive, Complex).|
|Merging Flow / OR-Join||This type merges some alternative Flows into one. This includes N-out-of-M Join (merging of multiple Gateways).|
|Activity Looping （Activity Looping）||This shows a repetitive activity by using a “Loop Marker” placed at the center of the bottom of a square of Activity shape. It can also be used in case of expanded Sub-Processes.|
|Sequence Flow Looping||This goes back from a Flow Object to a preceding Flow Object. Usually, a model in which the same process is repeated until a conditional expression is not evaluated as the default is designed. We can do the same thing by using Link Intermediate Event.|
|Sequence Flow Jumping||This is used when a Process Diagram is too large to be accommodated in one page. This refers to Off-Page Connector and Go To Object. Link Intermediate Event plays this role.|
|Connection of Parent Process and Sub-Process||From Flow Object of a Parent Process to Start Event of the Sub-Process, Sequence Flows can be connected. Also, even when a Sub-Process is completed, it is possible to connect End Event in the Sub-Process to Flow Object in the Parent Process.|
|Controls of Flow in Another Process (Milestone)||One Flow is controlled by an activity in another process. Signal Event represents this.|
|Inappropriate Process Diagram||Because BPMN of graphical structure is a flexible notation, sometimes the model is impossible to be carried out in real life (an actual situation) or behaves in such a way that a model designer did not expect; e.g. Deadlock.|
- Event (Start Event, Intermediate Event, End Event)
- Default Sequence Flow
- BPMN1.1Specifications (January 17,2008)