1 Star 1 Fork 2

Flowable_BPMN / demo06

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

环境:

jkd8+

mysql5.6+

一、原理

1、usertask1完成任务,触发边界补偿事件,并注册此事件,同时act_ru_event_subscr表新增一条注册记录。

2、usertask2完成任务,触发边界补偿事件,并注册此事件,同时act_ru_event_subscr表新增一条注册记录。

3、补偿中间事件执行完后,先补偿2,后补偿1。也就是先执行的任务后补偿。

结论:

1、一般流程,先完成的活动,补偿会最后执行。

2、对于一些并行的流程,并且在每一个流程分支中均有需要补偿的流程活动,那么相应的补偿处理者的执行顺序与正常流程一致,先完成的活动,补偿会最后执行,即使这些并行的活动是异步的

二、流程图

  • flowable6.4.0需要手动修改补偿中间事件的xml配置,因为flowable6.4.0没有补偿中间事件的图标
  • flowable6.4.0补偿器上也要修改xml配置,新增isForCompensation="true"属性,flowable6.4.0代码有bug,流程设计器上勾选了,但是导出xml时候,丢失了isForCompensation属性。后续有空修改此bug。

三、配置

  • 补偿器上分别在xml配置文件上,添加isForCompensation="true"属性

  • 补偿中间事件配置

    compensateEventDefinition必须带上,否则不能补偿。这是flowable6.4.0代码有bug。

    <intermediateThrowEvent id="intermediatecompensation" name="补偿中间事件">
    	<compensateEventDefinition />
    </intermediateThrowEvent>

四、实践测试

  • 部署流程

  • 启动流程

  • 分别完成usertask1,usertask2的任务,同时观察act_ru_event_subscr表

  • 当usertask2的任务完成时候,查看日志,发现先补偿2,后补偿1

空文件

简介

补偿事件的执行顺序 展开 收起
Java
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/Flowable_BPMN/demo06.git
git@gitee.com:Flowable_BPMN/demo06.git
Flowable_BPMN
demo06
demo06
master

搜索帮助