BPMN inclusive gateway - one path always fires, other conditional. How to model?
Hi all,
I am using an inclusive gateway with two exit sequences. One sequence should always be executed, the other sequence only when an expression is true. It looks like this:
The problem is that (for an inclusive split) I have to define a default flow. The problem is that the default sequence only fires when all of the other expressions are false.
So with only two exit sequences (one default and one with condition), the inclusive gateway seems to behave like an exclusive gateway: in all cases only one of the exit sequences is fired.
Does anyone have an idea how to model this correctly?
Thanks in advance,
Stefan
Comments
The same hack I've used :)
Thanks for the replies. I have tried this hack as well: the model is executing indeed, but I still get a validation warning: "An output default flow should be defined for Gateway 1" .
Actually this warning should be an information message. It is just a general best practice to have default transition on exclusive and inclusive gateway to avoid to lock the process execution in the gateway.
You can safely ignore this warning.
OK. Many thanks Antoine and Velerioneri.
After a bit of thinking, I guess this is the best way to model it:
This works without errors or warnings.
I'm a newbie converting to Bonita and this hack seems counter-intuitive.
If I don't mark one transition as being the default, the inclusive gateway acts as I expect, but I get a validation warning that an output default flow should be defined for the gateway.
If I mark one of the gateway's transitions as being the default path, I don't get the warning, but the process omits that transition if the true condition is meet for the other transition.
That's not how BPMN 2.0 says a inclusive gateway should behave and not how other modelling apps behave. Having to make a 'ghost' transition between the gateways is silly.
After reading BPMN 2.0 it seems that Bonita BPM inclusive gateway behave exactly as recommended by the specification. I'm quoting here the specification (10.5.3 Inclusive Gateway):
And about default path:
So again I agree that having a warning if you don't have any default path is probably not the perfect solution but still the behavior as run time comply to BPMN 2.0 standard.
OK, fair enough.
I always considered that the path that didn't have a condition associated with it WAS the default path and didn't need to be declared as such. The other path only became included if the condition associated with it became true. This meant the inclusive gateway only needed to test for one condition, not two.