接《流程回退》篇,是通过修改流程实例API实现的,这不太“流程”
此篇,通过更加符合“流程”的方式,实现流程回退
在“节点2”中,配置了边界信号事件,说明允许在这个节点,回退到“节点1”
public void withdraw() {
// 找到对应的Task
Task task = taskService.createTaskQuery()
.taskId("6294bdc5-d0f6-11ec-b609-822f69271b40")
.singleResult();
// 给Task对应的Execution发送信号事件
runtimeService.createSignalEvent("Signal-Withdraw")
.executionId(task.getExecutionId())
.send();
}
找到Task,给Task对应的Execution发送信号事件
发起演示流程,3个用户完成节点1的操作,停留在节点2上
执行代码后,查看流程情况
其中一个流程,退回到“节点1”,其他流程尚停留在“节点2”