Subprocess loop with Escalation Event -> Extra token created


#1

Hello!

I’ve made a simple BPMN diagram with a Called Activity, which has either a normal or an escalation event results. In parent process, we want to go back, correct, and redo the Call Activity subprocess until it is OK. I noticed that if we go down the escalation path, the process goes to Assign New Reviewer and Signup Reviewing tasks. I expected it to only stop at Assign New Reviewer, then go to Signup Reviewing Process Called Activity. Is this behaviour as designed and I am missing some knowledge, or something else? The Token at Signup Reviewing Process seems excessive…

Attached a minimal example with the issue I’ve encountered and a screenshot of the cockpit.

Also, is there possibly a better way to model this scenario?

Cheers~!


Camunda version 7.8 with Spring Boot Starter 2.1.2

Call_Activity_Sub.bpmn (5.8 KB)

Signup_Reviewing_Process.bpmn (9.5 KB)


#2

The model that you have deployed is not the same as one you’ve upload.
The problem is solved in the uploaded model.


#3

Uhh… are you sure? I’ve double checked and it’s all same, with the attached model producing the extra token.


#4

Hey vsmirnova,

I had a quick look into your model and I just saw that the call activity doesn’t end with an end escalation event. instead you used an intermediate escalation event. Hence the call activity doesn’t finish after throwing the escalation. So it could be possible that the token stays on the call activity.

Could you call the Rest API too see which Model you deployed? I also see a difference between the model you uploaded and the one you deployed (in your picture)


#5

I don’t have the exact same state anymore :frowning: . I took the two models I uploaded and deployed those freshly without anything else in the way. Only differences I see between the Cockpit screenshot and Camunda Modeler view is the extra arrow on top of the escalation event catch rendered in cockpit, and not in Modeler… and some text positioning. Otherwise I am totally blind to the differences >_<

By the way, thanks for the tip with the escalation end event, that really is an oversight and I’ve corrected it. It’s still not it though, seeing same thing happen. It seems that the subprocess is called an extra time instead of token getting stuck there, because the Ready to Review task in subprocess is finished and a new one is created.

Cheers!


#6

The little arrow you see is probably the reason why your token is duplicated. Can you just deploy the model you shared with us and see if it works then? That should do the trick.


#7

Hiya Nele

That’s exactly what I previously did and there’s no difference :frowning: I see no extra arrow in Camunda Modeler, it’s added when I check the model in cockpit.

And this is how the cockpit view looks when I go from calling the subprocess to completing it:

On Enter subprocess:


After I complete subprocess:



Main Process is at correct task

New instance of subprocess is made prematurely and I still don’t understand why…


#8

OK, so this is incredibly stupid. You’re both right, it’s because of that one arrow. However, the model in screenshot and what I uploaded is really the same, as I said. The path from Escalation back to Call Activity is only visible in xml in Camunda Modeler (SequenceFlow_13cro3d). No matter how much I move the icons around the arrow won’t show. Cockpit, however, does show that arrow and it’s also a little mean that it’s displaying the arrow tip facing upwards. It just looks like a graphical error xD

But hey, works like a charm now. Thank you :smiley: