掌握 BPMN 网关:流程控制全面指南

引言

业务流程模型与符号(BPMN) 是业务流程建模的全球标准,而有效流程建模的核心在于对网关的深刻理解。活动代表工作,事件标记发生的情况,而网关则作为关键控制点,决定序列流在流程中如何分支、分叉、合并和连接。

本指南全面探讨网关基础,重点介绍正确的建模规范、常见误区及实际应用。理解这些概念对于创建清晰、可执行且易于维护的流程模型至关重要,这些模型能够准确反映业务逻辑,并促进企业各利益相关方之间的有效沟通。

BPMN 网关基础——示例与常见误区


什么是网关?

网关是BPMN 元素,它们控制流程的流向,通过根据特定条件或事件确定序列流的路径。它们本身不代表工作,也不是传统意义上的决策点。相反,它们协调流程执行如何在不同分支中推进。

网关的五大基本原则

1. 网关决定流向

含义:网关充当您流程中的交汇点。它们决定“交通”(即流程流)下一步去向何方。它们可以将一条路径拆分为多条(分支/分叉),也可以将多条路径合并为一条(合并/连接)。

  • 初学者示例:高速公路立交桥
    想象您正在高速公路上行驶(即序列流)。您正接近一个主要立交桥(即网关)。

    • 分支:道路在此分叉。您可以选择出口 A 前往机场,或出口 B 前往市中心。网关负责管理这一分叉。
    • 合并:随后,两条不同的匝道(分别来自机场和市中心)重新汇入同一条主干道。网关负责管理这一合并。

2. 网关依赖于条件

含义:网关不会随机选择路径。它会查看之前发生的事件(数据)之前它,或等待特定事件发生之后它,以决定将流程导向哪条路径。

  • 初学者示例:俱乐部的保安
    想象一下夜总会的入口。“保安”就是网关。

    • 条件:在允许你进入之前,保安检查你的身份证件(来自活动“出示身份证”的数据)。
    • 规则:如果年龄 ≥ 21,你进入“贵宾休息室”路径;如果年龄 < 21,你进入“回家”路径。
    • 保安不会猜测;他们依据特定条件(你的年龄)来控制流程。

3. 网关不是决策点(不要使用“是/否”标签!)

含义:这是一个常见错误。在传统流程图中,菱形节点被标记为“是”或“否”。在 BPMN 中,我们避免这样做。我们不将箭头标记为二元答案,而是将箭头标记为条件或结果。这使得模型对所有人都易于理解,而不仅仅是程序员。

  • 初学者示例:点咖啡
    ❌ 错误的建模方式(“是/否”陷阱):

    • 网关:“你要加牛奶吗?”
    • 箭头 1:“是”
    • 箭头 2:“否”
      (这很模糊。如果我想喝燕麦奶怎么办?如果我对乳糖不耐受怎么办?)

    ✅ 正确的建模方式(使用表达性语言):

    • 网关:“选择牛奶偏好”
    • 箭头 1:“顾客选择乳制品牛奶”
    • 箭头 2:”客户选择燕麦奶”
    • 箭头 3:”客户选择不加奶”
      (现在流程清晰、详细,并准确反映了实际业务规则。)

4. 网关不代表工作

含义如下:活动(如标有”撰写报告”或”致电客户”的方框)需要时间和努力。网关则不不。它们是瞬时的。它们不”执行”任何操作;仅负责引导。如果你发现自己认为”我需要在该网关处花费一小时”,说明你的建模方式有误。

  • 初学者示例:铁路道岔
    想象一条铁轨。

    • 活动:火车头沿轨道行驶是实际工作。它需要时间和燃料。
    • 网关:轨道上的金属道岔,用于将火车导向左侧或右侧。
    • 道岔本身并不移动火车,也不消耗燃料。它只是瞬间改变方向。工作是由火车(即活动)完成的,而非道岔(即网关)。

5. 网关可以是基于数据的或基于事件的

