BPMN 2.0并行汇聚网关

问题描述 投票:0回答:1

我有一个 Bpmn 流程图。

假设它有 20 个步骤。

第 9 步后我有一个决策(排他)门。如果决策为“否”,我必须并行执行 2 项活动 ,但是这些活动都会返回到流程的不同部分 - 一个返回到步骤 7,另一个返回到步骤 3(两者同时发生)。

我在并行网关之后使用了 2 个链接输出事件和 2 个捕获链接事件 - 一个进入步骤 7,另一个进入步骤 3。我应该将聚合并行网关放在哪里?

parallel-processing process gateway bpmn
1个回答
0
投票

这是什么问题?

这是一个非常棘手的构造,不容易建模。您的专用门的

no
分支必然会通向并行网关。当收到传入令牌时,它会向每个目的地发送一个传出令牌,这意味着在第 3 步和第 7 步同时进行。问题是您会遇到一种令牌交通堵塞:

  • 第 3 步的令牌将再次走至第 9 步的路线
  • 同时第3步的令牌将再次采用该路线
  • 您可能需要在某个时刻使用加入网关加入并行流,从而使两个并行传入令牌成为 1 个传出令牌
  • 不幸的是,假设两个流程都预计再次进入步骤9,您将无法区分正常令牌和后续并行令牌,从而无法加入并行流程,从而出现损坏的情况。

如果您想要合法且可读的东西,这将需要对您的模型进行大量重新设计。

替代方案 1:在并行分支中重复相关步骤

如果初始流程是顺序的并且与并行分支有很大不同,最简单且最具可读性的方法是在无流程步骤 9 之后有一个并行网关,并在两个并行分支中复制这些步骤,然后再次连接带有加入网关。

专业人士:

  • 易于建模
  • 非常容易阅读

缺点:

  • 重复而不是DRY
  • 甚至更复杂的过程

替代方案 2:从头开始并行步骤 3 和 7?

从你的叙述中很难看出。但尚不清楚步骤 3 和步骤 7 是否必须在初始流程中按顺序依次进行。是无意还是有意为之?

如果是偶然的,即如果实际上 3 和 7 已经可以并行完成,但大部分是按顺序执行的,则通过并行步骤 3(可能与 4,5 和 6)和步骤 7 来重新设计流程,并且正确加入并行流。它们被建模为并行的事实并不妨碍它们在实践中相继完成。步骤 9 之后的决定将简单地在初始并行网关上分支。

专业人士:

  • 模型比以前更准确
  • 平行艺术非常具有可读性

缺点:

  • 仅当初始流可以并行时才可能

替代方案 3:子流程(1 的变体)

这是替代方案 1 的变体。由于要复制的子链可能很复杂,而且维护时两个子链必须保持同步,您可以考虑简化初始部分的图表,将详细步骤(例如 3 到6 和 7 至 8) 进入子流程。

简单的并行流程将只复制子流程框,保持图表相对简单并复制尽可能少的内容。

专业人士:

  • 更简单的图
  • 更容易阅读
  • 子流程更新时的一致性

缺点:

  • 需要引入子流程。
© www.soinside.com 2019 - 2024. All rights reserved.