如何使用信号简化步骤复杂的网关逻辑

How to simplify steps complex gateway logic with Signals

我有一个流程分为许多不同的分支。业务需求是在任何一步,流程都必须发回流程发起人进行更正和重新批准。

我知道可以在每个步骤的末尾使用网关逻辑,并以这种方式让流程 return 开始;但是,这会在流程中添加许多行和分支,因此阅读起来会非常困难。我在想实现这个的另一种方法是简单地中止进程并根据现有进程中的信息重新启动 - 这似乎更易于维护。

这两个实现起来都不难,但我想知道是否有更简单的方法来实现这个目标。我对信号的处理不多,但有没有办法利用它 return 到流程的前一步?

编辑解决方案开始

根据@Kris Verlaenen 的建议,创建了以下示例流程。

我首先将所有可以跳过的步骤放入嵌入式子流程。 Return、拒绝和取消信号是从调色板的边界事件选项卡中添加的。当流程等待主管或经理批准完成时,您可以发送任一信号以返回第一步或跳转到流程末尾。

使用事件子流程可以让您在每次事件发生时触发流程的某些部分(可能是信号、错误等)

使用带有边界事件的嵌入式子流程可能会有所帮助,因为这样您只需要 link 将该边界事件返回到开始,并且每当子内部发生信号/错误时过程中,边界事件可以捕捉到这一点。你甚至可以让它中断,这意味着它也会取消子进程内的任何东西,基本上重置你正在做的事情。