业务流程模型与符号(BPMN)是建模业务流程的行业标准。它提供了一种图形化表示法,所有业务利益相关者——从技术开发人员到业务分析师——都能理解。如果没有共同的语言,流程改进项目往往因沟通不畅而停滞。本指南分解了BPMN图的核心架构,重点介绍驱动流程逻辑的三大支柱:事件, 网关,以及流.
理解这些组件使组织能够准确绘制复杂的流程。无论你是记录采购周期,还是协调客户入职流程,符号使用的精确性都能确保清晰表达。我们将探讨具体的符号、它们的行为以及使用规则,而不涉及任何特定的软件工具。

1. 事件:触发与结果 ⏱️
事件表示流程执行过程中发生的某种情况。它们以圆形表示。圆圈边框的粗细表示事件的类型。事件不会单独开始或结束一个流程;它们标记流程中的某个动作或反应点。
1.1 三种事件状态
事件根据其在流程中的位置和功能进行分类:
- 开始事件:标记流程的开始。它没有传入的顺序流。每个流程图中必须至少有一个开始事件。如果存在多个开始事件,则流程将由其中任意一个触发。
- 中间事件:发生在开始与结束之间。它表示流程生命周期中的暂停或发生的情况。这些事件可以捕获传入的触发信号,或抛出传出的信号。
- 结束事件:标记流程的终止。一个流程可以有多个结束事件,以表示不同的结果(成功、失败、取消)。
1.2 事件类型及其符号
事件的类型由圆圈内的图标决定。边框的粗细也提供视觉提示:细边框表示普通事件,粗边框表示与活动关联的边界事件,双线表示复杂或多实例场景。
| 事件类型 | 视觉指示符 | 功能 | 常见用例 |
|---|---|---|---|
| 消息事件 | 信封图标 | 在参与者之间接收或发送消息。 | 等待邮件回复或发送发票。 |
| 定时器事件 | 时钟图标 | 基于时间或持续时间触发。 | 注册后3天发送提醒。 |
| 错误事件 | 感叹号图标 | 处理系统或运行时错误。 | 结账过程中数据库连接失败。 |
| 信号事件 | 闪电图标 | 在流程中广播或捕获信号。 | 全局警报触发多个工作流。 |
1.3 边界事件
边界事件是附加在活动侧边的中间事件的一种特殊形式。它们允许中断正在进行的活动。
- 中断型边界事件: 当事件发生时,它会取消与其关联的活动。例如,如果计时器边界事件触发,任务将立即停止。
- 非中断型边界事件: 当事件发生时,活动会继续并行运行。这在无需停止核心任务的情况下,用于日志记录或通知非常有用。
例如,在贷款审批流程中,如果申请人提交了缺失的文件,边界事件可能会被触发。审批任务继续进行,但同时会向申请人发送通知。
2. 网关:决策点 🚦
网关控制流程内路径的分叉与汇聚。它们以菱形表示。网关不执行工作;它们根据条件或令牌的存在来引导流程。
2.1 排他网关(XOR)
排他网关是最常见的决策点。它表示只能选择一条路径的抉择。它充当逻辑 或.
- 逻辑: 如果条件A为真,则走路径A。如果条件B为真,则走路径B。只有一条路径处于激活状态。
- 视觉表现: 菱形内部带一个‘X’。
- 示例: 用户提交表单。如果数据有效,则继续保存。如果无效,则显示错误。两者不能同时发生。
2.2 并行网关(AND)
并行网关会同时拆分或合并流程。它表示一个逻辑AND。所有外出路径会同时激活,且所有进入路径必须完成后,网关才会继续前进。
- 逻辑: 如果路径A和路径B被触发,两者将同时运行。
- 视觉: 一个内部带有加号(+)的菱形。
- 示例: 在购买确认后,发送电子邮件收据并更新库存系统。这两项任务同时发生。
2.3 包含网关(OR)
包含网关允许根据条件选择一个或多个路径。它比排他网关更具灵活性。
- 逻辑: 如果条件A满足,则走路径A;如果条件B满足,则走路径B;如果两个条件都满足,则同时走两条路径。
- 视觉: 一个内部带有‘O’的菱形。
- 示例: 客户符合折扣条件。他们可能会收到短信、电子邮件,或两者都收到,具体取决于其偏好。
2.4 基于事件的网关
此网关等待事件发生,而不是等待条件满足。它常用于多种结果可能发生,且流程必须对最先发生的事件作出反应的场景。
- 逻辑: 流程等待。如果事件A发生,则向左走;如果事件B发生,则向右走。一旦选择了一条路径,另一条路径将被取消。
- 视觉: 一个内部带有圆圈的菱形。
- 示例: 等待客户回复。如果他们在24小时内回复,则继续回电;如果未回复,则发送提醒。
3. 流程与活动:工作 🔄
虽然事件和网关控制逻辑,但流程和活动代表实际执行的工作。理解顺序流程与消息流程之间的区别对于准确建模至关重要。
3.1 顺序流程
顺序流程定义单个流程实例中活动的顺序。它们由实线箭头表示。
- 方向: 流程从上到下,从左到右。
- 用途: 连接同一泳道内的事件、网关和活动。
- 标注: 条件应在网关的输出路径上标注,以明确逻辑。
3.2 消息流
消息流表示参与者(泳道)之间的信息交换。它们用带起点开放圆圈和终点开放箭头的虚线箭头表示。
- 方向: 表示通信的方向。
- 用途: 连接不同的泳道或泳道。不能连接同一泳道内的两个活动。
- 上下文: 用于表示一个部门中的流程正在等待另一个部门的响应。
3.3 活动和任务
活动是执行的工作。它们用圆角矩形表示。
- 用户任务: 由人工执行的工作。需要手动干预。
- 服务任务: 由自动化系统或后台服务执行的工作。无需人工交互。
- 脚本任务: 由脚本或代码片段定义的逻辑。
- 发送/接收任务: 发送或接收消息而不等待响应(异步)。
3.4 子流程
复杂的流程可以分解为子流程,以保持图表的可读性。
- 折叠的子流程: 将任务显示为一个带加号的单一框。细节被隐藏。
- 展开的子流程: 在同一图表中显示任务的内部逻辑。
- 调用活动: 引用在其他地方定义的可重用流程定义。
4. 结构与容器 🧩
组织图表与使用的符号同样重要。BPMN 使用容器来逻辑地分组元素。
4.1 池与泳道
池表示流程中的参与者。一个池代表一个组织。多个池表示多个组织之间的交互。
- 池: 流程的矩形容器。
- 泳道: 将池划分为子类别,通常代表角色、部门或系统。
例如,“客户入职”流程可能包含“销售”、“IT支持”和“财务”等泳道。任务应放置在负责该任务的泳道中。
4.2 数据对象
数据对象表示流程中创建或消耗的信息。它们以带折叠角的页面形式表示。
- 用途: 连接到任务,以显示输入或输出。
- 示例: “合同”文档与“审核合同”任务相关联。
4.3 文本注释
注释允许作者向图表添加注释或解释,而不会使流程变得杂乱。它们以带有文本行的文档形式表示。
- 用途: 明确复杂的规则,或为特定任务提供上下文。
- 最佳实践: 尽量少用,以避免图表混淆。
5. 可读性最佳实践 📝
一个构建良好的BPMN图表应能自解释。构建不佳的图表会造成混淆,需要不断进行口头解释。
- 保持线性: 尽量使流程从左到右或从上到下进行。避免线条交叉。
- 符号使用一致: 不要随意混合网关。如果网关分叉路径,必须确保条件清晰。
- 限制复杂性: 如果图表变得过于庞大,请使用子流程或调用活动将其分解。
- 清晰的标签: 每个从网关流出的序列流都应有标签(例如,“是”,“否”,“状态:已批准”)。
- 平衡网关: 每个分支网关最好都有一个对应的合并网关,以确保流程返回到单一路径。
6. 常见陷阱及避免方法 ⚠️
即使经验丰富的建模者也可能引入错误。了解常见错误有助于保持高质量的文档。
- 悬空流: 每个元素都应被连接。没有输入或输出流的活动是死胡同。
- 孤立的网关: 一个只分裂而不合并的网关可能导致多个难以追踪的结束状态。
- 任务中的复杂逻辑: 不要在任务框内放置复杂的决策逻辑。应使用网关来处理决策。
- 消息流混淆: 确保消息流仅跨越泳道边界。序列流不应跨越泳道边界,除非它们代表特定的集成。
7. 准确建模的影响 📊
投入时间进行准确的BPMN建模会带来切实成果。它能减少开发团队中的歧义,并使业务期望保持一致。
- 效率: 当流程被正确可视化时,识别瓶颈会变得更加容易。
- 合规性: 监管要求可以直接映射到特定的任务和网关。
- 自动化: 清晰的逻辑路径使自动化工具能够在无需人工干预的情况下执行流程。
- 沟通: 利益相关者可以审查图表并理解流程,而无需进行演示。
8. 组件总结 🏁
简要回顾一下,BPMN的核心依赖于特定元素之间的交互:
- 事件: 开始、中间、结束。它们用于触发和结束操作。
- 网关: 排他、并行、包含、基于事件。它们控制分支和合并。
- 流程: 顺序流和消息流。它们定义了路径和交互。
- 活动: 任务、子流程。它们代表工作内容。
- 容器: 池和泳道。它们组织范围。
掌握这些组件需要练习。从简单的线性流程开始,然后引入网关进行决策,最后添加事件以响应外部触发。随着复杂性的增加,使用标准符号的规范性能够确保模型对组织依然有效且有用。
遵循这些标准,团队能够为流程改进打下坚实的基础。符号是一种提高清晰度的工具,而不仅仅是文档记录。当每个利益相关者都理解图表时,优化的路径就会变得清晰。













