Asynchronouse continuation after receive event

Hi there, have a look at the following diagram:
loopSample.bpmn (7.3 KB)

The Service Task “Save Mail” has the flag “asynchronous after” switched on. My problem is: if there is a failure in the 2nd Service Task “Process Mail”, the whole thing gets stuck. As long as this problem is not solved, no new mails can be correlated to the process, because the token has not reached the event-based gateway. However, if the error was due to missing data in the received mail, there is no way to make the token proceed. What I am looking for is something that makes the token return to the event-based gateway,

One solution that came to my mind is this:
loopSampleWithParallel.bpmn (8.6 KB)

But I am pretty unsure if this is an appropriate way to do.

I’m thankful for every hint!

Regards
Christian

Hi @cjacob

So in this example, the issue you’re having is that this process instance could potentially be receiving multiple responses back via the received response mail event?
And if one of those responses happens to cause an error in the process you don’t want it to affect the other responses?

Also - is the timer event intended to be for each mail revived or it is for the duration by which the process will wait for all incoming response mails.

Hi,

Im not exactly sure what behaviour you want, but have a look at this model for some inspiration…

regards

Rob

1 Like

Hi Niall,

the process instance indeed receives multiple mail responses about a couple of days, typically one mail per day. But, after perhaps one or two months, the whole thing should be ended.

The problem is that if the sender sent a mail with insufficient business data, the Service Task “process mail” will fail. And if they after that sent a 2nd mail in which they have corrected that data, this should be possible. Currently (in my first sample), this is not possible because the token does not wait at the event-based GW.

Thanks for your efforts,

Christian

Hi @cjacob

Alrighty, in that case i would use an event subprocess - in the below model a message can come in as long as the timer is active and when a message is triggered it does not cause the next message to be blocked form coming in. even if there’s an error.

Good idea, thanks a lot!

@Niall: how do I make the message start event non-interrupting in the modeller?

First you need to ensure you’ve crated and event sub processeventsub then it should work.

That was it! And it works beautifully! Many, many thanks!

1 Like