BPMN 中的泳道有助于展示谁负责每项活动在业务流程中。它们分为:
-
池:区分不同的参与者、组织、系统或独立流程。
-
泳道:按角色、部门、团队或系统划分一个池。
一条有用的规则是:池 = 参与者;泳道 = 该参与者内部的责任。

示例流程:处理在线订单
我们将对该简单流程进行建模:
-
客户下订单。
-
客户服务部门检查订单。
-
财务部门确认付款。
-
仓库发货。
-
客户收到发货通知。
步骤 1:定义流程范围
在绘制任何内容之前,先确定您要建模的流程。
本教程中,流程范围为:
处理在线客户订单
主要参与者是处理订单的公司。客户是公司外部人员,因此您可以将客户表示为单独的池。
步骤 2:识别参与者
列出涉及的人员、部门或系统。
| 参与者 | BPMN 元素 |
|---|---|
| 客户 | 独立池 |
| 在线商店公司 | 主池 |
| 客户服务 | 泳道 |
| 财务 | 泳道 |
| 仓库 | 泳道 |
| 订单管理系统 | 可选泳道 |
池代表参与者,而泳道用于组织参与者内部的活动。
步骤 3:创建主池
绘制一个大矩形并标注为:
在线订单流程
这是包含您想要分析的流程的主池。
池可以详细展示内部流程,或者在仅需表明参与者存在时进行折叠。折叠的池通常适用于外部参与者,其内部操作不在您的流程范围内。
步骤 4:向池添加泳道
将主池划分为水平或垂直区域。
对于此示例,添加以下泳道:
-
客户服务
-
财务
-
仓库
水平布局可能如下所示:

水平和垂直泳道的含义相同;请选择使流程最易读的布局方向。
步骤 5:添加开始事件
在负责接收首个请求的泳道中放置一个开始事件。
如果订单由客户服务接收,则在该泳道中放置一个开始事件:
客户服务:(开始)
BPMN 开始事件通常绘制为一个细圆圈。
清晰地标注它,例如:
订单已接收
步骤 6:添加活动
将任务添加到执行该任务的人员、部门或系统所在的泳道中。
在本示例中:
| 泳道 | 任务 |
|---|---|
| 客户服务 | 审核订单 |
| 财务 | 确认付款 |
| 仓库 | 拣货并打包订单 |
| 仓库 | 发货订单 |
任务通常以圆角矩形表示。

任务在泳道中的位置表示责任归属。放置在财务泳道中的任务意味着由财务部门执行或负责该任务。
步骤 7:使用顺序流连接活动
使用顺序流进行连接,顺序流以实线箭头表示:

箭头显示活动发生的顺序。顺序流始终保持在同一个池中。
当流程在同一个池内从一个泳道移动到另一个泳道时,继续使用顺序流。更换泳道并不意味着需要消息流。
步骤 8:在需要决策时添加网关
假设财务部门需要决定付款是否已获批准。
在付款检查后添加一个排他网关:
菱形代表网关。为每条 outgoing 路径添加标签,以便决策清晰明确。
一种可能的布局如下:

步骤 9:添加结束事件
在最终活动之后放置一个结束事件。
对于成功的订单:
[发货订单] → (订单已完成)
对于被拒绝的付款:
[通知客户] → (订单已取消)
如果流程有多个可能的结果,请使用带有有意义标签的独立结束事件。
步骤 10:将客户作为独立的参与者池添加
如果您希望展示与客户的沟通,请创建第二个参与者池:
+-----------------------------+
| 客户 |
| |
+-----------------------------+
+------------------------------------------------------+
| 在线订单流程 |
| 客户服务 | 财务 | 仓库 |
+------------------------------------------------------+
使用消息流,以虚线箭头表示。消息流用于独立参与者之间的通信,而非用于活动内部的顺序。
示例:
客户
[提交订单]
- - - - - - - - - - - >
公司
(订单已收到)
随后:
公司
[发送发货通知]
- - - - - - - - - - - >
客户
(接收通知)
已完成的简化模型
已完成流程的文本版本如下:

初学者常见错误
使用泳道表示外部参与者
如果客户是独立参与者,请使用独立的参与者池,而不是将客户放在公司泳道中。独立参与者之间的通信通过消息流表示。
在参与者池之间使用顺序流
请勿使用顺序流连接不同参与者池中的任务。应改用消息流。顺序流仅用于池内流程的内部推进。
以个人姓名命名泳道
优先使用角色或部门名称,例如:
-
客户服务代表
-
财务部门
-
仓库工作人员
-
订单管理系统
避免使用“Alex”或“Jordan”等个人姓名,因为当职责发生变化时,图表可能不再准确。
创建过多的泳道
仅在区分能增加有用信息时才创建泳道。将每个个人、应用程序和部门都划分为独立泳道会使图表难以阅读。
混淆职责与顺序
泳道告诉您谁执行某项活动。箭头告诉您何时发生。泳道本身并不表示顺序。
在单个池中绘制消息流
消息流用于不同池之间的通信。对于单个池内泳道之间的交接,请使用顺序流。
快速检查清单
在最终确定您的图表之前,请检查以下内容:
-
流程范围清晰。
-
池代表不同的参与者。
-
泳道代表角色、部门或系统。
-
每项任务都放置在负责该任务的泳道中。
-
顺序流连接池内的活动。
-
消息流连接不同的池。
-
网关具有清晰标记的路径。
-
包含开始事件和结束事件。
-
泳道名称描述的是角色,而非具体员工。
-
图表可以从左到右或从上到下理解。











