Escalation boundary event on user task

Does Camunda support the escalation boundary non-interrupting event on user tasks as exemplified in Bruce Silver’s book? If it doesn’t, I will probably have to put user task within a subprocess for the sake of creating a scope to it and then create an event subprocess started by a non-interrupting escalation start event right inside user task’s subprocess to same effect. Hopefully, not! Also, which API should I use in order to throw escalation event from user task logic? Is there any? Looks like not!

From the delegate package, looks like on the BPMN error is the only supported exception: camunda BPM Javadocs 7.6.13-ee

And:

An escalation boundary event can only attached on an embedded sub-process or a call activity, since an escalation can only be thrown by an escalation intermediate throw event or an escalation end event…

2 Likes

Thanks, Stephen. So the answer to my question is negative, right? Too bad. This cuts into the “ad-hoc-ness” of escalation event and that was so valuable, really.

based on the docs, the answer is “no”.

What are you trying to do/what is your scenario? Very likely other ways to achieve the same outcome.

1 Like

Yes, there are other ways as well, but this would have been my favorite one.There is no challenge for me to remodel, I just wanted to know what Camunda supports, so that I avoid unsupported modeling options in the future.

I was thinking if you just replaced your Escalation with a Non-Interrupting Conditional or Message event you can get the same outcome. Conditional likely being the easiest: Have a Variable to something like Task123Escalate = False, and the Conditional Event executing when Task123Escalate == True. Have your User Task Form doing a Variable Update to change the value from False to True, and you should get the same output. Just your icon is different, but from a model perspective everything can remain the same.

1 Like

Hi Cristian,

Perhaps your use case is a good candidate for CMMN. This could be an example of an ad-hoc task…

regards

Rob

1 Like

You didn’t read my earlier reply. Remodeling is not at all a challenge to me. I am simply interested in the construct presented in Bruce Silver’s book. And I don’t need to use CMMN. Thanks! I wish Camunda people reacted to my question, as well. But…

Do you need any addition to the answers already given? I think the responses form Stephen and Rob cover everything quite well.

2 Likes

Yes, I wanted someone from Camunda to confirm the construct I presented is not supported and to share if there is any intention to support it in the future. That’s at the core of my question. I appreciate the kindness of suggestions, but I don’t need suggestions for alternative modeling options, I know how to do that, it wasn’t a challenge ever.

Thanks!

If you where to add an escalation boundary event on a user task - that boundary event is active and waiting for the specific event to occur. The challenge is in how you plan to fire the event. Because it’s on a user task you would probably need a button on some UI somewhere that uses the REST API to manually get the id of the waiting event and then fire it.

So the answer is that: it’s certainly possible but it can be a bit messy to implement.

2 Likes

Thanks, Nial. Yes, my plan is to have a button on user task ui, because the escalation even will be thrown while in the middle of user task, but I need to know what is the API I need to use when the button is clicked. If you could provide that API, you will have answered my question.

@Niall, the Engine throws a BPMN parsing error on deployment of the BPMN (at least through rest api), when you have a escalation event attached to a User Task.

ENGINE-09005 Could not parse BPMN process. Errors: \n* An escalation boundary event should only be attached to a subprocess or a call activity

2 Likes

Thanks, Stephen. This is consistent with what Camunda has in their documentation and it represents a limitation, just as I was afraid. Thanks for your research. Now I know this won’t work. Cheers!