I have used parallel gateway to have 3 concurrent executions. which now, wait for 3 different messages.
Question.
Is there a “conditional gateway” that can be used for “join” executions which evaluates a certain condition? This gateway should evaluate a “condition” on each message catch event.
Execution should move ahead if either,
Condition hold “true” on receiving any number of message.
or, All 3 messages has been received.
Parallel Gateway, at join waits for all 3 messages to reach, Exclusive gateway doesn’t wait at all!
Please let me know if there is any clarification required!
Just to understand correctly what exactly you’re expecting i wanted to just show you how the current model would work. So i used token simulation in the Camunda modeler to show what would happen if your current model used an XOR gateway at the end.
If we use exclusive gateway, then 3 tokens reach at end state.
I wanted to know if there is a gateway which keeps a state, evaluate a condition and continue execution if either condition holds or all all messages has been exhausted?
Currently, I have used a service task with conditional sequence flow. Though I have not tested this with Token simulation / Camunda engine.
Ok - for each message that is returned you want to evaluate something - but you only want one token to progress through the rest of the process.
At the moment the model doesn’t synchronize the tokens created by the paraelle gateway, so do you want to evaluate something after each one? or wait until all messages have been received before evaluating something?
I want to evaluate something after each message, but unlike exclusive gateway, execution should proceed only if condition holds true or all messages exhausted.
I need a gateway more like “Parallel Gateway” but instead of waiting for all messages to arrive, it should wait for either
a certain condition to become true.
all messages arrived / exhausted.
If any of the above condition is true, then only, execution should proceed ahead.