含义如下:网关决定流程去向主要有两种方式:

  1. 基于数据:它查看现有信息(如表单字段或数据库值)。
  2. 基于事件:它等待特定事件发生(例如计时器到期或收到消息)。
  • 初学者示例:等待包裹
    • 基于数据的网关(检查状态):
      你查看物流追踪应用。数据显示”已送达”。

      • 网关逻辑:如果状态为“已送达”,请前往“开箱”。如果状态为“运输中”,请前往“等待”。
      • 要点:您正在评估现有数据。
    • 基于事件的网关(等待某事发生):
      您正坐在门廊上等待。

      • 网关逻辑:等待以下任一情况:
        1. 门铃响起(事件:包裹到达)
        2. 太阳落山(事件:超时/一天结束)
      • 要点:您不是在检查数据库,而是在等待特定事件首先发生。哪一个先发生,就决定您的下一步。

初学者总结速查表

原则 简单类比 核心要点
流程方向 高速公路立交桥 分流或汇合路径。
依赖条件 俱乐部保安 在允许您通过前检查规则/身份证件。
非决策点 菜单选项 不要使用“是/否”。请使用描述性结果,例如“已选择素食选项”。
无操作 铁路道岔 它负责引导交通,但不执行繁重的处理工作。
数据与事件 追踪应用与门铃 数据 = 查询信息。事件 = 等待某事发生。

网关类型

七种 BPMN 网关类型,以橙色菱形图标和标签显示

1. 排他网关(XOR 网关)

排他网关是最常用的网关类型。它表示一个节点,在该节点处,根据数据驱动的条件从多个备选方案中恰好选择一条路径。

关键特征:

  • 数据驱动: 路由决策基于对数据或条件的评估
  • 互斥路径: 仅选择一条 outgoing 路径
  • 发散行为: 将一条 incoming 流拆分为多条可能的 outgoing 流
  • 收敛行为: 将多条 incoming 流合并为一条 outgoing 流(仅有一条会到达)

示例:学生参与度场景

考虑一个教学流程,其中教师必须根据学生的参与度水平决定如何继续:

展示学生参与度场景的 BPMN 流程图,根据参与度通过网关分支至高级主题或休息。

建模说明:

  • 条件“学生是否投入?”基于可观察的数据进行评估:
    • 学生是否在打瞌睡?
    • 他们是否坐在座位边缘?
    • 他们是否在提问?
    • 是否有积极参与?
  • 该网关不在箭头上使用“是/否”之类的标签
  • 相反,每条路径都有描述性标签,用于说明条件或结果

正确的标签约定:

❌ 错误示例:

  • 箭头 1:“是”
  • 箭头 2:“否”

✅ 正确:

  • 箭头 1:“学生积极参与并提出问题”
  • 箭头 2:“学生似乎注意力不集中或心不在焉”

2. 并行网关(AND 网关)

该并行网关将流程拆分为多个同时执行的并发路径,或将多个并发路径合并回单一流程。

关键特征:

  • 无需条件:所有 outgoing 路径同时被采用
  • 并发:多个活动并行执行
  • 同步:合并时,等待所有 incoming 路径完成

示例:订单处理

展示订单履行流程的 BPMN 流程图,其中包含用于并发支付、库存管理和客户通知任务的并行拆分与合并网关。建模说明:

  • 支付验证、库存检查和客户通知均并发进行
  • 流程无法进入发货阶段,直到全部三个个并行活动完成
  • outgoing 箭头无需条件标签

3. 包容性网关(OR 网关)

该包容性网关允许根据条件选择一条或多条路径。与排他性网关(仅选择一条路径)不同,若满足条件,多条路径可同时执行。

关键特征:

  • 条件分支:每条路径都有一个条件
  • 可能存在多条路径: 可能不采取任何路径、采取一条路径或多条路径
  • 灵活执行: 比排他性网关更灵活,但比并行网关更不僵化

示例:客户入职

展示客户入职流程的 BPMN 图,其中包含用于发送欢迎邮件、分配客户经理和安排培训的并行网关。

建模说明:

  • 根据客户类型和偏好:
    • 所有新客户都会收到欢迎邮件
    • 企业客户会配备客户经理
    • 技术产品需要安排培训
  • 这些路径的任何组合都可能被执行

4. 基于事件的网关

该基于事件的网关根据哪个事件首先发生来路由流程,而不是评估数据条件。

关键特征:

  • 事件驱动: 等待多个可能事件中的一个
  • 先到先得: 哪个事件先触发就决定走哪条路径
  • 常见用例: 超时场景、竞争信号、中断事件

示例:申请审核流程

展示申请提交后路由至审批、拒绝或超时的 BPMN 网关图。

