flowable实现流程回退功能

前期项目要求实现流程回退(仅要求回退到上一节点),所使用的flowable版本是 6.2.0-SANPSHOT。在网上收到的流程回退的例子都是activity的,然而activity的很多接口在flowable中都已经取消了。最后参考了 http://blog.csdn.net/qq_30739519/article/details/51248516 http://blog.csdn.net/tanglei6636/article/details/53992066 这2篇文章,感谢。下面记录了一下我的大致实现。
1、自己新写了一个Command,需要实现org.flowable.engine.common.impl.interceptor.Command 接口,覆盖其execute 方法,并增加一个有参构造方法




2、通过flowable的org.flowable.engine.ManagementService,调用自己写的Command,实现回退。
manageMentService.executeCommand(new JumpCmd(flowElement,currentTask,hisTaskEntity));
//第一个参数flowElement是需要跳转到的节点信息,这里因为要求的是回退到上一节点,所以这里只上一节点信息
//第二个参数是值当前任务实体
//第三个参数指需要跳转到的节点的任务实体,这里指上一节点的任务实体

说明:对于无分支的流程,需要回退到上一节点,可以直接利用flowable现有的API,调用方法如下:
runtimeService.createChangeActivityStateBuilder().processInstanceId(processInstanceId).cancelActivityId(currentNode).startActivityId(beforeNode).changeState();