You are viewing limited content. For full access, please sign in.

Discussion

Discussion

Interrupt Parallel Tasks based on Condition

posted on October 8, 2021 Show version history

I'm struggling with a particular desired process flow and would like some assistance. What I want to happen is this:

Path splits to 7 parallel approvers. They have the following decisions:

  • Approve - approve
  • Reject - reject
  • Agenda - put this topic on the next meetings agenda.
  • Discuss - informal discussion before any votes are official. This essential will clear out any previous decisions and resend the task to everyone.
  • Abstain - non impactful decision recorded

Every one has to record a decision. So I would need a parallel merge to wait for all decisions before proceeding, but if at anytime someone chooses Discuss, I need to allow anyone that has completed their task already to change their decision. 

What I really need is for an interrupt to actually satisfy a parallel wait, but it doesn't. The way it is setup now it waits for the interrupted path and thus never goes anywhere.

Any ideas?

0 0
replied on October 18, 2021 Show version history

This is where I am at now. I had to adjust a few gateways. Not using an inclusive gateway anymore. You have to make decisions after every vote and determine if everyone has voted yet. After each vote you check to see if it was a relevant vote with the first gateway. Relevant votes are only two types of votes--a 'discuss' or the final vote. If it is neither that branch is ended. If it is a discuss, the branch will throw the signal to interrupt the other active tasks and redistribute all the tasks for a re-vote. If it is the final vote it will progress to another exclusive to review the vote tallies. Hopefully the diagram in the pic is enough. If not, I'd be glad to clarify if this helps anyone.

 

Anyhow, I don't think a sub-process would quite achieve this, but I appreciate the suggestion. 

Pieter, the parallel gateway is what would wait for all 7 tasks to complete. So even though my process does require all 7 vote, I couldn't use a parallel gateway because I wanted to be able to interrupt with certain decision. 

 

This is working very well so far. It uses several variables and workflows to keep track of the vote count and several exclusive gateways to evaluate those variables to determine which paths to proceed down. 

 

1 0
replied on October 12, 2021

You can try putting everything into a sub-process and adding the catch event to the sub-process instead:


1 0
replied on October 11, 2021

Hi! I don't know if I'll be much help here, but figure I should give it a shot. Are things working the was you want with the Exclusive Gateway?

My experience with it, which has been a few years now, is that the signal throw on the other side of the gateway like you have it won't trigger until all branches have completed. In order to trigger immediately, I set up each of the approval activities to have 2 branches come out: 1 to handle the "interrupt everybody" case, and then the default one to continue into the gateway.

So, kind of like how the interrupted activities all connect to the same end, their respective Discuss paths can all head into the interrupt activity. That way, the interrupt can happen immediately rather than waiting for everybody to complete and then trigger continuation from the gateway.

Note: it might work coming off the workflow instead of each activity; I'd have to test to figure that out but don't have time to try at this point.

1 0
replied on October 11, 2021

This is what I have landed on. So far. The inclusive gateway allows me to check for the discuss decision or a quorum each time a vote comes in. If the last vote comes in and still no quorum we have a branch for that as well.

0 0
You are not allowed to follow up in this post.

Sign in to reply to this post.