Manual control of process execution in runtime

There are times when the process completes successfully, but after a while information appears that it was not executed correctly. I cannot automate this event. In this case, the process either rolls back or you only need to repeat some steps and skip some of the steps. Moreover, it is impossible to single out some groups, the steps that are skipped are always different.

It turns out that it is necessary for some process instances at the start to immediately indicate which steps should be skipped. Does Zeebe have this capability and how can it be implemented?

Hi @dmkost,

this is an interesting problem. It sounds also related to the other topic here: Is it possible to control the workflow from bakend

In general, you need to model every possible path in your workflow. There are different options to skip parts of the workflow:

  • using exclusive gateways
  • using multiple start events
  • split the workflow into different parts (i.e. BPMN files) that can be invoked separately (e.g. using call activities, message events, etc.)

Feel free to share more about your use case including an example.

Best regards,
Philipp

2 Likes

I’m still thinking how best to do it, but for now my thoughts are:

  1. The process must be driven by the BPMN model and some hidden mechanisms for skipping steps will greatly complicate monitoring and debugging. And it seems that skipping steps not through the BPMN model violates the whole concept.

  2. If we talk about my problem, then I want to suggest to colleagues when such cases arise, to make a separate process for this specific situation and launch a debug instance on it. This will help to monitor the process separately and there will be no conflicts. These cases are rare and exceptional. Otherwise, they could be automated.

  3. Philipp, you’re right, it’s better to use BPMN primitives to skip steps. We can, on the basis of data, understand where to move through the process. The model can get a little more complicated, but this is better than non-obvious behavior in the process.

Now I have no concrete example. But as we get to the implementation of such a case, I will try not to forget to publish our version.

1 Like