Metamodel user guide
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. A Sequence Flow can optionally define a condition Expression, indicating that the token will be passed down the Sequence Flow only if the Expression evaluates to true. This Expression is typically used when the source of the Sequence Flow is a Gateway or an Activity. A Sequence Flow that has an Exclusive, Inclusive, or Complex Gateway or an Activity as its source can also be defined with as default. Such Sequence Flow will have a marker to show that it is a default flow. The default Sequence Flow is taken (a token is passed) only if all the other outgoing Sequence Flow from the Activity or Gateway are not valid (i.e., their condition Expressions are false). A sequence Flow is "default", if has a default association from a flowNode (Gateway or Activity). A sequence flow is "conditional" is it originates from an activity, and has a conditionExpression. Ownership A Sequence flow belongs to a flow element container or a sub process.
Figure 65 : SequenceFlow class diagram
|boolean IsImmediate [1..1]|
An optional boolean value specifying whether Activities or Choreography Activities not in the model containing the Sequence Flow can occur between the elements connected by the Sequence Flow. If the value is true, they MAY NOT occur. If the value is false, they MAY occur. Also see the isClosed attribute on Process, Choreography, and Collaboration. When the attribute has no value, the default semantics depends on the kind of model containing Sequence Flow: ? For a public Processes and Choreographies no value has the same semantics as if the value were false. ? For an executable and non-executable (internal) Processes no value has the same semantics as if the value were true. ? For executable Processes, the attribute MUST NOT be false.
|string ConditionExpression [1..1]|
|SourceRef : BpmnFlowNode [1..1]|
|TargetRef : BpmnFlowNode [1..1]|
|Connector : BpmnSequenceFlowDataAssociation [0..*]|
A conditional outgoing Sequence Flow from an Activity MUST be drawn with a mini-diamond marker at the beginning of the connector If a conditional Sequence Flow is used from a source Activity, then there MUST be at least one other outgoing Sequence Flow from that Activity. Conditional outgoing Sequence Flow from a Gateway MUST NOT be drawn with a mini-diamond marker at the beginning of the connector. A source Gateway MUST NOT be of type Parallel or Event. A default outgoing Sequence Flow MUST have no condition expression Of the types of FlowNode, only Activities, Gateways, and Events can be the source. However, Activities that are Event Sub-Processes are not allowed to be a source. Of the types of FlowNode, only Activities, Gateways, and Events can be the target. However, Activities that are Event Sub-Processes are not allowed to be a target.