BPMN(Business Process Modeling Notation)是一种流程建模的通用和标准语言,用来绘制业务流程图,以便更好地让各部门之间理解业务流程和相互关系,旨在促进业务流程的沟通和理解。
BPMN 2.0 只要了解以下 三个基本建模元素,就能掌握BPMN2.0的核心。
一、基本概念介绍
1. 事件 (Event)
三种主要类型的事件:
1. 开始 - 表示一个流程的开始。
2. 中间 - 发生的开始和结束事件之间,影响处理的流程。
3. 结束 - 表示该过程结束。
注意:如果您添加一个信封的图标给上述任何某个事件,那你将触发一个消息事件。即可以是由一个消息的到达而启动一个进程,也可以是在中间的某个位置与中间事件中发送一个消息(或捕获消息),或者可以在一个过程结束时发送的消息。
2. 活动 (Activity)
活动是工作或任务的一个通用术语。首先,一个活动可以是一个任务,或者它可以是一个当前流程的子处理流程; 其次,你还可以指定不同类型的活动。
例如,任务可以是需要人工完成的任务,也可以自动完成的任务,比如由脚本完成的任务,或服务任务(交由web服务器处理的指令)。
3. 网关 (Gateway)
网关用来处理决策,有两种常用网关需要了解:
• 排他网关 (x) ——只有一条路径会被选择。
流程执行到该网关时,按照输出流的顺序逐个计算,当条件的计算结果为true时,继续执行当前网关的输出流;
如果多条线路计算结果都是 true,则会执行第一个值为 true 的线路。如果所有网关计算结果没有true,则引擎会抛出异常。
排他网关需要和条件顺序流结合使用,default 属性指定默认顺序流,当所有的条件不满足时会执行默认顺序流。
• 并行网关 (+) ——所有路径会被同时选择。
拆分 —— 并行执行所有输出顺序流,为每一条顺序流创建一个并行执行线路。
合并 —— 所有从并行网关拆分并执行完成的线路均在此等候,直到所有的线路都执行完成才继续向下执行。
• 包容网关 (+) —— 可以同时执行多条线路,也可以在网关上设置条件
拆分 —— 计算每条线路上的表达式,当表达式计算结果为true时,创建一个并行线路并继续执行
合并 —— 所有从并行网关拆分并执行完成的线路均在此等候,直到所有的线路都执行完成才继续向下执行。
• 事件网关 (+) —— 专门为中间捕获事件设置的,允许设置多个输出流指向多个不同的中间捕获事件。当流程执行到事件网关后,流程处于等待状态,需要等待抛出事件才能将等待状态转换为活动状态。
4、子流程和调用活动
子流程是嵌入在主流程中,可以被主流程或其他流程通过ID调用,即不用重复画出子流程的细节;
子流程的限制:
1)只能且仅能包含一个空启动事件
2)至少要有一个结束事件
3)子流程中顺序流不能直接设置输出流到子流程之外的活动上,如果需要可以通过边界事件代替。
5、描述性建模符号
泳道(Pool):代表流程中的参与者,用来对活动进行组织和分类;
泳池 (Lane):泳道里的一个子划分;
信息流(message flow):虚线表示;
数据对象和仓库;
文本注释;
总结
下图就是本文所介绍的最常用的BPMN符号了。掌握了这些,就可以理解或者设计出大部分的工作流程和业务流程图了。
BPMN2.0为所有业务元素定义了标准的符号,不同的符号代表不同的含义,以OA应用中请假流程为例,使用标准的BPMN2.0图元定义示意如图:
在上述的流程示意图中,所涉及到的执行语义图元主要有8类:
除了上述标准的BPMN2.0图元外,上述流程图还使用了泳道(业务部门、人力资源部、考勤系统),分别表示流程活动所涉及到的部门或角色。