包容性网关 JOIN 行为
Inclusive gateway JOIN behavior
在上述过程中,如果:
- A 和 B 激活
- OR-JOIN 现在应该等待 2 个令牌
- A完成
- OR-JOIN 现在等待 B
- B 选择出口 2
- 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 消耗,并且该过程正常完成。
在上述过程中,如果:
- A 和 B 激活
- OR-JOIN 现在应该等待 2 个令牌
- A完成
- OR-JOIN 现在等待 B
- B 选择出口 2
- 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 消耗,并且该过程正常完成。