业务流程模型与符号(BPMN)作为流程建模的通用语言。它使组织能够可视化工作流、定义逻辑,并在技术与非技术团队之间沟通复杂的操作。然而,图表的精确性完全依赖于符号的正确使用。误解一个网关或一个事件可能导致自动化错误、合规风险或运营瓶颈。
本指南详细解析了BPMN 2.0的各个元素。我们探讨事件、活动、网关和连接对象的具体功能。目标是确保您的图表不仅视觉上美观,而且逻辑严谨,并严格符合标准。

理解核心构建模块 🧱
BPMN图表由四类主要元素构成。每一类元素在定义业务流程生命周期中都发挥着独特作用。要构建一个稳健的模型,必须理解外观相似的形状之间的细微差别。
- 事件:发生的事情。以圆形表示,用于定义流程的开始、中间或结束。
- 活动:需要完成的工作。以圆角矩形表示,代表任务或子流程。
- 网关:决策与同步。这些菱形控制流程的走向。
- 连接对象:连接所有内容的箭头。
1. 事件:您流程的脉搏 ⏱️
事件是您流程的触发点和结果。它们以圆形表示。圆圈边框的粗细表示事件的类型。理解这些差异对于准确的模拟和执行至关重要。
开始事件 🟢
开始事件标志着一个流程实例的开始。它没有传入的顺序流。开始事件的边框较细。圆圈内部的符号定义了触发流程的条件。
- 消息开始:由接收到消息触发(例如电子邮件或API调用)。以信封图标表示。
- 定时器开始:由时间条件触发(例如每周一上午9点)。以时钟图标表示。
- 信号开始:由系统广播的信号触发。
- 错误开始:很少使用,表示由特定错误条件触发的开始。
结束事件 🔴
结束事件表示流程实例的结束。它们没有传出的顺序流。边框较粗,表示终止。内部符号定义了结果。
- 消息结束:在完成时发送一条消息。
- 信号结束: 向其他进程广播一个信号。
- 错误结束: 表示该流程因错误而结束。
- 取消结束: 专门用于事务性流程或子流程,表示取消。
- 终止结束: 立即停止该流程的所有运行实例,无论其他并行路径如何。
中间事件 ⚪
中间事件发生在开始和结束之间。它们既有传入的序列流,也有传出的序列流。边框较细,但内部有一个双线圆圈,以区别于开始和结束事件。
- 捕获事件: 流程等待某件事发生。例如捕获消息、计时器或信号。流程会暂停,直到条件满足。
- 抛出事件: 流程生成某些内容。例如发送消息或触发信号。这通常在任务完成后发生。
- 补偿: 针对长时间运行流程中的错误进行特殊处理。
2. 活动:定义工作 🛠️
活动表示流程中实际执行的工作。它们以圆角矩形绘制,矩形内的图标表示活动的具体类型。
任务 📝
任务是工作最小的单位。在该图的上下文中,它不能再进一步分解。
- 用户任务: 由人类参与者执行的工作。需要人工交互。
- 服务任务: 由IT系统或服务执行的工作。无需人工干预。
- 手动任务: 在现实世界中手动完成的工作,可能在系统外部进行。
- 脚本任务: 由脚本或代码片段执行的工作。
- 业务规则任务: 由规则引擎或策略执行的工作。
- 发送/接收任务:异步消息传递的特定类型任务。
子流程 📂
当流程过于复杂时,会被分解为子流程。这通过一个底部带有加号(+)的圆角矩形来表示。
- 折叠的子流程:显示加号。细节被隐藏,以保持主流程图的整洁。
- 展开的子流程:显示内部任务和流程。用于详细文档记录。
- 调用活动:对在其他地方定义的可重用流程模板的引用。
3. 网关:逻辑控制器 🔄
网关决定流程的流向。它们是逻辑控制中最关键的元素。如果没有正确使用网关,流程将无法做出决策或处理并行的工作流。
排他网关(XOR) ⚡
排他网关表示一个决策点,仅选择一条路径。它看起来像一个菱形,内部有一个X。当条件互斥时使用。
- 逻辑:如果条件A为真,则走路径A;如果条件B为真,则走路径B。只有一条路径处于激活状态。
- 用途:审批流程(批准与拒绝),基于数据值的分支。
- 默认流程:如果没有条件匹配,则采用默认流程。这必须明确标注。
并行网关(AND) ⚙️
并行网关同时分割或合并流程。它看起来像一个菱形,内部有一个+。
- 拆分:创建多个并行路径。所有路径同时执行。
- 汇聚:等待所有传入的并行路径完成后才继续。
- 用途: 同时发送通知邮件并更新数据库。在继续之前等待多个审批。
包容网关(或)🌐
包容网关允许选择一个或多个路径。它看起来像一个菱形,内部有一个o在里面。
- 拆分:评估条件。如果条件A为真,则路径A激活。如果条件B为真,则路径B激活。两者都可以为真。
- 合并:等待所有活动路径完成。它不会等待未选择的路径。
- 用法:复杂的分支,可以同时选择多个选项(例如,选择多种运输方式)。
基于事件的网关 ⚠️
此网关等待特定事件发生。它看起来像一个菱形,内部有一个六边形。用于等待外部触发。
- 逻辑:流程等待多个事件中的一个发生。一旦某个事件发生,其他潜在路径将被取消。
- 用法:等待支付确认或超时到期。
网关类型对比
| 网关类型 | 符号 | 拆分逻辑 | 合并逻辑 |
|---|---|---|---|
| 排他网关(异或) | 菱形内带X | 根据条件选择唯一一条路径。 | 合并单个传入路径。 |
| 并行网关(与) | 菱形内带+ | 同时创建所有路径。 | 等待所有传入路径完成。 |
| 包含性(或) | 菱形内部的 o | 激活满足条件的任意路径。 | 等待所有活动路径完成。 |
| 基于事件 | 六边形内部 | 等待任意事件发生。 | 等待发生的事件。 |
4. 连接对象:连接流程 🔗
连接器定义了信息和控制在元素之间传递的方式。箭头的样式表示连接的性质。
顺序流 🟦
顺序流连接同一过程中的元素。它是一条实线,带有开放的箭头。
- 功能:表示执行顺序。
- 方向:从上到下,从左到右流动。
- 用途:连接单个泳道内的任务、事件和网关。
消息流 🟧
消息流连接不同泳道或参与方之间的元素。它是一条虚线,带有开放的箭头。
- 功能:表示参与者之间的信息交换。
- 方向:可以跨越泳道和泳池。
- 用途:从客户向供应商发送请求。
关联 🟩
关联将数据工件或注释链接到流程元素。它是一条虚线,带有实心箭头(或开放箭头,取决于方向)。
- 功能:提供上下文或数据引用,而不影响流程控制。
- 用法:将文档链接到任务,或将文本备注链接到特定网关。
5. 池与泳道:组织职责 🏊
复杂流程涉及多个参与方。BPMN 使用池与泳道来可视化这些关系。
池 🟦
池代表流程中的一个参与者。它是一个容纳流程定义的容器。每个池都有自己独立的开始和结束事件。
- 公共池:代表外部组织或实体。
- 私有池:代表内部部门或系统。
- 消息流:只能在不同池之间发生。
泳道 🟨
泳道是池内的子区域。它们代表特定角色、部门或系统,负责该部分的活动。
- 职责:明确谁执行哪项任务。
- 视觉清晰度:有助于追踪角色之间的交接。
- 泳道:常与泳道互换使用,用来描述水平或垂直划分。
6. 常见模式与反模式 🛑
即使是经验丰富的建模者也会犯错。识别常见模式与反模式,能确保图表的长期可用性。
无限循环 ⚠️
一个没有终止条件的序列流返回到之前的位置,会形成无限循环。在图表中,如果表示重试机制,这是可以接受的,但在执行时会导致系统挂起。
- 解决方案: 确保循环中有计数限制或中断条件。
孤立任务
没有输入或输出连接的任务是孤立任务。这表明图表不完整。
- 解决方案: 将所有任务连接到一个逻辑流程路径上。
缺少网关
未正确连接或拆分的并行流程可能导致死锁。如果一个流程分为两条并行路径,但只有一条路径重新合并,另一条路径可能会无限期挂起。
- 解决方案: 始终使用并行网关来合并所有并行分支。
7. 图表绘制的最佳实践 📏
为保持高质量的流程文档,应遵循以下结构化指南。
命名的一致性
- 为任务使用清晰、以行动为导向的名称(例如,审核发票而不是发票).
- 根据触发条件命名事件(例如,收到发票而不是开始).
- 用条件标注网关(例如,金额 > 1000).
视觉层次
- 将开始事件放置在顶部或左侧。
- 将结束事件放置在底部或右侧。
- 保持流程方向一致(自上而下或自左向右)。
- 避免线条交叉。使用折点来使流程更顺畅。
数据对象
- 将数据表示为附着在任务上的文档图标。
- 使用关联关系来显示读取或写入的数据。
- 不要将数据对象放置在顺序流上;它们属于任务或网关。
8. 高级网关逻辑 🧠
高级建模通常需要嵌套网关或复杂条件。理解不同网关类型之间的交互至关重要。
嵌套网关
将一个网关放置在另一个网关内部可以简化复杂逻辑,但会增加读者的认知负担。
- 建议:保持逻辑简单。如果一个网关需要五个条件,考虑将流程拆分为子流程。
基于事件的选择
使用基于事件的网关时,确保所有等待的事件都是不同的。如果两个事件可能同时发生,行为将变得不确定。
- 建议:如果存在歧义,使用明确的逻辑来优先考虑一个事件而非另一个事件。
9. 解决常见符号混淆问题 🤔
即使是专家有时也会混淆相似的符号。以下是常见混淆的快速参考。
任务 vs. 服务任务
- 任务:人工工作。
- 服务任务:系统工作。
- 检查:需要有人点击按钮吗?如果是,就是任务;如果系统自动完成,就是服务任务。
并行网关 vs. 包含网关
- 并行:所有路径都运行。
- 包含:选定的路径运行。
- 检查:是否可能只有一条路径运行?如果是,使用包含网关;如果所有路径都必须运行,使用并行网关。
中间捕获 vs. 抛出
- 捕获:流程等待。
- 抛出:流程发送。
- 检查:箭头是指向事件(捕获)还是从事件中指出(抛出)?
10. 实施注意事项 🚀
虽然本指南侧重于符号表示,但这些图表的实现通常涉及执行引擎。理解符号表示可确保逻辑能够转化为代码或工作流规则。
- 条件评估: 确保网关条件是可测试的表达式。
- 超时: 使用定时中间事件进行服务级别协议(SLA)跟踪。
- 通知: 使用消息结束事件来触发外部警报。
符号规则摘要 📜
遵循BPMN标准可确保您的图表具有可移植性,并且任何利益相关者都能理解。
- 事件是圆形: 开始(细线),结束(粗线),中间(双细线)。
- 活动是圆角矩形: 任务(内部有图标),子流程(内部有加号)。
- 网关是菱形: XOR(X),AND(+),OR(o),事件(六边形)。
- 连接是线条: 顺序(实线),消息(虚线),关联(虚线)。
- 图示是文档: 数据、分组、注释。
通过掌握这些符号,您将为流程优化奠定基础。清晰的图表能减少歧义,简化沟通,并促进准确的自动化。学习符号表示所投入的努力,将在最终业务流程的清晰度上得到回报。
请记住,图表是一种合同。如果逻辑不清晰,执行就会出错。请定期审查您的模型,以确保它们仍然反映当前的业务现实。








