Flowable边界事件-消息边界事件

✨✨✨ 最好用的Flowable流程设计器



消息边界事件


定义

消息边界事件会捕获消息定义引用的相同信息名的信息。当执行到达边界消息事件依附的任务
时(如用户任务、子流程),引擎会创建一个捕获事件,在其依附的任务的生命周期内等待一个抛
出消息,该消息来自消息抛出事件或者 API,被触发后后继路线继续执行。

图形标记

边界消息事件显示成一个普通的中间事件(圆圈里有个小圆圈),位于节点边缘,内部是一个
消息小图标。消息图标是白色(无填充),表示捕获语义,如图所示

在这里插入图片描述

边界消息事件可能是中断(左侧)或非中断(右侧)的。

XML内容

<message id="theMessage" name="newInvoiceMessage" />
<process id="messageBoundaryInterrputingEventProcess">
    <userTask id="usertask1" name=" "></userTask>
    <boundaryEvent id="messageBoundaryInterrputingEvent" name="Timer"
    attachedToRef="usertask1" cancelActivity="false">
        <messageEventDefinition messageRef="theMessage" />
    </boundaryEvent>
<!-- -->
</process>

在以上 xml 代码片段中,加粗的部分分别定义了 message、userTask 和 boundaryEvent,消息
message 的 id 属性值为 theMessage,消息边界事件 boundaryEvent 中的 messageEventDefinition 子元
素通过设置 messageRef 为 theMessage 引用了该信号,同时使用 attachedToRef 属性将其绑定到
userTask 上。cancelActivity 属性用法与定时边界事件相同。
这里是将消息边界事件附加在了用户任务节点上,其它流程活动(如子流程等)也可以附加。

使用示例

消息边界事件触发的方式有两种:

  1. 流程中抛出消息事件(Message Intermediate Throwing Event)、消息结束事件(Message EndEvent)发出的内部消息。
  2. 通过 API 触发,在 Flowable 中通过调用 runtimeService.messageEventReceived 系列方法发出一个指定的信号。runtimeService.messageEventReceived 系列方法下表格所示:
API 方法含义
runtimeService.messageEventReceived(String messageName, String executionId)把消息发送给指定执行流
runtimeService.messageEventReceived(String messageName, String executionId, HashMap<String, Object> processVariables)把消息发送给指定执行流,同时给更新流程变量

界面操作

在这里插入图片描述

总结

消息边界事件依然和上面几个边界事件一样,分中断和非中断

欢迎加入QQ群学习交流:582010059

视频地址:

消息边界事件

演示demo

消息边界事件

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小学生05101

flowable

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值