Flowable入门系列文章32 - Activity解读 08
Posted 分享牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flowable入门系列文章32 - Activity解读 08相关的知识,希望对你有一定的参考价值。
1、计时器边界事件
描述
定时器边界事件充当秒表和闹钟。当执行到达边界事件附加的活动时,计时器启动。当定时器触发时(例如,在指定的时间间隔之后),活动被中断,顺序流出边界事件。
图形表示法
定时器边界事件可视化为一个典型的边界事件(边界上的圆形),内部有计时器图标。
XML表示
定时器边界事件定义为常规边界事件。在这种情况下,特定类型的子元素是一个timerEventDefinition元素。
<boundaryEvent id="escalationTimer" cancelActivity="true" attachedToRef="firstLineSupport">
<timerEventDefinition>
<timeDuration>PT4H</timeDuration>
</timerEventDefinition>
</boundaryEvent>
有关定时器配置的详细信息,请参阅定时器事件定义。
在图形表示中,如上例所示,圆的线条为点状:
一个典型的用例是在一段时间后发送升级电子邮件,但不会影响正常的流程。
中断和不中断计时器事件之间有一个关键的区别。不中断意味着原始活动不会中断,而是保持原样。中断行为是默认行为。在XML表示中,cancelActivity属性设置为false:
<boundaryEvent id="escalationTimer" cancelActivity="false" attachedToRef="firstLineSupport"/>
注意:启用作业或异步执行时边界计时器事件仅燃煤(jobExecutorActivate或asyncExecutorActivate需要被设置为true在
flowable.cfg.xml,因为工作和异步执行默认情况下禁用)。
已知的边界事件问题
在使用任何类型的边界事件时,有一个关于并发性的已知问题。目前,不可能将多个外发序列流附加到边界事件。解决这个问题的方法是使用一个去往并行网关的流出序列流。
2、错误边界事件
描述
活动边界上的中间捕获错误或简称为边界错误事件,会捕获在其所定义的活动范围内抛出的错误。
定义边界错误事件对嵌入式子流程或调用活动最有意义,因为子流程会为子流程内的所有活动创建一个范围。错误结束事件引发错误。这样的错误会向上传播其父作用域,直到找到一个与错误事件定义匹配的边界错误事件被定义的作用域。
当捕获到错误事件时,定义边界事件的活动将被销毁,同时也会销毁(并发活动,嵌套子进程等等)内的所有当前执行。在边界事件的流出顺序流程之后,流程继续执行。
图形表示法
边界错误事件可视化为边界上典型的中间事件(内部具有较小圆圈的圆),并在内部显示错误图标。错误图标是白色的,表示它的catch语义。
XML表示
边界错误事件被定义为典型的边界事件:
<boundaryEvent id="catchError" attachedToRef="mySubProcess">
<errorEventDefinition errorRef="myError"/>
</boundaryEvent>
与错误结束事件一样,errorRef引用在process元素之外定义的错误:
<error id="myError" errorCode="123" />
...
<process id="myProcess">
...
该的errorCode用来匹配被发现的错误:
- 如果errorRef被省略,边界错误事件将捕获任何错误事件,而不管的的errorCode的错误。
- 如果提供了errorRef并且引用了现有的错误,则边界事件将只捕获具有相同错误代码的错误。
- 如果提供了errorRef,但在BPMN 2.0文件中没有定义错误,那么errorRef被用作errorCode(类似于错误结束事件)。
例
以下示例过程显示了如何使用错误结束事件。当“审核盈利能力”用户任务完成时,如果提供的信息不足,则会引发错误。当在子流程的边界上发现该错误时,“审核销售主管”子流程中的所有活动活动都将被销毁(即使“审核客户评级”尚未完成),以及“提供其他详细信息’用户任务被创建。
此过程作为演示设置中的示例发货。流程XML和单元测试可以在org.flowable.examples.bpmn.event.error包中找到。
上面文章来自盘古BPM研究院:http://vue.pangubpm.com/
文章翻译提交:https://github.com/qiudaoke/flowable-userguide
了解更多文章可以关注微信公众号:
以上是关于Flowable入门系列文章32 - Activity解读 08的主要内容,如果未能解决你的问题,请参考以下文章
Flowable入门系列文章20 - 基本的Flowable概念一
Flowable入门系列文章80 - Flowable Designer部署功能