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工作流过程中,发现一款好的流程设计器将会更好的方便的设计好流程(主要 ...
随机推荐
- POJ 1411
#include<iostream> #include<stdio.h> #include<math.h> #define MAXN 50000 using nam ...
- (转)两分钟彻底让你明白Android Activity生命周期(图文)!
转自: http://blog.csdn.net/android_tutor/article/details/5772285 大家好,今天给大家详解一下Android中Activity的生命周期,我在 ...
- lintcode:背包问题
背包问题 在n个物品中挑选若干物品装入背包,最多能装多满?假设背包的大小为m,每个物品的大小为A[i] 样例 如果有4个物品[2, 3, 5, 7] 如果背包的大小为,可以选择的空间. 如果背包的大小 ...
- java多线程浅谈
当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 分这几种情况: 1.其他方法前是否加了synchronized关键字,如果没加,则能. 2 ...
- el中保留字empty与null的区别
先看例子: <%@page pageEncoding="utf-8" %><BR>name:${param.name }<br /> empty ...
- vi / vim 删除以及翻页 其它命令
vim中翻页的命令 vim中翻页的命令 整页翻页 ctrl-f ctrl-b f就是forword b就是backward 翻半页 ctrl-d ctlr-u d=down u=up 滚一行 ctrl ...
- Ibm-jQuery教程学习笔记
一.概述 1.虽然 jQuery 本身并非一门新的语言.但是,学习其语法有助于我们熟练.灵活地使用它.回顾下我们熟悉的 CSS 语法,不难发现 jQuery 的语法与 CSS 有相似之处. jQuer ...
- QT+VS编译器处理字符串时的坑真是多
以下因素都有影响:1. QT4与QT5对字符串编码的处理不同(最好不要在源代码里直接写中文,坑更多)2. QTextCodec自动对编码转换的影响3. 源代码文件对编码存储格式的不同会影响编译器对字符 ...
- Hibernate笔记——表的的4种继承关系
原文:http://justsee.iteye.com/blog/1070588 ===================================== 一.继承关系_整个继承树映射到一张表 对象 ...
- Hibernate笔记——(ONE TO ONE)一对一
转自:http://ryxxlong.iteye.com/blog/622652 ================= 一对一(one-to-one)实例(Person-IdCard) 一对一的关系在数 ...