一:启动事件
定义消息。
引用消息。
<startEvent id="msgStart" name="消息启动事件" isInterrupting="true">
<messageEventDefinition messageRef="myMsgStart"></messageEventDefinition>
</startEvent>
@Test
void startMessageProcess() {
Deployment deploy = repositoryService.createDeployment()
.addClasspathResource("processes/MsgStartEventProcess.bpmn20.xml")
.name("消息启动流程")
.deploy();
// 注意:这里是根据messageName启动的而不是根据messageId
ProcessInstance processInstance = runtimeService.startProcessInstanceByMessage("我的第一个消息启动事件");
System.out.println(processInstance.getId());
}
二:中间事件
中间消息也是用于延迟到下一节点的审批时机,即当触发某个条件时才会继续走到下一个节点。
@Test
void nextActivitiy() {
// 触发中间消息捕获事件,进入下一节点
runtimeService.messageEventReceived("中间消息", "50");
}
三:边界消息
边界消息:当消息到达时如果节点还没有审批,那么节点就流转到边界消息事件后面的那个节点处理。
@Test
void nextActivitiy() {
// 如果UserTask1在调用该方法时还没有审批,就流转到UserTask3
runtimeService.messageEventReceived("边界消息", "7553");
}