引言
在复杂的商业运营世界中,清晰至上。无论您是在简化内部工作流程、定义合作伙伴之间的交互,还是实现服务自动化,您都需要一种通用语言来弥合业务利益相关者与技术人员之间的鸿沟。这就是BPMN(业务流程建模与符号表示法).

BPMN 是一种用于在业务流程图中指定业务流程的标准图形符号表示法。由对象管理组织(OMG)维护,它提供了一套丰富的符号,能够精确地建模工作流程,其能力远超简单的流程图或 UML 活动图。本指南作为 BPMN 的全面教程,涵盖其核心元素、事件类型、网关、任务,以及编排、编排和协作之间的关键区别。
1. 核心概念:什么是 BPMN 图?
BPMN 图使用一组特定的符号来表示业务流程。虽然与流程图相似,但 BPMN 提供了更丰富的语义,专门针对业务流程领域设计。
主要有三种类型的 BPMN 图,每种服务于不同层次的抽象:
-
BPMN 对话图:参与者之间通信的高级视图。
-
BPMN 协作图:展示两个或多个业务实体(池)之间的交互。
-
BPMN 编排图:专注于参与者之间消息交换的序列。
关键符号概览
为了构建这些图表,BPMN 使用了若干类别的符号:
-
泳道:池和泳道用于组织职责。
-
活动:任务、事务、子流程和调用活动。
-
网关:控制流程分支的决策点。
-
事件:流程的起始点、中间点和结束点。
-
数据:输入、输出、存储和对象。
-
流:顺序流、消息流和数据关联。
-
工件:用于组织的分组和文本注释。
2. BPMN 事件:流程的触发器
事件是发生在流程过程中。它们以圆形表示,并根据其在流程中的位置和行为进行分类。
按位置分类的事件类型
-
开始事件:以标准宽度线条表示。它们触发流程的开始。
-
中间事件:以双标准宽度线条表示。它们发生在活动之间。
-
结束事件:以宽边框表示。它们标志着流程路径的结束。

中断式与非中断式边界事件
边界事件附加在活动(任务)的边界上。它们定义了流程在活动进行期间如何响应外部刺激。
-
中断式:如果事件发生,当前活动将立即停止,随后流程遵循该事件的路径。
-
非中断式:如果事件发生,当前活动将继续。一旦活动完成,流程将分叉,同时继续标准路径和事件特定路径。
抛出事件与捕获事件
-
抛出事件:触发一个事件(例如,发送信号或消息)。
-
捕获事件:等待并响应被触发的事件。
事件组合完整列表
并非所有开始/中间/结束和抛出/捕获的组合都是有效的。以下是 BPMN 中定义的有效组合。
BPMN 开始事件
-
补偿开始事件(中断型)
-
条件开始事件(中断型与非中断型)
-
错误开始事件(中断型)
-
升级开始事件(中断型与非中断型)
-
消息开始事件(中断型与非中断型)
-
多实例开始事件(中断型与非中断型)
-
并行多实例开始事件(中断型与非中断型)
-
信号开始事件(中断型与非中断型)
-
定时器开始事件(中断型与非中断型)
BPMN 中间事件
-
消息:捕获、抛出、中断型边界捕获、非中断型边界捕获。
-
定时器:捕获、中断型边界捕获、非中断型边界捕获。
-
升级:中断型边界捕获、非中断型边界捕获。
-
条件:捕获、中断型边界捕获、非中断型边界捕获。
-
链接:捕获、抛出。
-
错误:中断型边界捕获。
-
取消:中断型边界捕获。
-
补偿: 中断边界捕获、抛出。
-
信号: 捕获、中断边界捕获、非中断边界捕获、抛出。
-
多实例: 捕获、中断边界捕获、非中断边界捕获、抛出。
-
多实例并行: 捕获、中断边界捕获、非中断边界捕获。
BPMN 结束事件
-
无结束事件
-
消息结束事件
-
信号结束事件
-
多实例结束事件
-
升级结束事件
-
错误结束事件
-
补偿结束事件
-
取消结束事件
-
终止结束事件
3. BPMN 网关:控制工作流
网关是控制序列流分叉与汇聚的决策节点,通常以内部带有特定标记的菱形表示。

网关类型
-
排他网关(XOR):
-
符号: 空菱形或带有“X”的菱形。
-
功能: 作为决策点。仅根据条件选择一条路径,如果未满足任何条件,则使用默认流程(如果已定义)。类似于一条 出路径。如果未满足任何条件,则使用默认流程(如果已定义)。类似于
if-else语句。
-
-
基于事件的网关:
-
符号:带有包含五角星的圆圈的菱形。
-
功能:类似于排他网关,但分支的选择基于哪个事件首先发生,而不是评估数据条件。
-
-
包容网关(OR):
-
符号:带有内部圆圈’O’的菱形。
-
功能:允许多条条 outgoing 路径在各自条件满足时同时执行。它还可以合并多条 incoming 路径。
-
-
并行网关(AND):
-
符号:带有内部加号’+’的菱形。
-
功能:将流程拆分为并发路径(所有路径均执行)。合并时,它等待所有条 incoming 路径完成后再继续。相当于 UML 中的 Fork/Join。
-
-
并行基于事件的网关:
-
符号:带有包含加号’+’的圆圈的菱形。
-
功能:将流程分叉为由特定事件触发的并发流。
-
-
复杂网关:
-
符号:内部带有星号 ‘*’ 的菱形。
-
功能:用于无法由其他网关建模的复杂决策场景。由内部参数定义。注意:很少使用;通常更倾向于组合使用其他网关。
-
4. BPMN 任务:工作单元
任务是流程中的原子活动,以圆角矩形表示。任务的具体类型由左上角的图标指示。

