Bpmn - 如何为可选任务建模

Bpmn - How to model an optional task

任务 1 完成后,我们需要根据条件生成一个可选任务。流程完成不依赖于此可选任务完成。

设计这个模型的正确方法是什么?

您应该为可选流程使用条件标记。 图表中的独占网关将始终执行强制性任务 2,即使执行条件为真,可选任务也将始终被忽略。

不能使用并行网关,因为它将等待可选任务完成以成功合并。

所需的行为可以这样建模:

Task1完成后触发Task2,如果可选的Condition为真,可选的Task也会触发。 Task2 完成后实例终止。如果可选任务仍处于活动状态,它将被终止。

使用非中断 (message/signal/escalation) 事件将有助于您的方案。

或者,在此流程中使用事件子流程。

如果您了解如何使用它,请告诉我。不然我给你画个例子

更新

注意: 1. 我只使用 bpmn.io 来绘制示例而不是 Camunda。然而,这是基本的 BPMN,我认为 Camunda 一定有这种类型的模型。我只熟悉JBPM

说明: 基本上,您实际上不必使用消息事件。它可以是 signal/escalation,具体取决于您的场景。理论上,如果有传入消息创建其他活动,则使用消息事件,并且此事件是其他事件中最常见的。然而,您必须考虑的一件事是事件是否中断。在您的情况下,它不会中断,因此我放置了非中断消息事件。

中断消息事件将在事件触发后立即中止任务 1,而非中断只是添加额外的 task/event 而不会中止任务 1。

希望这个例子对您有所帮助。