如何正确实现一个可以在过程中的任何点触发的终止结束事件?

How to properly implement a terminating end event that can trigger at any point during the process?

我目前正在为具有 2 个异常状态的过程建模(一名患者死亡且未找到神经科医生)。

如果没有找到 Neurologist(这在我的过程中只会发生一次),过程就会停止。 当患者在过程中的任何时候死亡时,会触发另一种异常状态。如果出现此异常状态,则进程停止。

我很难对这些异常状态进行建模。附上你可以找到我目前的尝试。我不是 100% 确定它是正确的。

Example of my attempt

很少需要终止事件。通常有比这个 'kill all switch' 更优雅、更清晰的解决方案。它们的目的是终止任何并行活动/消耗同一范围内存在的任何令牌。通常可以通过中断(例如有条件的)边界事件来实现,这些事件会被触发,例如通过数据更改。边界事件使其在可以发生取消的流程中清晰可见,在何种情况下,并允许以更受控的方式结束流程。

在您的特定用例(您附上的图表)中,您根本不需要使用终止事件。您在嵌入式子流程创建的作用域上使用了两个 interrupting 边界事件(升级和错误)。当这些事件中断发生时,嵌入式子流程的范围已经终止。父进程范围内的后续终止事件将取消该范围内的所有内容。在您的情况下,父范围是根流程实例,但是由于没有与嵌入式子流程并行的令牌流,因此没有什么可以取消的。

另见: