Modeling guidelines for gateways
![*](chapterTOC_bullet.png)
Gateways of the XOR (data-based) type: For all outgoing connections of an XOR (data-based) gateway, the value
Expression must be set for the
Condition attribute, and a valid expression must be used for the
Condition expression attribute.
Sequence flow, especially after gateways
![*](chapterTOC_bullet.png)
For every XOR gateway of the
XOR (data-based) type, the
Default gateway attribute should be specified for exactly one outgoing sequence flow connection (
activates connection type). Under no circumstances must multiple outgoing connections be marked with this attribute.
![*](chapterTOC_bullet.png)
For each XOR gateway of the
XOR (event-based) type there must be at least two outgoing sequence flow connections (
activates or
leads to type).
![*](chapterTOC_bullet.png)
For all outgoing connections of an event-based XOR gateway, no value must be specified for the
Condition attribute. The
Condition expression attribute should not be specified.
![*](chapterTOC_bullet.png)
The following target objects are permitted for outgoing sequence flow connections of an event-based XOR gateway:
![*](chapterTOC_bullet.png)
Functions for which the
Receive task type was set.
![*](chapterTOC_bullet.png)
Intermediate events whose
Event type attribute type has a value other than
Compensation or
Multiple.
![*](chapterTOC_bullet.png)
If there is a function in the set of target objects, this set must not contain an event of the
Message type.
![*](chapterTOC_bullet.png)
If a gateway of the
OR type has no or exactly one incoming sequence flow connection, there must be at least two outgoing sequence flow connections.
![*](chapterTOC_bullet.png)
For all outgoing sequence flow connections of an OR gateway, the value
Expression must be set for the
Condition attribute, and a valid expression must be used for the
Condition expression attribute. The expression must unambiguously relate to the current gateway.
![*](chapterTOC_bullet.png)
If an OR gateway has exactly one outgoing sequence flow connection, no value must be specified for the
Condition attribute of this connection.
![*](chapterTOC_bullet.png)
If a gateway of the
Complex type has no or exactly one incoming sequence flow connection, there must be at least two outgoing sequence flow connections.
![*](chapterTOC_bullet.png)
For all outgoing connections of a complex gateway, the value
None must be specified for the
Condition attribute, especially if there is only one outgoing connection.
![*](chapterTOC_bullet.png)
If a complex gateway has multiple incoming sequence flow connections, a condition that references the sequence flow names and process properties (data) must be specified for the
Incoming condition attribute.
![*](chapterTOC_bullet.png)
If a complex gateway has multiple outgoing sequence flow connections, a condition that references the sequence flow names and process properties (data) must be specified for the
Outgoing condition attribute.
![*](chapterTOC_bullet.png)
If an AND gateway has no or exactly one incoming sequence flow connection, there must be at least two outgoing sequence flow connections.
![*](chapterTOC_bullet.png)
For all outgoing sequence flow connections of an AND gateway, no value must be specified for the
Condition attribute.