场景:流程引擎在流程图结构发生变化时会进行流程定义的版本迭代。新启动的流程默认在最新的版本进行流转。已经存在的活跃的流程实例会按照原有版本进行流转。
目的:实现将已经存在的流程实例迁移到最新的版本进行流转。
实现此场景我们需要以下内容:
源流程定义ID、目标流程定义ID、迁移计划、源流程实例ID。
下面开始整活:
1、获取源流程定义ID:
我们在部署一个流程定义时,会返回一个流程部署对象(Deployment)。
当然我们部署流程定义时可能没有存储流程定义ID,这时候我们在启动一个流程实例(ProcessInstance)时,会返回流程实例对象。通过流程实例对象获取流程定义ID。
2、获取目标流程定义ID。
我这里使用的是Definition Key进行获取的。也就是我们绘制流程图时定义的ID
可以通过camunda提供的API进行获取,
3、创建迁移计划。执行迁移操作。
到这里我们流程实例迁移就完成了。