Flowable-边界事件-补偿边界事件

news2024/10/7 6:44:53

目录

      • 定义
      • 图形标记
      • XML内容
      • 使用示例
      • 演示demo

定义

补偿边界事件可以为所依附的节点附加补偿处理器,通过关联连接到补偿处理器(compensation
handler)。补偿边界事件会在流程活动完成后根据情况(事务取消或者补偿中间事件触发)而触发,
当补偿边界事件触发时,执行它连接的补偿处理器。

补偿边界事件必须直接引用一个相关的补偿处理器。如果要使用一个活动补偿另一个活动的影
响,可以将其声明为补偿处理器(compensation handler)。补偿执行是通过活动附加的补偿边界事
件所关联的补偿处理器的 execution 来完成的。

图形标记

补偿边界事件显示为了一个普通的中间事件(内部有小圈的圆),里面有补偿图标。补偿图标
是白色的(无填充),表明是捕获语义。取消边界事件图标如下图所示,图中还显示了使用无
方向的关联,为边界事件设置补偿处理器:

在这里插入图片描述

XML内容

补偿边界事件的 XML 内容是普通边界事件的声明,包含一个 compensateEventDefinition 子元
素:

 <process id="compensateBoundaryEventProcess">
    <userTask id="usertask1" name="审批"></userTask>
    <!-- 定义边界补偿-->
     <boundaryEvent id="compensateBoundaryEvent1" name="Compensate" 
    attachedToRef="usertask1"> 
     <compensateEventDefinition>
     </boundaryEvent>
    <!--  定义补偿处理器 -->
     <serviceTask id="serviceTask1" name="CompensationHandler" isForCompensation="true"
    flowable:class="**.**.**.****"></serviceTask>
    <!-- 定义关联 -->
     <association id="association1" sourceRef="compensateBoundaryEvent1" 
    targetRef="serviceTask1" associationDirection="None"/>
 </process>

注意,附加的补偿事件通过关联连接到补偿处理器,而不是通过序列流连接到补偿处理器。

使用示例

补偿边界事件与其它边界事件的行为策略不同,其它边界事件(比如信号边界事件)在其附加
活动到达时即被激活,当活动结束时,它也结束了,并且对应的事件订阅也会被取消。而补偿边界
事件与它们不同,补偿边界事件在附加活动成功完成后才激活,并创建相应的边界事件订阅。当补
偿边界事件触发或对应流程实例结束时,事件订阅才会删除。

在 Flowable 中,当执行流到达附加边界事件的活动时,会往 ACT_RU_EVENT_SUBSCR 表入事
件描述数据,边界事件所依附的活动完成后,这些事件描述数据会被删除,但是补偿边界事件所产
生的事件描述数据不会被删除(直到流程实例结束),因为即使活动完成后,这些补偿事件都有可
能被触发。

1、补偿边界事件使用时遵循以下规则:

  • 当补偿被触发时,所有已成功完成的活动上附加的补偿边界事件对应的补偿处理器将被调
    用,如果补偿边界事件依附活动尚未产生历史任务,则不会被触发。
  • 附有补偿边界事件的活动完成若干次,那么当补偿边界事件触发后,这些补偿边界事件的执
    行次数与活动的完成次数相等。
  • 如果补偿边界事件依附在到多实例节点,则会为每个实例创建补偿事件订阅,补偿被触发的
    次数与依附节点的循环多例任务的成功完成次数相等。
  • 如果补偿边界事件依附的节点中包含循环,则每次执行活动时都会创建一个补偿事件订阅。
  • 如果流程实例结束,订阅的补偿事件都会结束。
  • 补偿边界事件不支持依附在内嵌子流程中。

2、补偿边界事件关联的补偿处理器需要注意以下几点:

  • 补偿处理器不得有入口或出口顺序流。
  • 补偿处理器必须通过单向的关联,连接到一个补偿边界事件。
  • 要将一个活动声明为补偿处理器,需要将 isForCompensation 属性设置为 true,如。
    ⑷补偿处理器不在正常流程中执行,而只在流程抛出补偿事件时才会执行。

::: warning 注意
1、事务子流程被取消时,导致依附在事务子流程中的活动上的补偿边界事件触发。这种方式的示例请查看子流程中的事务子流程部分。
2、使用补偿中间事件来触发,导致补偿边界事件触发。这种方式的示例请查看本章补偿中间事件部分。
:::

