You can model complex logic taken to decide the flow of a decision or merge gateway. To do so, you use the gateway symbol and specify a stereotype of Complex.
The complex gateway is drawn as a diamond symbol with a large asterisk in its center, as shown in the following image.
For a complex merge, you can specify a complex flow condition which is an expression that references incoming Sequence Flow names and or process data that is coming in on input Sequence Flows. The expression determines when the task starts.
Process flow continues when the first signal (a Token) arrives from any of the set of input Sequence Flows. Signals from other input Sequence Flows can arrive, but they are not used to continue the flow of the process.
To model a complex decision
1 Draw a Gateway symbol, and specify a stereotype of complex.
2 Draw Sequence Flow lines from the Gateway symbol to their respective process symbols. Open the definition of each Sequence Flow line, and in the Symbol tab, specify a condition for the flow line to be taken.
3 Specify a Default Sequence Flow.
Open the definition dialog box of the Sequence Flow line you have determined to be the default flow.
Click the Symbol tab; then set Default to True.
This indicates that if the conditions on all alternative flows evaluate as False, then the Default path is taken. According to BPMN, it is not mandatory to specify a default outgoing Sequence Flow.
Note If you do not specify a default outgoing Sequence Flow, you must ensure that the condition on at least one of the other Sequence Flows evaluates as true. If not, the model is invalid.
The following image show an example of a complex decision in a diagram.
To model a complex merge
1 Draw a gateway and select the stereotype complex.
2 Draw two or more applicable Sequence Flows from their respective process to the gateway.
3 Draw an output Sequence Flow, from the gateway to its applicable process.
You must leave the Condition property of the outgoing Sequence Flow blank.