Assume there is a non-interrupting message event attached to some activity A.
In a ‘normal’ flow (when the event is not triggered) the next activity would be activity B. (A->B)
When the event is triggered, due to the fact that it is non-interrupting the token will be copied and we will have two separate flows. Now, following the trigger I have a task “Analyze the message” followed by a exclusive gateway, where I have two options:
“Message DO NOTHING” → continue to task B, which will make the two tokens convert back to only one.
“Message Restart Task A” → stop the main flow from A->B , revert task A and have only one path that will go to back to A.
How can i implement the part for “Message Restart Task A”?
I don´t know how in the event flow, I can kill the main flow,revert A and go back to the beginning of A.
PS: Can I be sure that when i kill the main flow, the flow was only executing A or could already be executing B?
Could you share your process model? I am not sure how you continue to task B and convert the tokens back to one. That is not so easy, and normally it is best to have an additional end event for the path after a non-interrupting attached boundary event to make sure that you don’t continue with multiple tokens
For your described scenario, you could attach an interrupting conditional event to task A. If the message content is not okay you can set a variable that triggers the interrupting condional event and then restarts tasks A,
So, to make things clearer, let me explain the real project:
We are installing and testing equipment at a store in accordance with a Project Plan.
During the installation, we may receive a message from the business owner requesting that we modify the Project Plan. We examine the message, and in the gateway we conduct the following:
these modifications only effect future stages of the Installation job. For example, if we just installed all of the cameras in the store but the modifications now only affect the Sensors or the shelf arrangement, we may proceed with the installation work as usual using the now-updated Project plan.
!!We can’t redo the entire Installation procedure; that would be a waste of time!!
If the modifications affect sections of the installation that we have already implemented (for example, we placed cameras, but the client now wants all of the cameras in other locations), we must stop the entire installation,and restart full Installation with the newly Project Plan.
Hope everything makes sense to you.
I need help with the second section. (and perhaps in other regions rsrs)
While I understand your entire comment, I have some questions about the Conditional Event since I am unfamiliar with it:
There is no way to trigger the event directly, correct? I must use a task saying set variable Not executable to True? (i guess that´s what you meant on the comment in the file)
What would be the difference if I triggered a signal?
After activating the event, shouldn’t there be a task to set the variable to false?
And does the rest of the model describe what I said in the previous comment?