
在复杂的企业级业务流程建模中,清晰表达“谁在何时做什么”至关重要。而在 BPMN (Business Process Model and Notation) 标准中,序列流 (Sequence Flow) 是最基础、最核心的连接线类型。它如同流程中的血管,确保业务逻辑能够顺畅地从一步传递到下一步。
本文将深入剖析序列流的定义、视觉特征、使用规则,特别是如何正确区分其与消息流的区别,帮助您构建严谨、规范的业务流程图。
什么是序列流 (Sequence Flow)?
序列流用于连接流程中的各个元素。它是控制流程执行顺序的“交通指挥棒”。
- 定义: 序列流定义了流程控制流(Control Flow)的顺序。它规定了当一个活动(Task)完成时,流程将如何转移到下一个活动。
- 视觉特征: 在图表中,序列流通常显示为带有箭头的实线 (Solid Line)。箭头的方向指示了流程的执行顺序。
- 核心作用: 它展示了元素之间的先后顺序 (Order)。例如,从“填写购物车”到“结账”的单向流动。
案例分析:一个简单的购物流程
让我们通过一个经典的电商场景来理解序列流。想象一下,在业务流程图中有两个核心步骤:
- Fill Shopping Cart (填写购物车)
- Checkout (结账)
当用户完成了“填写购物车”的操作后,流程自然需要流向“结账”环节。在 BPMN 图中,这条连接两个任务(Task)的线就是序列流。它用一条实线箭头明确告诉读者:做完第一件事,紧接着做第二件事。
(注:在实际的 BPMN 建模软件如 Bizagi 或 Camunda 中,这通常表现为两个黄色圆角矩形之间的黑色箭头)
关键规则:序列流的边界在哪里?
虽然序列流非常常用,但在使用时必须严格遵守 BPMN 的上下文规则。这是初学者最容易犯错的地方。
1. 同一泳道池 (Pool) 内的连接
序列流主要用于连接同一个池 (Pool)内的流程元素。这包括:
- 同一泳道 (Lane) 内: 连接同一个部门或角色内部的步骤。
- 跨泳道 (Across Lanes): 连接同一个池内不同部门(如从“销售部门”泳道连接到“财务部门”泳道)的步骤。
注意: 只要这两个元素属于同一个参与方(即同一个 Pool),无论它们是否在同一个泳道中,都可以使用序列流。
2. 跨池连接 (Across Pools) 的禁忌
这是理解流程模型架构的关键点。
如果您想要连接不同的池 (Across Pools)(例如,连接“客户”池和“商店”池),绝对不能使用序列流。
- 为什么? 序列流代表的是内部的控制逻辑,通常假设两个元素之间的切换是瞬间的、受控的。而跨越不同的池通常意味着跨越了组织边界或系统边界,这通常涉及到信息的传递或通信。
- 正确的做法: 在跨池连接时,必须使用消息流 (Message Flow)。
序列流 vs. 消息流:一文读懂区别
在构建 BPMN 图表时,区分这两种连接线是专业建模的标志。
| 特性 | 序列流 (Sequence Flow) | 消息流 (Message Flow) |
|---|---|---|
| 连接线样式 | 实线 (Solid Line) + 箭头 | 虚线 (Dashed Line) + 空心箭头 |
| 连接范围 | 同一个 Pool 内 (同一池内,可跨泳道) | 不同的 Pool 之间 (跨池) |
| 语义含义 | 流程控制顺序 (Next Step) | 信息传递 (Sending/Receiving Message) |
总结
掌握 Sequence Flow (序列流) 是理解 BPMN 的基石。请记住以下核心要点:
- 它使用实线箭头表示流程顺序。
- 它只能在同一个 Pool内部使用。
- 如果需要跨越 Pool,请切换到 Message Flow (消息流)。
通过正确运用这些元素,您将能够绘制出逻辑严密、易于理解的 BPMN 业务流程图,为系统开发和业务流程优化提供坚实的基础。
