Flow

Flow refers to a modeling element describing “flow” of tasks or messages in Business Process Diagrams.

Overview of Flow
Flow describes flow of business itself by connecting two objects to show, in a process diagram, the execution order of activities or messages transmitted and received among participants in a process. In BPMN, Flow includes two types as follows:


 * Sequence Flow
 * Message Flow

In BPMN, “Connecting Objects” that connect multiple objects are made up with three types:


 * Sequence Flow
 * Message Flow
 * Association

Flow is supposed to “have direction” and thus cannot include any Associations that do not always have direction.

In actual business, necessary elements are not only “what” and “how” but also “in which order” and “for whom by whom” tasks should be carried out. BPMN has been created to model “business flow” (creation of Business Process Diagrams), and so Flow plays a very important role because it is a modeling elements representing the “flow.” It is represented by connecting a starting object and an ending object (mainly “Flow Objects”) with one allow.

Conditional Sequence Flow
This type of Sequence Flow is assigned conditional expressions. When the conditional expression defined on a Flow is satisfied, the process can proceed on that Flow. When the starting point of this type of Flow is connected to an Activity with Conditional Split, “Conditional Marker” (a small diamond) is placed at the starting point of the Sequence Flow. When it is a “Split/Decision Gateway,” this Gateway plays a role of “Conditional Marker” and thus no marker is required.

Default Sequence Flow
This type of Sequence Flow has a default conditional expression. It is taken when all of other Conditional Sequence Flows are “false.” The Marker must be a backslash near the beginning of the Sequence Flow line. If all of conditional expressions of Conditional Sequence Flows originating at one Flow Object are evaluated as “false,” any Conditional Sequence Flows cannot be taken, and that process gets stuck. To avoid such a situation, Default Sequence Flow is needed and used. It must always be used with Conditional Sequence Flows.

(Uncontrolled) Sequence Flow
All types of Sequence Flow other than the two listed above. This plays a role in passing simply to the subsequent Flow Object without any evaluation on the process flow.

Message Flow
This type of Flow represents messages transmitted and received between two entities (participants, organizations, divisions, etc.). It connects to Flow Objects in a Pool or to a Pool itself. Messages are sent according to the direction of the arrow.

Remarks
In BPMN, lines representing Sequence Flows/Message Flows are not called “Control Flow.” Sequence Flow (Order of Activities) and Message Flow (arrival of messages) also “control” start of Activities, therefore they are simply called “Flows.” This is helpful to distinguish them from “Conditional Sequence Flows.”

Related Articles

 * BPMN
 * Activity
 * Event
 * Gateway
 * Swimlane
 * Sequence Flow
 * Conditional Sequence Flow
 * Message Flow
 * Default Sequence Flow
 * Fork