相关流程如下:
主要思路是:干掉当前节点运行时的任务,直接让流程走到目标节点。但activity6.0版本扔掉了原来的pvm,直接针对bpmn进行处理,所以不能使用原来的ActivityImpl类对活动进行操作,而是用FlowNode类直接操作bpmn文件。
下面以业务内的【撤回】功能为例:
流程图:
在该流程图中,业务要求任务进行到过程1、过程2时,均支持【用户撤回】操作,然后受理件袋直接被受理部门收件,即要求处理后的任务直接跳转到“受理部门收件”节点。
测试类:
代码前景:选择了一个正在执行的任务,传来了taskId.
@Test
public void cancel(){
String taskId ="390005";
//获取仓库服务
RepositoryService repositoryService = processEngine.getRepositoryService();
//获取任务服务
TaskService taskService = processEngine.getTaskService();
//获取历史服务
HistoryService historyService = processEngine.getHistoryService();
ManagementService managementService = processEngine.getManagementService();
//获取当前任务对象