一:启动事件
定义消息。
引用消息。
<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启动的而不是根据messageIdProcessInstance processInstance = runtimeService.startProcessInstanceByMessage("我的第一个消息启动事件");System.out.println(processInstance.getId());
}
二:中间事件
中间消息也是用于延迟到下一节点的审批时机,即当触发某个条件时才会继续走到下一个节点。
@Test
void nextActivitiy() {// 触发中间消息捕获事件,进入下一节点runtimeService.messageEventReceived("中间消息", "50");
}
三:边界消息
边界消息:当消息到达时如果节点还没有审批,那么节点就流转到边界消息事件后面的那个节点处理。
@Test
void nextActivitiy() {// 如果UserTask1在调用该方法时还没有审批,就流转到UserTask3 runtimeService.messageEventReceived("边界消息", "7553");
}