演示demo

补偿边界事件

本文中内容和案例出自贺波老师的书《深入Activiti流程引擎:核心原理与高阶实战》,书中的介绍更全面、详细,推荐给大家。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/870930.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WAVE SUMMIT2023六大分会场同步开启,飞桨+文心大模型加速区域产业智能化!

由深度学习技术及应用国家工程研究中心主办、百度飞桨和文心大模型承办的WAVE SUMMIT深度学习开发者大会2023将于8月16日重磅来袭&#xff01;届时上海、广州、深圳、成都、南昌和宁波六大分会场将同步开启&#xff01; 分会汇聚区域产业大咖、科研机构专家、知名学者和技术大牛…

股票量化分析工具QTYX使用攻略——盘口异动实时监测(更新2.6.8)

QTYX简介‍‍‍ 股票量化交易系统QTYX是一个即可以用于学习&#xff0c;也可以用于实战炒股分析的系统。 分享QTYX系统目的是提供给大家一个搭建量化系统的模版&#xff0c;最终帮助大家搭建属于自己的系统。因此我们提供源码&#xff0c;可以根据自己的风格二次开发。 关于QTY…

研究机构:PayPal稳定币PYUSD有望成为「数字资产」的重要用例

作者&#xff1a;Greg Cipolaro&#xff0c;NYDIG 全球研究主管 编译&#xff1a;WEEX 唯客 本文主要探讨两个话题&#xff1a;1. 过去两周&#xff0c;Crypto ETF 的申请数量激增&#xff0c;它们的审核流程是怎样的&#xff1f;2. 金融科技巨头 PayPal 已推出自己的稳定币 PY…

零代码编程:用ChatGPT对Excel文件批量重命名

文件夹下面有几百个Excel文件&#xff0c;希望去掉开头的“【企查查】专利-”&#xff0c;去掉结尾的电话&#xff0c;然后在后面统一加上“发明专利列表”这几个字。 可以在ChatGPT中这样输入提示词&#xff1a; 你是一个Python编程专家&#xff0c;要完成一个文件标题重命名…

UnrealEngine - 网络同步之连接篇

1 连接过程 - 握手 传统的 C/S 架构下&#xff0c;Client 和 Server 通常会建立一条抽象的 Connection&#xff0c;用来进行两端的通信。 UE 的官方文档中提供了 Client 连接到 Server 的示例 &#xff0c;简单来说分为如下几步&#xff1a; 打包构建好 Client 和 Server 进程…

windows server 2016 搭建使用 svn 服务器教程

参考教程&#xff1a; https://zhuanlan.zhihu.com/p/428552058 https://blog.csdn.net/weixin_33897722/article/details/85602029 配置环境 windows server 2016 远程服务器公网 ip 安装 SVN 服务端 下载 svn 服务端安装包&#xff1a;https://www.visualsvn.com/download…

如何加密7z压缩包?忘记密码怎么办?

7z压缩包如何设置加密&#xff1f;加密的7z压缩包又如何解密呢&#xff1f;分享7-zip加密、解密教程。 7-zip加密 右键文件选择7-zip打开压缩软件进行压缩或者在打开7-zip软件找到需要压缩的文件&#xff0c;点击添加&#xff0c;开始压缩文件 在压缩文件设置界面&#xff0…

【Bert101】变压器模型背后的复杂数学【03/4】

一、说明 在上一篇文章中&#xff0c;我们详细介绍了变压器模型的编码器块的工作原理。如果您还没有读过那篇文章&#xff0c;我建议您在开始这篇文章之前先阅读它&#xff0c;因为本文中介绍了其中涵盖的概念。您可以前往&#xff1a; 【Bert101】变压器模型背后的复杂数学【…

【图像分类】 理论篇(1) 图像分类的测评指标

对于分类模型的性能评估通常采用混淆矩阵的方式和计算准确率、正确率、召回率和 F1 分数。本文详细介绍图像分类的测评指标 在二分类问题中&#xff0c;样本有正负两个类别&#xff0c;模型对样本的预测结果存在四种组合&#xff1a;真阳性&#xff0c;即预测为正&#x…

无涯教程-Perl - qx函数

