Cancelling during a process

Hello, I have a question. I have an order process where a customer makes a purchase, but they can cancel their order at any time during the process. How can I achieve this? I have been considering using either an Event Subprocess or Boundary Events. Would that be possible?

Hello my dear! :smile:
Yes, its possible!

You can do something like this.
You can wrap your entire process in an expanded sub-process…

Note that I put 3 types of boundary events.

  • One for when a cancellation condition is met (Conditional event).

  • Another for when, for example, a button is activated in your front-end application or something like that, triggering this cancellation (Message event).

  • And another for Error, for when an error occurs that requires cancellation (Error event).

You can choose the one that adapts best to your flow, or even all according to my example.

ATTENTION, you need to be aware that if there is a possibility that some “token” of this same instance that is being canceled in this process is not involved by the expanded subprocess, you will need to use the “terminate event” to finalize all the instance tokens that ventura may be running or run some logic to resolve the other tokens before cancellation. But if everyone is already involved in the subprocess, no problem!

I hope this helps.

William Robert Alves

Thank you. So, I would have to perform the process in a subprocess, but how do I do that with pools and lanes? Couldn’t cancellation be handled with an Event Subprocess? I’m not sure what information I need to enter in the forms and what conditions to add when canceling something. What data should I include to make that possible? Could you provide me with an example? I would appreciate it.

Can someone help me about my problem?

Hello my dear!

As I said in your other post, again I apologize for my confusion. My suggestion above was for the Camunda 7.

Please someone who knows Camunda 8 well help our comrade!