第1章 BPMN核心元素认知:流程图、活动、网关、事件、泳道、数据对象

适用场景

本章适用于以下场景:

  • 初次接触BPMN的业务分析师或流程建模人员需要建立基本元素认知。
  • 企业流程标准化项目中,团队成员需要统一对核心元素的理解。
  • 在评审已有流程模型时,快速识别和判断元素使用的正确性。
  • 转换或迁移传统流程图(如Visio、泳道图)到BPMN标准时,明确映射关系。

前置条件

  • 已安装BPMN建模工具(如Camunda Modeler、Signavio、Bizagi Modeler)或可使用在线版本。
  • 阅读过BPMN 2.0规范摘要或本章提供的概念对照表。
  • 准备一个空白的流程图模板或新建项目文件。

操作步骤

  1. 创建空白流程图 – 在建模工具中新建一个BPMN 2.0 Diagram(默认包含一个Pool和一个空白的Process)。
  2. 添加活动元素 – 从工具栏拖拽Task(任务)到画布,将其命名为“客户申请”。
  3. 添加事件元素 – 拖拽Start Event(开始事件)到流程起点,End Event(结束事件)到终点。
  4. 添加网关元素 – 在活动之间插入Exclusive Gateway(排他网关),用于表示分支决策。
  5. 添加泳道 – 将初始Pool拆分为两个Lane(泳道),分别命名为“前端”和“后台”。
  6. 添加数据对象 – 将活动“客户申请”关联一个Data Object(数据对象),名称为“申请表单”。
  7. 连接并验证 – 使用Sequence Flow(顺序流)连接所有元素,确保流程闭合且无断点。

输入输出物

类别输入物输出物
工具空白BPMN Diagram文件包含6类核心元素的示例模型
知识BPMN元素定义速查表可复用的元素分类记忆图
标准BPMN 2.0规范片段符合规范的元模型结构

责任边界

  • 建模人员:正确选择元素图标并赋予业务含义,确保流程逻辑无误。
  • 审阅者:检查元素类型是否匹配(例如不能将网关当活动使用),泳道划分是否合理。
  • 工具管理员:提供统一元素模板或配色规范,避免同一元素在不同模型中出现歧义。

记录材料

  • 元素–图标–含义对照表(见下方表格)。
  • 操作截图(工具界面元素面板标注)。
  • BPMN元素关系图(即本章SVG)。

异常处理

  • 元素重叠或图标模糊:调整画布缩放比例,或使用工具“元素对齐”功能。
  • 泳道划分后元素消失:检查泳道是否覆盖了元素所在的坐标范围,重新分配父级Pool。
  • 数据对象连接无效:确认数据对象通过Data Association关联到活动,而非Sequence Flow。

验收标准

  • 模型包含至少:1个开始事件、2个活动、1个排他网关、1个结束事件、2条泳道、1个数据对象。
  • 所有元素名称均为业务可读的中文命名。
  • 顺序流方向正确,无悬空连接线。
  • 数据对象通过虚线关联到对应活动。

核心元素关系图

BPMN 2.0 六大核心元素 边界:整个流程的范围(Pool) 活动 Task / Sub-Process 事件 Start / End / Intermediate 网关 Exclusive / Parallel 泳道 Lane / Pool 数据对象 Data Object / Store 提示 所有元素均可通过 Sequence Flow 连接 实线:元素间包含关系 / 虚线:层级归属关系

元素速查表

元素BPMN图标核心用途常见错误
流程图带Pool的矩形区域定义流程边界和参与者遗漏Pool导致流程无主
活动圆角矩形执行具体工作任务将网关当活动使用
网关菱形控制流程分支与合并不设置条件导致分支无序
事件圆形(单/双线)触发流程开始、结束或中间状态开始事件省略或使用结束事件替代
泳道水平/垂直分割区间区分角色或部门职责同一角色跨越多个泳道混乱
数据对象折角矩形关联流程输入/输出数据用Sequence Flow连接数据对象
关键记忆口诀: “流活网事泳数” – 流程图包裹活动,网关控制分流,事件标记起止,泳道划分角色,数据对象记录信息。

操作步骤对照(以Camunda Modeler为例)

1. 打开Camunda Modeler → 新建 BPMN Diagram。
2. 左侧元素面板拖拽 Pool → 双击 Pool 命名为“客户服务流程”。
3. 拖拽 StartEvent → 右键 → 标记为 None Start Event。
4. 拖拽 Task → 命名“受理工单”;再拖拽 ExclusiveGateway → 放置于Task之后。
5. 拖拽 第二个Task → 命名“审核资料”;再拖拽 EndEvent → 完成流程。
6. 选中 Pool 底部 → 右键 → Add Lane → 分别重命名“客服组”“审批组”。
7. 拖拽 DataObject 放置于“受理工单”下方 → 通过 DataAssociation 连接。
8. 使用 Sequence Flow 连接所有元素(⚠️ 注意:不允许将 DataObject 与 Sequence Flow 连接)。
9. 保存文件为 .bpmn 格式,并用 XML 视图检查元素标签完整性。
企业建模规范建议: 同一模型中,泳道数量不超过6条;活动名称使用“动词+名词”结构(如“提交订单”“查验库存”);网关后的分支必须明确写条件表达式(如“[金额>5000]”)。

BPMN XML片段示例(针对本章模型)

<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" id="Definitions_1">
  <bpmn:process id="Process_1" isExecutable="false">
    <bpmn:startEvent id="StartEvent_1" name="开始"/>
    <bpmn:task id="Task_1" name="客户申请">
      <bpmn:incoming>Flow_1</bpmn:incoming>
      <bpmn:outgoing>Flow_2</bpmn:outgoing>
    </bpmn:task>
    <bpmn:exclusiveGateway id="Gateway_1" name="是否通过"/>
    <bpmn:endEvent id="EndEvent_1" name="结束"/>
    <bpmn:sequenceFlow id="Flow_1" sourceRef="StartEvent_1" targetRef="Task_1"/>
    <bpmn:sequenceFlow id="Flow_2" sourceRef="Task_1" targetRef="Gateway_1"/>
    <bpmn:dataObject id="DataObject_1" name="申请表单"/>
  </bpmn:process>
</bpmn:definitions>