2

根据 BPMN 2.0.2 的第 8.4.13 节,流节点(网关、活动和事件的父节点)包含以下属性:

incoming: Sequence Flow [0..*] This attribute identifies the incoming Sequence Flow of the FlowNode.
outgoing: Sequence Flow [0..*] This attribute identifies the outgoing Sequence Flow of the FlowNode.

尽管如此,我看到的许多 BPMN 文件决定不包含这些元素。例如,我在http://www.omg.org/spec/BPMN/20100601/10-06-02.pdf上的示例文档的官方 BPMN 2.0 中看不到它们。也不是来自https://docs.camunda.org/manual/7.3/api-references/bpmn20/#tasks的 XML 片段。但是,我确实在http://www.omg.org/spec/BPMN/20100602/2010-06-03/的示例中看到了它们。

这种变化有什么解释吗?当序列流连接到节点时是否需要这些元素?常用工具是否包括它们?

4

2 回答 2

0

一个有趣的问题,至少在理论上是这样。大多数 BPMN 建模器将使用 sourceRef 和 targetRef 属性来表示 FlowNode 元素的源和目标。样本位于 http://www.omg.org/spec/BPMN/20100602/2010-06-03/的原因。使用传入/传出语义很可能是因为它们都是由同一个工具(Trisotech)产生的。老实说,我不能说一个是对还是错,但我可以说很少有建模者使用传入/传出语义。

于 2015-11-16T22:00:42.580 回答
0

来自 IBM 的一位同事:

它们通常不是必需的。在大多数情况下可以派生传入/传出列表,这意味着它们可以从序列流元素的 sourceRef/targetRef 计算出来。在这些情况下,传入/传出列表只是一种方便。

但是,当您有条件序列流时,它们是必需的。例如,考虑离开活动或独占网关的序列流的条件。在那里,传出流的顺序很重要,并且该信息仅在传出列表中携带。

于 2015-11-17T17:36:48.623 回答