cancel
Showing results for 
Search instead for 
Did you mean: 

How to break a parallel for each tasks or sub-process?

Former Member
0 Kudos

Hi,

I want to break a parallel for each tasks or sub-process.

Case description:

After the Manager1 approve the task , the process will go to next task with team members.
Each member can make a decision like Reject, Agree and also add comments.
Only if all Assignees make their approval, the request gets approved and continuing the process flow.

Once the first occurring "reject" decision, all open tasks have to be removed from other assignees UWLs and process back to Manager1.

I try to use Escalation End to break loop, Once the first occurring "reject" decision.

Whatever checked terminating or not. Loop can’t be break.

Accepted Solutions (0)

Answers (3)

Answers (3)

d_shestak
Explorer
0 Kudos

Hi!

Have you solved your task? And how?

Former Member
0 Kudos

HI Lin,

I know it's been too long to ask, but I have similar situation

and would like to understand what have you done to resolve this issue?! Any help would be very much appreciated! Thanks.

junwu
Active Contributor
0 Kudos

how about adding a intermediate event, just beside the task using parallel split, which lead to a termination end.

in your task if decision is rejection, then ws for the intermediate event should be called,  then sub process should terminated.

that's just my idea, don't know if it will work or not.

Former Member
0 Kudos

Hi,

I tried intermediate event but no used.

I send message to SAP.

He provide a doc for me reference.

http://scn.sap.com/people/soeren.balko/blog/2010/01/22/enjoy-netweaver-bpm--part-3-workflow-patterns...

I still can't find how to break or delete tasks when one of these looping tasks been reject.

Jocelyn_Dart
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi Lin,

It's the looping that's the problem isn't it? As you want to terminate all instances together. It's a reasonably common scenario in workflow but it needs to be handled a little differently in BPMN.

This is just my suggestion having sat and thought about how this would work in BPM, so it's a just a design, I haven't actually run it, but I think it might do what you want. 

Ok so the pattern has 3 levels as follows -  the main process, an embedded subprocess, and your actual looping sub process that covers the parallel approvals (I've pictured it as a referenced subprocess for simplicity).  There's nothing intrinsic here to using embedded or referenced - I just thought it would make it easier to explain - so you could use referenced for both if you liked.

On the embedded subprocess I have a boundary event that is used to terminate all the looping referenced subprocesses. I've just sent that to a terminating "stop event" but of course you could add other steps here.

Within the embedded process there is a split - on one side is your parallel approvals sub process, and on the other the intermediate message event representing "someone rejected".  If all of the approvers approve, the embedded subprocess completes normally. If the intermediate message event is triggered, then the embedded subprocess triggers the boundary event.

So either the embedded subprocess completes normally - everyone approved - or via the boundary event - someone rejected.

Then all you need to do to complete the scenario, is within the referenced approval subprocess - either as part of the UI rejection button, or in an automated step after the rejection - raise the intermediate "someone rejected" event.  

That way any of the referenced approval subprocesses are able to raise the "someone rejected" event that triggers the cancellation of all of the referenced subprocesses via the boundary event on the embedded subprocess level.

There may be a simpler way that I am not aware of, but logically the above should work.

If you give it a go I'd be interested in knowing if this solved it for you.  Perhaps we could even get you to do a blog?  I'm sure others would be interested.

Rgds,

Jocelyn

Former Member
0 Kudos

HI Joyceln,

i tried solunion as suggested by you but it doesn't come out of the paralle loop. Can you kindly help and suggest how to break the parallel loop or how can we catch the rejection event.?!

~Nikhil