建模说明:

  • 流程等待最先发生的情况:批准、拒绝或超时
  • 无需数据评估——纯粹由事件触发路由

5. 复杂网关

该复杂网关处理那些无法归入其他网关类型的复杂路由场景。由于其复杂性,它的使用较为谨慎。

关键特征:

  • 自定义行为: 由复杂表达式或规则定义
  • 很少使用: 大多数场景可以通过组合更简单的网关来建模
  • 高级建模: 需要仔细文档化

网关建模约定与最佳实践

1. 发散网关要求

发散网关(用于分流)必须至少具有两条出向箭头.

❌ 无效:

无效的 BPMN 发散网关,仅有一个出站箭头分支至单个活动。

 

✅ 有效:

展示订单管理流程通过发散网关拆分为并行库存更新和物流通知任务的 BPMN 图。

2. 汇聚网关要求

汇聚网关(用于汇流)必须至少具有两条入向箭头.

❌ 无效:

[活动 A] → [网关] → [下一活动]

✅ 有效:

[活动 A] → [网关] → [下一活动]
[活动 B] ↗

3. 开始事件与结束事件

每个结构良好的流程模型应包含:

  • 至少一个开始事件: 标记流程的起始位置
  • 至少一个结束事件: 标记流程完成的位置

4. 避免使用“是/否”标签

正如基础部分所强调的,网关是并非决策点在传统流程图意义上的决策点。

为何这很重要:

  • 支持表达性强、易于业务理解的术语
  • 使模型具备自文档化能力
  • 促进与非技术利益相关者的更好沟通
  • 符合 BPMN 规范标准

5. 清晰的路径描述

从网关流出的每条顺序流都应具有清晰、描述性的标签,用以说明:

  • 正在评估的条件
  • 预期结果
  • 业务背景

示例:

避免使用:

  • 路径 1:“条件 A”
  • 路径 2:“条件 B”

应使用:

  • 路径 1:“客户信用评分高于 700”
  • 路径 2:“客户信用评分低于 700”

实际示例

示例 1:贷款审批流程

展示贷款审批流程的 BPMN 流程图,其中包含用于自动审批或人工审核的信用评估网关。

示例 2:事件响应流程

展示基于严重程度路由至即时响应、升级或队列的 BPMN 事件响应流程图。

示例 3:电子商务结账流程

展示电子商务结账流程的 BPMN 图,其中包含用于信用卡、PayPal 和银行转账的支付网关。

需避免的常见错误

1. 将网关用作带有“是/否”标签的决策点

这违反了 BPMN 规范,并降低了模型的清晰度。

2. 创建单路径网关

仅有一个流入或一个流出流的网关毫无作用,应当予以删除。

3. 错误地混用网关类型

需要并行执行时不要使用排他网关,反之亦然。

4. 省略流出流的条件

对于条件网关(排他网关、包容网关),务必明确指定决定每条路径的条件。

5. 忘记合并并行流

如果拆分到并行路径,请确保最终使用相应的并行网关将它们合并回来。


网关选择指南

场景 推荐网关
根据条件选择且仅选择一条路径 排他网关
同时执行所有路径 并行网关
根据条件选择一条或多条路径 包容网关
等待最先发生的事件 基于事件的网关
复杂的自定义路由逻辑 复杂网关

结论

掌握 BPMN 网关对于创建高效、清晰且可执行的业务流程模型至关重要。通过理解网关用于控制流程而非代表工作,避免将其简单标记为“是/否”决策点,并为每种场景应用适当的网关类型,您可以创建准确反映业务逻辑并促进组织内部清晰沟通的模型。

牢记以下关键原则:

  • 网关决定分支、分叉、合并与汇合
  • 它们依赖于条件或事件,而非任意决策
  • 它们本身从不代表工作
  • 始终在顺序流上使用描述性强且易于业务理解的标签
  • 确保分叉网关具有多个输出,合并网关具有多个输入

随着您不断提升流程建模技能,请利用专业工具,例如Visual Paradigm来创建、验证并共享您的BPMN 图表. Visual Paradigm提供全面的BPMN 支持包括智能网关建议、建模规则的自动验证以及帮助团队构建一致且高质量的流程模型的协作功能。凭借对网关基础知识的正确理解以及合适的工具,您将能够很好地建模出能够为企业带来实际业务价值的流程。