gpt4 book ai didi

bpmn - 如何正确实现可以在流程中的任何时候触发的终止事件?

转载 作者:行者123 更新时间:2023-12-04 07:15:44 56 4
gpt4 key购买 nike

我目前正在对具有 2 个异常状态的过程进行建模(一名患者死亡且未找到神经科医生)。
如果没有找到神经科医生(这在我的过程中只能发生一次),过程就会停止。
当患者在此过程中的任何时候死亡时,会触发另一个异常状态。如果发生此异常状态,则进程停止。
我很难对这些异常状态进行建模。您可以在附件中找到我目前的尝试。我不是 100% 确定它是正确的。
Example of my attempt

最佳答案

很少需要终止事件。通常有比这种“终止所有开关”更优雅、更清晰的解决方案。它们的目的是终止任何并行事件/消耗存在于同一范围内的任何 token 。通常可以通过中断(例如条件)边界事件来实现相同的目的,这些事件被触发,例如通过数据更改。边界事件使其在流程中可以在哪些情况下发生取消的情况下清晰可见,并允许以更可控的方式结束流程。
在您的特定用例(您附加的图表)中,您根本不需要使用终止事件。您正在使用两个 中断 由嵌入式子流程创建的范围上的边界事件(升级和错误)。当这些事件中断发生时,嵌入子进程的范围已经终止。父进程范围内的后续终止事件将取消此范围内的所有内容。在您的情况下,父作用域是根流程实例,但由于没有与嵌入式子流程并行的 token 流,因此无需取消任何内容。
另见:

  • https://docs.camunda.org/manual/latest/reference/bpmn20/events/terminate-event/
  • https://docs.camunda.org/manual/latest/reference/bpmn20/events/error-events/#error-boundary-event
  • 关于bpmn - 如何正确实现可以在流程中的任何时候触发的终止事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68777170/

    56 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com