4、流程建模基础:BPMN 2.0 简介、泳道图、活动图、事件与网关

说到流程自动化,咱们得先有个共同的语言。不然你画你的,我画我的,最后对不上,那可就麻烦了。

BPMN 2.0 就是干这个的。它是一套标准,用来画业务流程。说白了,就是让业务人员和技术人员都能看懂同一张图。

我刚开始接触那会儿,也觉得这东西有点繁琐。但后来发现,只要掌握了几个核心元素,画起来其实挺顺手的。今天咱们就聊聊这些基础。

4.1 BPMN 2.0 是什么?

BPMN 全称是 Business Process Model and Notation,2.0 是目前最通用的版本。它定义了一套图形符号,用来描述业务流程。

你想想看,一个审批流程,从发起、到各级审批、再到结束,中间可能有退回、有驳回、有自动通知。用文字描述,写一大段还不一定清楚。用 BPMN 画出来,一眼就能看明白。

我个人习惯,在项目启动阶段,先用 BPMN 把流程画出来。这样业务方和开发团队能快速对齐,减少后期返工。

核心价值: BPMN 2.0 是流程自动化的“通用语言”。它让流程定义变得标准化、可执行、可监控。

4.2 泳道图:分清职责

泳道图,也叫跨功能流程图。它最大的特点就是按角色或部门划分“泳道”。

每个泳道里放这个角色负责的活动。谁做什么,一目了然。

我记得有一次做跨部门审批流程,业务方说“这个节点我们审,那个节点他们审”。结果画成泳道图才发现,有个节点两边都以为对方会处理,差点漏掉。泳道图就是用来避免这种“踢皮球”的。

泳道类型 说明 常见用途
水平泳道 按角色/部门横向划分 跨部门审批、协作流程
垂直泳道 按角色/部门纵向划分 时间线清晰的流程
泳池 包含多个泳道的容器 表示整个组织或系统

小技巧: 画泳道图时,尽量把发起方放在最上面或最左边。这样流程走向更自然,阅读体验更好。

4.3 活动图:流程中的动作

活动,就是流程里要做的“事”。BPMN 2.0 把活动分成几种:

  • 任务(Task): 原子级的动作,不可再分。比如“填写请假单”、“发送邮件通知”。
  • 子流程(Sub-Process): 可以展开成更细的流程。比如“审批流程”本身可以是一个子流程,里面包含多级审批。
  • 调用活动(Call Activity): 调用一个已经定义好的流程。比如调用“员工信息查询”这个公共流程。

我在项目中遇到过,有人把“审批”画成一个任务,但实际审批可能包含“部门审批”、“HR审批”、“财务审批”三个步骤。这时候就应该用子流程,或者拆成三个独立任务。不然流程引擎执行起来会出问题。

注意: 活动图里的任务,最终会映射到流程引擎里的执行节点。画得太粗,实现时容易漏细节;画得太细,图会变得很乱。建议保持“一个任务对应一个业务操作”的粒度。

4.4 事件:流程的触发器

事件,就是流程中“发生的事”。它会影响流程的走向。BPMN 2.0 的事件分三种:

  • 开始事件: 流程从哪里启动。比如“收到请假申请”。
  • 中间事件: 流程执行过程中发生的事。比如“超时未审批”、“收到驳回通知”。
  • 结束事件: 流程在哪里终止。比如“审批通过”、“流程结束”。

事件还可以细分类型,比如定时事件、消息事件、错误事件等。咱们做审批流程,最常用的是消息事件和定时事件。

举个例子:审批超时了,自动触发“催办”通知。这个“超时”就是一个定时中间事件。

关键点: 事件是流程自动化的“神经末梢”。用好事件,可以让流程更智能、更灵活。

4.5 网关:流程的分岔路口

网关,决定了流程往哪走。它就像十字路口的红绿灯,控制着流程的流向。

网关类型 符号 行为 审批场景举例
排他网关 菱形 + X 只有一个分支被激活 金额≤5000走快速审批,否则走完整审批
并行网关 菱形 + + 所有分支同时执行 同时通知申请人和审批人
包容网关 菱形 + O 满足条件的分支都执行 根据审批意见,部分节点需要重新审批
事件网关 菱形 + 五边形 根据事件触发分支 等待“同意”或“驳回”事件

我曾经犯过一个错:用排他网关处理“金额大于5000”和“金额小于5000”两个条件,结果忘了考虑“等于5000”的情况。流程跑到那里就卡住了。嗯,这里要注意,条件一定要覆盖所有可能性,最好加一个默认分支兜底。

4.6 把这些组合起来:一个完整的审批流程

光说理论有点干。咱们来看一个实际的例子:请假审批流程。

流程是这样的:

  1. 员工提交请假申请(开始事件 + 任务)
  2. 系统判断请假天数(排他网关)
  3. ≤3天:直接主管审批(任务)
  4. >3天:直接主管审批 + 部门经理审批(并行网关 + 两个任务)
  5. 审批通过或驳回(结束事件)
  6. 如果3天未审批,自动催办(定时中间事件)

你看,用 BPMN 画出来,整个流程清晰明了。开发人员照着图就能实现流程引擎的配置。

我的建议: 刚开始学 BPMN,别急着画复杂的图。先拿一个简单的审批流程练手,把泳道、活动、事件、网关都用上。画熟了,再处理分支多、条件复杂的流程。

4.7 本章知识体系图

下面这张图,把咱们今天讲的核心元素串起来了。你可以把它当作一个速查表。

BPMN 2.0 核心元素关系图 BPMN 2.0 核心元素关系图 泳池(流程容器) 泳道:申请人 开始 提交申请 X 判断天数 ≤3天 主管审批 >3天 + 并行 主管审批 经理审批 结束 ⏰ 定时事件:超时催办 图例: 开始事件 排他网关 并行网关 任务 结束事件 定时事件

这张图里,我把泳道、开始事件、任务、排他网关、并行网关、结束事件、定时事件都串起来了。你可以对照着看,每个元素在流程里扮演什么角色。

好了,流程建模的基础就这些。说白了,BPMN 2.0 就是一套积木,泳道、活动、事件、网关是四块最常用的。你把这些积木搭起来,就能描述绝大多数审批流程。