描述 此功能是使用反引号执行系统命令的替代方法。例如,qx(ls -l)将使用-l命令行options执行UNIX ls命令。实际上,您可以使用任何一组定界符,而不仅仅是括号。 语法 以下是此函数的简单语法- qx EXPR返回值 该函数从执行的系统命令中返回值。 例 以下是显示其基本用法的…

FPGA实践 ——Verilog基本实验步骤演示

0x00 回顾&#xff1a;AND/OR/NOT 逻辑的特性 AND&#xff1a;与门可以具有两个或更多的输入&#xff0c;并返回一个输出。当所有输入值都为 1 时&#xff0c;输出值为 1。如果输入值中有任何一个为 0&#xff0c;则输出值为 0。 OR&#xff1a;或门可以具有两个或更多的输入…

微信小程序页面交互

目录 案例&#xff1a;登陆——>跳转到个人中心&#xff08;并展示个人信息&#xff09; 登陆流程 一、前端页面标签 二、收集前端页面数据 三、前端验证账号密码是否合规 四、根据账号密码向后端发送请求 1.请求工具 2.请求调用 3.根据回调得到的状态进行处理 五.成…

第一章:计算机与编程导论

1.1引言 如何解决问题&#xff1a;通过一组精确陈述的指令来设计问题的解决方案。 程序&#xff1a;一组指令以计算机可以接收和执行的格式描述时。 例如&#xff1a;百货商店管理&#xff0c;编写一套指令&#xff0c;在商品购进和售出时对其跟踪。如果这些指令是正确的&…

某行业CTF一道流量分析题

今晚看了一道题&#xff0c;记录学习下。 给了一个hacktrace.pcapng&#xff0c;分析主要内容如下&#xff1a; 上传两个文件&#xff0c;一个mouse.m2s&#xff0c;一个mimi.zip&#xff0c;将其导出。 mimi.zip中存放着secret.zip和key.pcapng 不过解压需要密码&#xff…

FLStudio21水果最新中文版升级下载

FLStudio21最新中文版是一款非常专业的后期编曲音频处理软件&#xff0c;对于音乐编辑处理的领域内的人而言&#xff0c;是非常能够满足需求的一款工具。FL Studio21拥有强大且专业的创作工具&#xff0c;这是先进的创作工具&#xff0c;让你的音乐突破想象力的限制。FL Studio…

Redis缓存雪崩、击穿、穿透?

我们谈谈Redis在实际项目中用作缓存时经常碰到的&#xff0c;也是经常面试的三大问题&#xff1a;缓存穿透、缓存击穿、缓存雪崩&#xff0c;以及这些问题的常用解决方法。 在介绍这三大问题之前&#xff0c;我们需要先了解Redis作为一个缓存中间件&#xff0c;在项目中是如何…

阿里云服务器竞价实例是什么意思?优缺点对比_选择攻略

腾讯云服务器CVM计费模式分为包年包月、按量计费和竞价实例&#xff0c;什么是竞价实例&#xff1f;竞价实例和按量付费相类似&#xff0c;优势是价格更划算&#xff0c;缺点是云服务器实例有被自动释放风险&#xff0c;腾讯云服务器网来详细说下什么是竞价实例&#xff1f;以及…

【动态map】牛客挑战赛67 B

登录—专业IT笔试面试备考平台_牛客网 题意&#xff1a; 思路&#xff1a; 考虑动态的map 可以先定义一个状态&#xff0c;然后用map统计前缀这个状态的出现次数 在这里&#xff0c;定义{a,b}为cnt1 - cnt0和cnt2 - cnt0 当cnt0 和 cnt1都和cnt2相同时&#xff0c;统计贡献…

人机交互中的混合多重反馈

人机交互中态、势、感、知的混合多重反馈是指在交互过程中综合运用不同方面的反馈信息&#xff0c;包括用户态度&#xff08;态&#xff09;、行为动势&#xff08;势&#xff09;、情感体验&#xff08;感&#xff09;和认知反馈&#xff08;知&#xff09;。这种多重反馈可以…

《机器学习系统:设计与实现》读书笔记一

最近几年一直在做算法工程的工作&#xff0c;对机器学习系统有所涉猎&#xff0c;也很感兴趣。近期发现一本开源书籍《机器学习系统&#xff1a;设计与实现》。去图书馆找了它的纸质版&#xff0c;发现内容不尽相同。在这里结合两者做一个读书笔记。本文是第一篇&#xff0c;主…