任务类型
-
抽象任务:一种没有特定子类型的通用任务。
-
业务规则任务:执行一个或多个业务规则。
-
手动任务:由人类物理执行,无需软件自动化。
-
用户任务:由人类用户执行,可能借助软件应用程序。
-
接收任务:等待消息到达。收到消息后完成。
-
发送任务:向外部参与者发送消息。发送完成后完成。
-
脚本任务:包含由流程引擎执行的脚本。
-
服务任务:通过服务、Web 服务或应用程序模块进行自动化处理。
5. 子流程和事务
子流程支持分层建模,通过隐藏复杂性保持图表清晰。
-
子流程:嵌套的流程。它可以被折叠(底部显示为一个小加号方块)或展开(显示所有内部节点)。
-
临时子流程:其中的活动可以按任意顺序执行、多次执行,或完全跳过。
-
事件子流程:由特定事件触发。根据事件类型,它可以与主流程并行运行,或终止主流程。
-
事务:一组必须同时成功或失败的活动。结果包括成功、错误(风险)或取消。
6. 流与连接符

连接符定义图表中的关系和流向。
-
顺序流:带箭头的实线。按执行顺序连接活动。
-
条件流:仅在条件为真时执行。
-
默认流:“否则”分支,当没有其他条件满足时执行。
-
-
消息流:虚线,起点为空心圆,终点为箭头。表示不同池(参与者)之间的通信。
-
关联:虚线。将工件(如文本注释)链接到流程对象。
-
数据关联:带箭头的虚线。将数据对象链接到活动。
7. BPMN 数据元素
数据元素表示在流程中流动或由流程存储的信息。
-
数据对象:在系统各部分之间传输的信息。
-
数据对象集合:一系列数据对象。
-
数据输入/输出:流程所需或生成的外部数据。
-
数据存储:存在于进程生命周期之外的持久化存储(例如数据库)。
8. 泳道:组织职责
泳道按参与者和角色对图表进行组织。
-
池:代表主要参与者(例如公司、部门或系统)。一个图表可以包含多个池。
-
泳道:池内的子划分。泳道代表该参与者内部的具体角色、部门或系统。
9. BPMN 编排与 choreography(协同)与协作
理解模型的适用范围至关重要。BPMN 区分了私有内部流程和公共组织间交互。
公共流程与私有流程
-
私有(内部)流程:单一实体内部的详细流程。
-
公共流程:描述合作伙伴之间的交互。内部细节被视为“黑盒”,仅关注交换的消息和对象。
三大类别
1. 编排
-
定义:一种标准流程,模拟单一协调视角。
-
范围:在单一业务实体内(单个池)。
-
用例:内部工作流自动化。
2. 协作
-
定义:展示两个或多个业务实体之间的交互。
-
范围:多个池通过消息流连接。
-
结构:可以显示池内的详细流程,或将其视为黑盒。

3. 协同
-
定义: 严格关注消息交换 参与者之间的交互,而非内部任务。
-
范围: 无泳道。参与者嵌入在任务形状内。
-
用例: 定义组织间交互的“契约”。
编排符号的演进
-
BPMN 1.1: 编排与编排混合,缺乏专用符号。

-
BPMN 2.0: 引入了专用的编排图。
编排任务
编排任务定义交互。它们包括:
-
发起参与者: 以彩色填充。
-
非发起参与者: 以灰色填充。
-
消息: 定义了发起消息和可选的返回消息。


示例:诊所流程
显示患者与医生办公室之间的交互。发起者颜色根据谁开始交互而变化。

示例:管理信息系统(MIS)

BPMN 对话图
最高抽象级别。它完全移除流程逻辑,仅显示谁与谁对话.
-
元素: 泳道、对话节点(六边形)和对话链接(双线)。
-
视图: “30,000英尺视角”的通信概览。
示例:MIS 对话
此图表将之前的编排简化为高层对话块。

结论
BPMN 是一种强大且标准化的语言,能够促进业务与技术边界之间的清晰沟通。通过掌握以下概念之间的区别:编排(内部控制)、协作(多方交互)以及编排(消息契约),您可以根据受众需求以适当的详细程度对流程进行建模。
无论您是记录简单的审批工作流,还是设计复杂的多组织供应链,BPMN 都能提供必要的严谨性和灵活性。要有效创建这些图表,利用专业工具至关重要。Visual Paradigm提供了一套强大的 BPMN 建模工具套件,支持本指南中讨论的所有图表类型,从详细的编排流程到高层对话地图。使用此类工具可确保符合 BPMN 2.0 标准,并促进利益相关者之间的协作。













