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 把这些组合起来:一个完整的审批流程
光说理论有点干。咱们来看一个实际的例子:请假审批流程。
流程是这样的:
- 员工提交请假申请(开始事件 + 任务)
- 系统判断请假天数(排他网关)
- ≤3天:直接主管审批(任务)
- >3天:直接主管审批 + 部门经理审批(并行网关 + 两个任务)
- 审批通过或驳回(结束事件)
- 如果3天未审批,自动催办(定时中间事件)
你看,用 BPMN 画出来,整个流程清晰明了。开发人员照着图就能实现流程引擎的配置。
我的建议: 刚开始学 BPMN,别急着画复杂的图。先拿一个简单的审批流程练手,把泳道、活动、事件、网关都用上。画熟了,再处理分支多、条件复杂的流程。
4.7 本章知识体系图
下面这张图,把咱们今天讲的核心元素串起来了。你可以把它当作一个速查表。
这张图里,我把泳道、开始事件、任务、排他网关、并行网关、结束事件、定时事件都串起来了。你可以对照着看,每个元素在流程里扮演什么角色。
好了,流程建模的基础就这些。说白了,BPMN 2.0 就是一套积木,泳道、活动、事件、网关是四块最常用的。你把这些积木搭起来,就能描述绝大多数审批流程。