1.消息边界事件可以做什么
可以插件式的为流程添加节点,说起来有点抽象我们看例子。
2.如何设置一个消息边界事件
- ①首先在Message definitions中定义消息,如下图:
3.如何使用一个消息边界事件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| @Autowired private RuntimeService runtimeService;
@Autowired private TaskService taskService;
@Autowired private HistoryService historyService;
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("messageEventboundary"); List<Task> tasks = taskService.createTaskQuery().list(); assert tasks.size() == 1; assert "任务1".equals(tasks.get(0).getName());
Execution execution = runtimeService.createExecutionQuery().messageEventSubscriptionName("边界测试").singleResult(); runtimeService.messageEventReceived("边界测试", execution.getId());
List<Task> eventTasks = taskService.createTaskQuery().list(); assert eventTasks.size() == 1; assert "边界事件".equals(eventTasks.get(0).getName());
taskService.complete(eventTasks.get(0).getId());
assert null != historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstance.getProcessInstanceId()).singleResult().getEndTime();
|
关于消息边界事件的使用应该就是这些,感觉并没有吃透flowable的边界事件的用途,接下来的博客会对边界事件的其它形式(异常边界事件,定时边界事件等)做一个跟深入的研究,也欢迎大家留言探讨。