包容性网关 JOIN 行为

Inclusive gateway JOIN behavior

在上述过程中,如果:

  1. A 和 B 激活
  2. OR-JOIN 现在应该等待 2 个令牌
  3. A完成
  4. OR-JOIN 现在等待 B
  5. B 选择出口 2
  6. OR-JOIN现在是不是明白不再需要等待B了?并继续?

这确实是一个棘手的问题。我最初的想法是,如果第二个令牌进入 end2 结束事件,则此过程将无法完成。但是,BPMN 规范似乎并没有明确定义这种情况。我在规范中可以找到的关于包容性网关的唯一相关参考是

Upon execution, a token is consumed from each incoming Sequence Flow that has a token. (BPMN Specification, Version 2, January 2011, page 435. My emphasis).

“有”这个词引起了我的一些怀疑,我在 BPMN 书籍(Thomas Allweyer,BPMN 2.0)中找到了以下示例,其中作者说融合包容性网关只等待 可以 到达它,但不一定是发散包容性网关创建的所有令牌。这也符合 BPMN 规范中的公式。

所以在回答你的问题时,“OR-JOIN”确实会理解它不必等待第二个令牌。第一个令牌将由 end1 消耗,第二个令牌将由 end2 消耗,并且该过程正常完成。