在实际的业务使用中,如果对新建的流程做出修改。 但不希望影响正在使用该流程业务。 就需要对流程进行版本控制管理。 在flowable 这个实现很简单。 即每次都是使用最新版本的流程来发起运行实例。
主要看act_re_procdef流程定义表中的version字段即可。
此时如果我们发起一个流程。 例如执行如下代码。 使用的就是版本=3的流程定义。 之前已经启动的流程实例仍然按照之前的定义进行运行。
RuntimeService runtimeService = processEngine.getRuntimeService();
//流程变量
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("employee", employee);
variables.put("nrOfHolidays", nrOfHolidays);
variables.put("description", description);
//根据流程定义的key最新版本进行启动
ProcessInstance processInstance =
runtimeService.startProcessInstanceByKey("my_leave", variables);
查看运行结果。 也证实了这个推断。