我有一个 Bpmn 流程图。
假设它有 20 个步骤。
第 9 步后我有一个决策(排他)门。如果决策为“否”,我必须并行执行 2 项活动 ,但是这些活动都会返回到流程的不同部分 - 一个返回到步骤 7,另一个返回到步骤 3(两者同时发生)。
我在并行网关之后使用了 2 个链接输出事件和 2 个捕获链接事件 - 一个进入步骤 7,另一个进入步骤 3。我应该将聚合并行网关放在哪里?
这是一个非常棘手的构造,不容易建模。您的专用门的
no
分支必然会通向并行网关。当收到传入令牌时,它会向每个目的地发送一个传出令牌,这意味着在第 3 步和第 7 步同时进行。问题是您会遇到一种令牌交通堵塞:
如果您想要合法且可读的东西,这将需要对您的模型进行大量重新设计。
如果初始流程是顺序的并且与并行分支有很大不同,最简单且最具可读性的方法是在无流程步骤 9 之后有一个并行网关,并在两个并行分支中复制这些步骤,然后再次连接带有加入网关。
专业人士:
缺点:
从你的叙述中很难看出。但尚不清楚步骤 3 和步骤 7 是否必须在初始流程中按顺序依次进行。是无意还是有意为之?
如果是偶然的,即如果实际上 3 和 7 已经可以并行完成,但大部分是按顺序执行的,则通过并行步骤 3(可能与 4,5 和 6)和步骤 7 来重新设计流程,并且正确加入并行流。它们被建模为并行的事实并不妨碍它们在实践中相继完成。步骤 9 之后的决定将简单地在初始并行网关上分支。
专业人士:
缺点:
这是替代方案 1 的变体。由于要复制的子链可能很复杂,而且维护时两个子链必须保持同步,您可以考虑简化初始部分的图表,将详细步骤(例如 3 到6 和 7 至 8) 进入子流程。
简单的并行流程将只复制子流程框,保持图表相对简单并复制尽可能少的内容。
专业人士:
缺点: