Data based XOR Gateway vs Conditional sequence flow

By using sequence flow with conditions itself we can make decisions and able to configure default flow to perform a task, then why we need Data based XOR Gateway to make decision on outgoing flow?

The only difference I can understand is, in conditional sequence flow if more than one condition is matched, let’s say 2 outgoing sequence condition was matched, then it will be executed as parallel. If any other differences from this let me know.

Hi,

I believe the semantics of your process model is more aligned to the inclusive gateaway rather than the exclusive gateway. This can make the model hard to read, for example in your model, the behaviour is 1 or more conditional flows, OR, the default flow.

Hence I find gateways much better at conveying true intent - do you wnat an exclusive or, or do you want an inclusive or?

regards

Rob

1 Like

Exclusive gateway, the outgoing sequence will be always one. But in the inclusive gateway, there will be more than if I’m able to achieve the result through conditional sequence flow then why we need an inclusive gateway?

You can read the documentation about the gateway (or any other symbol you’re trying to understand) to get a complete understanding.
From a BPMN perspective or from a technical perspective.

When to use XOR gateway over conditional sequence flow? What is the best practice for using those notations?

I have a below model, where i used XOR gateway to perform tasks based on certain conditions. Same thing can be achieved in conditional sequence flow also without using XOR gateway. I came through many examples, mostly used is XOR gateway.

Except bpmn readability is there any specific reason to choose XOR gateway over conditional sequence flow?

Hi @aravindhrs,

there is no internal difference between gateway and conditional sequence flow.

But readability is VERY important. So I wouldn’t even consider to use conditional sequence flows.

Hope this helps, Ingo

2 Likes

@Ingo_Richtsmeier Thanks. But I hope when we use conditional sequence flow, there might be possibility for activating more than one outgoing transition based on the condition.