BPMN shapeBPMN description

Sequence Flows are used to connect flow objects such as Activities, Gateways and Events to specify in which order they have to be executed. Three kinds of sequence flows might be used:

  • Standard Sequence Flow: Indicates that, once a step is done, the following one can be considered.
  • Conditional Sequence Flow: Indicates that, once a step is done, and if the condition associated to the sequence flow is evaluated to true, the following step can be considered.
  • Default Sequence Flow: Marks a sequence flow as default. If a step has several outgoing conditional sequence flows, the default sequence flow will be taken if all the conditions are evaluated to false. Having multiple conditional sequence flows, It is mandatory to define one of them as default sequence flow.
    Note: Regarding process execution, conditional and default sequence flows are only valid as outgoing flows of exclusive data-based gateways.
UML representationUML description

In UML, all sequence flows are mapped to Transitions. Conditional and default sequence flows are getting Guards derived by the expression or the name of the sequence flow.
The guard of a conditional sequence flow is mapped to an overridable operation used as a transition guard.
The default sequence flow gets an else guard.

In the services package an overridable operation is created for the expression of the conditional sequence flow. It is stereotyped with <<BPMNOnSequenceFlowCondition>> and is invoked in the guard mentioned above.

Guard Expressions are mapped to functions returning false by default. They can be amended as needed. The active persistent state instance can be referenced via the self context, e.g.
set return = if self.attribute > 0 then true else false;

  • No labels