关于BPMN 2.0中的事务块和补偿

原创 2011年01月18日 16:10:00

最近在帮助公司研发新一代BPM产品的过程中,全面引入了BPMN 2.0标准,今天将BPMN 2.0中比较激动人心的事务块概念根据自己的理解介绍一二,与大家一起共勉!

1.与事务块相关的BPMN标准图元

  • Transaction:即事务子流程(通常称之为事务块,下同),在BPMN 2.0中,使用双细实线的矩形来表示一个事务块。

image

  • Cancel End Event:取消结束事件,会引发一个事务块内的取消(Cancellation)

image

  • Cancel Intermediate Event:取消中间事件,捕获从事务块内抛出的取消

image

  • Error Intermediate Event:错误中间事件,捕获事务块中抛出的错误或未处理的未知错误

image  

  • Compensation:补偿中间事件,当事务块内引发Cancellation事件时,已完成的活动会执行本活动上绑定的补偿中间事件及其后继流程片断

image

2.事务块的作用:

      结合BPM在业界的应用,事务块(Transaction)旨在将一组具有一定业务关系或为同一个业务目标服务的活动看作一个事务逻辑单元,这个逻辑单元完全结束才能满足或达到业务目标,如果其中任何一个失败就必须全部撤回(补偿),如下例是一个在网上订购机票和酒店的例子:

image 当用户发出一个网上订购机票和酒店的请求后,后台流程会将请求及相关表单信息传递给事务块处理,事务块会像一个子流程一样启动,并同时调用订机票和订酒店的两个活动,这两个活动会像第三方(大家可以想像一下携程的业务)发出订购请求,其中任何一个环节出现问题后,事务块将触发Cancellation事件(一个Cancellation事件可能会被两种方式触发:API或流程本身),事务块抛出该事件,并由boundary在其上的Cancel Intermediate Event捕获,并触发其块内两个活动上Boundary的补偿动作,从而取消机票或酒店的订单动作。当然一个事务块中也可能出现其它的一些未被有效处理的错误,这些错误也可经由Error intermediate Event捕获,从而进行这些错误出现后的例外处理,如转人工客服。

 

 

 

下面是BPMN对运行期的事务块的三种执行过程及结果的定义

  • 成功完成:事务块内的子流程以正常的顺序(Sequence Flow)流向执行并结束
  • 失败完成:当一个事务块内的流程因被取消(is cancelled)时,事务块内将执行回滚并补偿已被指定了补偿动作的哪些活动,然后跳转至一个被绑定在事务块上的取消中间事件,然后执行取消中间事件后续的流程片断。注意:

•只有Cancel End Event和Cancel Message是引起事务块流程取消的仅有的两种机制

•其它任何机制引起的事务块内活动的中断,不会引发事务块的取消动作

•一个事务块仅能绑定一个Cancel Intermediate Event

•Cancel End Event仅能使用在事务块中

  • 异常中止(Hazard):指事务块因为若干以正常结束或取消方式结束之外的方式结束,或因系统严重错误引发的事务块被中止的方式结束。当这些情况发生时,事务块将被中止,并跳转至Error Intermediate Event上,执行其后续的流程片断。
  • 关于事务块在流程引擎的实现及其模型定义,大家可以参考规范中的Schema章节。

BPMN 2.0规范详解

业务流程模型注解(Business Process Modeling Notation - BPMN)是 业务流程模型的一种标准图形注解。这个标准 是由对象管理组(Object Management ...
  • a123demi
  • a123demi
  • 2016年02月16日 13:02
  • 21653

BPMN 2.0规范详解

第 3 章 BPMN 2.0 业务流程模型注解(Business Process Modeling Notation - BPMN)是 业务流程模型的一种标准图形注解。...
  • iwillbeaceo
  • iwillbeaceo
  • 2017年07月05日 11:52
  • 1265

特别响、非常近——BPMN2新规范与Activiti5

转自:http://www.infoq.com/cn/articles/bpmn2-activiti5 上世纪九十年代以后,随着WfMC联盟的成立,BPM市场群雄逐鹿如火如荼,工作流技术得到了突飞猛...
  • scorpio3k
  • scorpio3k
  • 2012年05月02日 15:42
  • 33600

BPMN2.0正式规范

  • 2011年03月29日 13:05
  • 6.78MB
  • 下载

BPMN2.0标准规范

  • 2012年11月15日 14:40
  • 6.78MB
  • 下载

BPMN 2.0 - 业务过程模型和符号(中文版)

  • 2014年05月09日 09:51
  • 296KB
  • 下载

BPMN 2.0 规范 PDF

  • 2011年02月09日 11:23
  • 7.27MB
  • 下载

BPMN2.0规范及iactiviti

学习activiti不能避免的要了解BPMN2.0规范。      BPMN2.0规范全称business process model and notation(BPMN),是由OMG组织制定和...
  • dengtaowei
  • dengtaowei
  • 2015年09月12日 22:06
  • 1615

Activiti学习——BPMN2.0规范说明

Activiti BPMN2.0规范说明
  • flygoa
  • flygoa
  • 2016年07月13日 10:28
  • 4277

BPMN2.0标准规范

  • 2015年08月02日 00:17
  • 6.78MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于BPMN 2.0中的事务块和补偿
举报原因:
原因补充:

(最多只允许输入30个字)