之前有人问我,如果我发起了一个流程我需要撤回怎么办呢?
我们需要思考,什么情况下允许撤回,什么情况下不允许撤回,其实这个问题还是根据你们的业务来,不过大部分业务都是在流程状态为终结状态前撤回,结束状态以后就不允许撤回了,所以我们需要根据不同的条件做出不同的操作
撤回操作方法:
runtimeService.deleteProcessInstance(pid,"撤回或撤销原因")
这个操作是属于runtimeService,所以属于中间状态才能操作,其内部实现原理,先结束掉当前任务节点,并更新history表的delete_reason,以及流程的状态为完成状态
这个时候流程上的基本已经被撤回了,剩下的就属于业务上的操作了,该状态回退的回退,该记录的记录
注意:子流程的撤回我并未试过,但是我记得子流程的流程实例也就是PID和主流程的一致,而这个方法穿的参数为pid,则说明子流程应该也是可以的,有兴趣的老哥可以尝试一下