XML中的类型声明来决定的.捕获事件与触发事件在显示方面是根据内部图表是否被填充来区分的(白色)
触发(throwing): 当流程执行到事件,会触发一个事件.触发的类型是由内部图表或XML中的类型声明来决定的...如果消息需要被运行中的流程实例处理:
首先要根据消息找到对应的流程实例
然后触发这个等待中的流程
RuntimeService提供了可以基于消息事件的订阅来触发流程继续执行:
void messageEventReceived....信号可以通过同步和异步方式发布
默认配置下,信号是同步发送的:
抛出事件的流程实例会等到信号发送给所有捕获流程实例才继续执行
捕获流程实例也会在触发流程实例的同一个事务中执行
如果某个监听流程出现了技术问题...:
如果执行补偿的节点是子流程,补偿会作用到子流程中包含的所有节点
如果子流程是内嵌节点,补偿会递归触发
补偿不会传播到流程的上层
如果补偿在子流程中触发,不会传播到子流程范围外
bpmn规范定义,由节点触发的流程只会作用到子流程同一级别..., 如果它已经成功完成了,补偿只会传播到子流程
如果子流程中的节点也完成了,并关联了补偿处理器,如果子流程包含的这些节点还没有完成,就不会执行补偿处理器
这个流程中,我们有两个并发分支,一个分支是内嵌子流程