顺序流

顺序流是一个 BPMN 元素,表示活动在业务流程中的执行顺序。 定义了从一个活动到另一个活动的工作或信息的逻辑流, 表示任务或子流程的执行顺序。

顺序流连接 BPMN 图中的两个活动, 显示流程的流动方向以及活动之间的依赖关系。 顺序流在业务流程中工作流的可视化和建模中发挥着至关重要的作用, 有助于提高流程设计的清晰度和一致性。

图形和 XML 表示

顺序流在图中展示为从出发元素到目的元素的箭头。 箭头始终指向目标。

graphical flow

在 XML 文件中,顺序流表示为其他 BPMN 元素之间的单独对象:

    <sequenceFlow id="Flow_1sjggq6" sourceRef="Event_15w11z6" targetRef="Gateway_0r2ejfv" />

可以看到,XML 中顺序流有两个属性:sourceReftargetRef 表示箭头出发和目的的元素。

传入和传出流

由于顺序流连接两个活动,第一个活动是 传出流(outgoing),第二个活动是 传入流(incoming)

incoming outgoing flows

最佳实践是每个活动只有一个传入流和传出流。

在 XML 文件中,可以在相应的 BPMN 元素中看到对顺序流的引用:

    <task id="Activity_1pncn0v" name="Activity">
      <incoming>Flow_1tncfsd</incoming>
      <outgoing>Flow_1nxsuoi</outgoing>
    </task>

顺序流属性

顺序流有一些通用属性:

  • Id

  • Name

以及 Condition 属性。(请参阅排他网关中 condition 属性的详细信息)。

flow properties

条件顺序流

BPMN 2.0 将 条件流(conditional flow) 定义为一种特殊的符号元素。 从图形上看,是一个常规的顺序流,但是连接线的开头有一个小菱形。 如图:

conditional flow

条件流只能用作活动的 传出 流。 条件在运行时进行计算,以确定该顺序流是否使用。

Jmix BPM 中,所有顺序流都可以有一个条件,但只有在必要时才会被计算和使用。

conditional flow example

强烈建议 不要使用条件流,因为有可能发生错误。 例如在上图中,如果条件为 false 且没有其他路径可用,则流程将停止。

默认顺序流

所有 BPMN 2.0 任务和网关都可以有默认的顺序流。 默认的顺序流只能作为活动或网关的 传出 顺序流。

默认顺序流在图中展示为为常规顺序流,开头带有“斜杠”标记。

default flow

默认流的行为取决于所使用的元素。 默认顺序流上的条件会被忽略。

使用条件和默认顺序流

尽管 BPMN 规范允许使用条件流和默认流,如下图所示,但请避免这种方式的用法。 这种混用会导致图的可读性变差。

sequence flow bad example

这种情况的传出流,建议使用网关:

using flows good example

在此示例中,可以看到排他网关,也可以使用并行和包容网关。