什么是 BPMN 2.0?
BPMN(Business Process Model and Notation,业务流程模型与标记法)2.0 是一套全球公认的、用于描绘业务流程的图形化标准规范。它由 OMG(Object Management Group,对象管理组) 维护和发布。
您可以把它理解为业务流程领域的 “通用语言” 或 “工程蓝图”。它的核心目标是:
- 提供一套易于理解的图形化符号,让业务用户(如分析师、管理者)和技术用户(如架构师、开发者)都能看懂。
- 填补业务活动设计与技术实现之间的鸿沟。业务人员画的图,能够足够精确地转换为可执行的业务流程代码。
- 实现标准化,确保不同工具(如Camunda, Activiti, Flowable等)之间可以用统一的格式(XML)交换流程模型。
为什么 BPMN 2.0 如此重要?
- 可视化与沟通:用直观的图表代替大段的文字描述,使复杂的业务流程一目了然,极大地提高了跨部门沟通效率。
- 规范化与标准化:提供了统一的“语法”,避免了每个人用自己的符号画图导致的混乱和理解歧义。
- 可执行性:BPMN 2.0 不仅是“图画”,其底层对应的 XML 格式(
.bpmn文件)可以被业务流程引擎(如 Camunda, Flowable, Activiti) 直接解析和执行,实现了从设计到运行的无缝衔接。 - 分析与优化:清晰的流程模型有助于分析瓶颈、发现冗余环节,从而优化和改进业务流程。
核心元素与符号(“词汇表”)
BPMN 2.0 的符号体系非常丰富,但最核心的是以下四类元素:
| 类别 | 符号 | 名称 | 作用与示例 |
|---|---|---|---|
| 流对象 | ⬢ | 事件 (Event) | 表示流程中发生的事情。通常用带图标的圆圈表示。 - 开始事件:流程的起点。 - 结束事件:流程的终点。 - 中间事件:流程中发生的事件,如“消息到达”、“计时器触发”。 |
| ▢ | 活动 (Activity) | 流程中执行的工作或任务。是流程的核心,用圆角矩形表示。 - 任务:不可再分的基本工作单元。 - 子流程:一个可以展开的、内部包含其他活动的复合活动。 | |
| ◊ | 网关 (Gateway) | 用于控制流程的分支与合并(决策点)。用菱形表示。 - 排他网关 (XOR):只能选择一条路径(类似 if...else if...else)。 - 并行网关 (AND):所有路径同时执行。 - 包容网关 (OR):根据条件,可以执行一条或多条路径。 | |
| 连接对象 | ➔ | 顺序流 (Sequence Flow) | 带箭头的实线,表示流对象之间的执行顺序。 |
| 🔗 | 消息流 (Message Flow) | 带箭头的虚线,表示不同参与者(如两个不同的部门或系统)之间的消息或数据传递。 | |
| 泳道 | 🏊 | 泳道 (Swimlane) | 用于划分职责,明确哪个参与者(角色、部门或系统)负责执行哪些活动。 - 池 (Pool):代表一个主要的参与者(如“客户”、“公司系统”)。 - 道 (Lane):在池内进一步划分(如“销售部”、“财务部”)。 |
| 制品 | 📄 | 数据对象 (Data Object) | 表示活动所需的输入数据或产生的输出数据。 |
一个简单的 BPMN 2.0 图表示例
假设一个“员工请假”的流程,用 BPMN 2.0 可以这样表示:
- 开始事件:员工提交请假申请。
- 任务:经理审批申请。
- 排他网关:经理做出决策。
- 路径一 (批准):流程走向“通知员工审批通过”的任务,然后更新HR系统。
- 路径二 (拒绝):流程直接走向“通知员工审批被拒”的任务。
- 结束事件:流程结束。
这个过程清晰地展示了流程的走向、决策点和各方的职责。

BPMN 2.0 文件格式
BPMN 2.0 规范不仅定义了图形符号,还定义了其底层的 XML 模式。一个 .bpmn 文件实际上是一个结构化的 XML 文件,它描述了所有元素、它们的属性以及它们之间的关系。
这种机器可读的格式使得流程设计器(如 Eclipse 插件、在线设计器)生成的模型可以直接被各种开源或商业的业务流程引擎所执行,实现了“所画即所得”和“所画即可执行”。
总结
BPMN 2.0 是现代业务流程管理和自动化领域的基石。它:
- 是一门语言:为描述业务流程提供了标准化的“词汇”和“语法”。
- 是一座桥梁:连接了业务需求和技术实现,减少了误解。
- 是一张蓝图:其输出的标准文件是驱动业务流程引擎运行的指令。
如果您正在接触工作流、流程自动化或低代码平台,深入学习 BPMN 2.0 将是非常有价值的一步。市面上有许多优秀的开源工具(如 bpmn.io 提供的在线建模器)可以供您练习和体验。
