BPMN这点事-BPMN扩展元素
什么是BPMN扩展元素?我们为什么要从BPMN元素中界定出一个扩展元素的子集?BPMN扩展元素是我们平时使用频率不高的BPMN元素,这些元素更多的面向开发人员而不是业务人员,它们强调流程执行的细节,例如对事件子流程和事务性子流程的定义和对更多具有具体执行语义事件类型的定义。BPMN扩展元素使BPMN变得复杂,它关注流程的执行层面。对于BPMN扩展元素,我们的观点是大概知道它们所表达的语义即可,需要时再查规范。
BPMN扩展元素包括了这些元素,如下图红色部分所示:
- 两种子流程:事件子流程(EventSub-Process)和事务性子流程(Transaction);
- 八种事件:条件事件(ConditionalEvent)、链接事件(Link Event)、多重事件(Multiple Event)、并行多重事件(Parallel Multiple Event)、出错事件(Error Event)、补偿事件(CompensationEvent)、取消事件(Cancel Event)和升级事件(Escalation Event);
- 四种网关:包容性网关(Inclusive)、复杂网关(Complex)、排他事件网关-实例化(ExclusiveEvent-based Gateway-instantiate)和并发事件网关-实例化(Parallel Event-based Gateway-instantiate);
图10‑52BPMN的扩展元素
BPMN扩展元素全部是流对象元素,在下面的小节中,我们将按照活动、事件和网关的顺序展开,同时,在活动里,我们会首先讨论活动的内部循环和多实例行为。
10.3.3.1 活动
内部循环和多实例行为
在实际生活中,我们经常需要重复执行某项任务直至满足一定的条件为止。例如,作为作者,我们需要不断的修改稿子直到编辑认可为止;作为顾客,我们与装修公司的合同里写到:装修不达到要求就不付款。
存在两种类型的循环:一种是类似于程序语言里的“while”,先判断是否满足循环的条件,如果满足才执行,然后再判断循环;一种是类似于程序语言里的“do while”,先执行,然后再判断是否满足循环的条件,如果满足就再循环。活动的内部循环行为实现了工作流控制模式里的结构化循环模式(WCP_21)。
图10‑53活动的循环行为
与活动的内部循环产生一个活动实例重复执行相比,活动的多实例行为会产生多个活动实例,这些活动实例可以并行执行也可以顺序执行。更加复杂的情况请参考工作流控制模式里的多实例模式。
图10‑54活动的多实例行为
子流程
扩展元素里的子流程有两种:事件子流程和事务性子流程。
事件子流程被嵌入到子流程里使用,处理子流程执行过程中发生的事件,我们使用虚线框标识事件子流程,它需要由一个事件触发器触发,根据不同的行为,事件子流程又分为中断和非中断两种,中断事件子流程中断父流程的执行,非中断事件子流程与父流程一同执行,我们使用两种不同的开始事件类型来区分这两种事件子流程的行为:中断事件子流程的开始事件(实线圆圈)与非中断事件子流程的开始事件(单虚线圆圈)。
图10‑54事件子流程
事务性子流程具有ACID属性,它具有三个输出:
- 成功完成(SuccessfulCompletion):事务成功完成,我们使用一个顺序流连接成功后的后续活动;
- 失败完成(Failed Completion):事务执行不成功被取消,事务回滚,所有定义有补偿活动的活动都被补偿,我们使用一个取消捕获事件来连接事务取消后的后续活动;
- 严重异常(Hazard):事务执行过程中系统出现严重的异常,事务无法回滚,活动无法补偿,我们使用一个异常捕获事件来处理这种严重的情况,通常我们会继续抛出异常或者通知上一级流程进行处理。
图10‑56事务性子流程
BPMN这点事-BPMN扩展元素的更多相关文章
- HTML5部分新标签属性及DOM扩展元素
HTML5定义了一系列新元素,如新语义标签.智能表单.多媒体标签等. 我们日常讨论的H5其实是一个泛称,它指的是由HTML5 + CSS3 + Javascript等技术组合而成的一个应用开发平台. ...
- ExcelReport第三篇:扩展元素格式化器
导航 目 录:基于NPOI的报表引擎——ExcelReport 上一篇:ExcelReport源码解析 概述 上篇中已介绍了ExcelRepor的架构,本篇将通过例子讲述如何扩展元素格式化器以满足 ...
- T-SQL——透视PIVOT动态获取待扩展元素集
目录 0.背景说明 1.准备测试数据 2.示例1--利用SELECT循环赋值 3.示例2--使用游标 4.示例3--使用FOR XML PATH() 5. 参考 志铭-2021年10月8日 00:57 ...
- Manifest中meta-data扩展元素数据的配置与获取
简介-meta是什么 在AndroidManifest.xml清单文件中 我们有时会看到如下类似的<meta-data ... >元素开始的配置内容: <meta-data andr ...
- Fixflow引擎解析(四)(模型) - 通过EMF扩展BPMN2.0元素
Fixflow引擎解析(四)(模型) - 通过EMF扩展BPMN2.0元素 Fixflow引擎解析(三)(模型) - 创建EMF模型来读写XML文件 Fixflow引擎解析(二)(模型) - BPMN ...
- BPMN 2.0规范
.1. BPMN 2.0是什么呢? 业务流程模型注解(Business Process Modeling Notation - BPMN)是 业务流程模型的一种标准图形注解.这个标准 是由对象管理组( ...
- 什么是 BPMN ?为什么我们要用 BPMN 和工作流 ?
BPMN 和 Activiti 介绍 工作流介绍 在任何行业和企业中,都有各种各样的流程,例如: 请假流程 报销流程 入职流程 离职流程 出差流程 等等-- 就算你自己没有设计过工作流,那么你每天肯定 ...
- activiti搭建(五)BPMN介绍
转载请注明源地址:http://www.cnblogs.com/lighten/p/5931207.html 对于BPMN我也不是十分清楚,目前也只是因为对于Modeler中不熟悉的组件查询,来对这部 ...
- SpringBoot+Activiti+bpmn.js+Vue.js+Elementui(OA系统审批流)
引言:OA系统用到请假.加班.调休.离职,需要使用工作流进行流程审批 一:activiti流程设计器的选择(通过学习activiti工作流过程中,发现一款好的流程设计器将会更好的方便的设计好流程(主要 ...
随机推荐
- Nginx状态监控
通过配置nginx.conf文件来实现对Nginx状态信息的监控. 1.配置nginx.conf vim /usr/local/nginx/conf/nginx.conf 再server块配置项中添加 ...
- ExtJs之Ext.each
<!DOCTYPE html> <html> <head> <title>ExtJs</title> <meta http-equiv ...
- Xamarin for Visual Studio 破解日志
一.相关声明 本文涉及的 Xamarin 系列软件的版权为 Xamarin Inc. 所有 以本文涉及的思路和方法破解的软件,禁止用于商业用途 如无必要,学习和研究时最好以正版为准 团队或土豪等若觉得 ...
- hdu 4628(状态压缩)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4628 思路:首先把所有的回文找出来,如果当前状态为回文,则dp[state]=1,否则dp[state ...
- Jmeter之Bean shell使用(二)
上一篇Jmeter之Bean shell使用(一)简单介绍了下Jmeter中的Bean shell,本文是对上文的一个补充,主要总结下常用的几种场景和方法,相信这些基本可以涵盖大部分的需求.本节内容如 ...
- lintcode :最近公共祖先
题目 最近公共祖先 给定一棵二叉树,找到两个节点的最近公共父节点(LCA). 最近公共祖先是两个节点的公共的祖先节点且具有最大深度. 样例 对于下面这棵二叉树 4 / \ 3 7 / \ 5 6 LC ...
- 【PSR规范专题(4)】PSR-3 日志接口规范
本文转自:https://github.com/PizzaLiu/PHP-FIG/blob/master/PSR-3-logger-interface-cn.md 本文制定了日志类库的通用接口规范. ...
- mysql新建用户本地无法登录
mysql新建用户本地无法登录 MySQLDebianGoogleAccess 出此是用mysql,因为root权限过高,所以新建一用户appadmin,权限仅为要用到的数据库.创建语句如下:gra ...
- Android 核心分析 之七Service深入分析
Service深入分析 上一章我们分析了Android IPC架构,知道了Android服务构建的一些基本理念和原理,本章我们将深入分析Android的服务.Android体系架构中三种意义上服务: ...
- JavaPersistenceWithHibernate第二版笔记-第五章-Mapping value types-001Mapping basic properties(@Basic、@Access、access="noop"、@Formula、@ColumnTransformer、@Generated、 @ColumnDefaul、@Temporal、@Enumerated)
一.简介 在JPA中,默认所有属性都会persist,属性要属于以下3种情况,Hibernate在启动时会报错 1.java基本类型或包装类 2.有注解 @Embedded 3.有实现java.io. ...