BPMN2.0规范简介

1 概述

BPMN(Business Process Model & Notation),中文名为业务流程模型与符号。BPMN2.0是OMG(Object Management Group,对象管理组织)制定的,其主要目的是既给用户提供一套简单的、容易理解的机制,以便用户创建流程模型;又能使用户能很好的处理不同流程模型内在的复杂性。

BPMN2.0提供了五种不同的元素,分别是Flow Objects 流对象、Data 数据、Connecting Objects 连接对象、Artifacts 描述对象。

image-20210207094448922.png

图1-1 BPMN2.0元素

五种不同元素中,在保持基本图形相似的前提下,BPMN2.0规范通过适当的改变每个图形元素的外观,增加额外的信息,来生成基本的图形元素的变种,以支持实际业务中的复杂性。

2 元素简介

2.1 流对象

流对象包括事件(Events),活动(Activities),网关(Gateways)。

2.1.1 事件

事件是BPMN2.0执行语义中一个非常重要的概念,是流程运行过程中发生的事情,这些事情的发生会影响到流程的运转。对每个事件而言,一般会包含两个要素,触发事件的原因与事件发生导致的结果。

事件有不同的分类方法,首先先看一张图:

图2-1 事件全览图

按照位置分类: 开始事件(Start)、中间事件(Intermediate)、结束事件(End)。通过事件控制器为系统添加辅助功能,如与其他业务系统集成、活动预警等。

事件的图像符号是圆形。其中空心圆表示开始事件,嵌套的圆表示中间事件,嵌套圆且两圆之间为阴影表示结束事件。如下图所示。

图2-2 事件的一般表示

依据触发方式不同分类:我们可以分为抛出事件(Throw),捕获事件(Catch),抛出事件是流程走到某一步主动发生的事件,捕获事件是流程定义好的触发器被触发的时候,流程就开始执行,捕获事件是被动型。

按照定义分类:分为消息(Message)事件,定时器(Timer)事件,升级(Escalation)事件,条件(Conditional)时间,链接(Link)事件,错误(Error)事件,取消(Cancel)事件,补偿(Compensation)事件,信号(Signal)事件,多重(Multiple)事件,并行(Parallel multiple)多重事件。

按照是否会中断流程运转分类:分为中断(Interrupting)事件和非中断(non-interrupting)事件。中断事件用圆实线表示,非中断事件用圆虚线表示。

图2-3 中断事件与非中断事件

2.1.2 活动

活动是流程中需要执行的任务,一个流程通常由多个活动组成。活动包含任务、子流程、事务、调用活动。

 图2-4 活动全览图

任务是工作的基本单元,是参与者为了完成流程目标而一步一步完成的动作。任务的图标是一个方框,方框左上角不同图标表示不同的任务类型。和事件一样,任务也有多种,包括发送(Send Task)任务,接收(Receive Task)任务,用户(User Task)任务,手工(Manual Task)任务,业务规则(Busniess Rule Task)任务,服务(Service Task)任务。

名称图标描述
服务(Service Task)任务

服务任务被用作调用任务,工作一般由软件自动完成,
发送(Send Task)任务

发送任务用来给外部参与者发送消息
接收(Receive Task)任务

接收任务等待特定的消息到来,在任务启动到该节点的时候停下来等待信号。当任务接收到信号的时候,该流程就会继续往下执行。
用户(User Task)任务

需要人工参与的任务,比如审批需要领导签字确认
手工(Manual Task)任务

定义流程引擎外部的任务,用来对那些需要人来完成的工作进行建模,引擎不需要知道他是系统还是 UI接口。
对引擎而言,手动任务是作为直接通过的活动处理的,流程执行到此会自动继续流程的执行 
业务规则(Busniess Rule Task)任务

业务规则任务用于同步执行一个或更多规则。

                                                         图2-5 任务全览图                                                              

  其他三个活动所用较少,本次暂不做详细介绍。

2.1.3 网关 

网关用于表示流程的分支与合并,分为:

  • 排他网关:只有一条路径会被选择
  • 并行网关:所有路径会被同时选择
  • 包容网关:可以同时执行多条线路,也可以在网关上设置条件
  • 事件网关:专门为中间捕获事件设置的,允许设置多个输出流指向多个不同的中间捕获事件。当流程执行到事件网关后,流程处于等待状态,需要等待抛出事件才能将等待状态转换为活动状态。

图2-6 网关全览图

2.2 数据

数据有四种元素表示,数据对象(Data Objects),数据输入(Data Inputs),数据输出(Data Outputs),数据存储(Data Stores)。

图2-7 数据全览图

2.3 连接对象

流对象彼此互相连接或者连接到其他信息的方法主要有三种。顺序流:用一个带实心箭头的实心线表示,用于指定活动执行的顺序。缺省流:默认流,即所有条件都不满足时,流程从此线出流过,进入下一阶段。条件流:依据线的条件,来判断业务流程是否能由此线流过。

 图2-8 连接对象全览图

2.4 泳道

泳池和泳道,泳池和泳道都表示活动的参与者,即表示过程中活动的执行者,它可以是一个组织、角色或系统。泳池可以划分成多个泳道,泳道具有分层结构。

图2-9 泳道全览图 

3 BPMN画图工具简介

 Camunda是一个工作流引擎,执行Bpmn2.0标准,因此依赖于基于bpmn的流程图(本质上是一个xml文件),下载地址为Download The Camunda BPMN / DMN Process Modeler | Camunda,基于 bpmn.io的面向 BPMN DMN和CMMN的集成建模解决方案,camunda-modeler是一款外部流程设计器,同普通安装软件一样安装完后双击.exe程序即可使用,也可以通过IDEA安装外部Tool使用。具体操作可参考这篇博文。这里给一个截图,以及生成的xml文档。

图3-1  Camunda工作台

对应的xml文档


3}]]>

4 写在最后

本篇博客简单的介绍了一些BPMN2.0的基本概念,只是一个入门级别,BPMN 2.0 -业务过程模型和符号这张图详细介绍了这些基本信息,第二节的图都来自这张图,有兴趣的可以下载后好好研究。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部