我想创建一个函数来重新启动任何进程,而无需从启动事件引用进程键。守则如下:
engine.runtimeService.restartProcessInstances(processDefinitionId)
.processInstanceIds("processInstanceId")
.execute()
运行此代码时出现错误:重新启动指令不能为空。所以我添加了所谓的方法开始后活动
engine.runtimeService.restartProcessInstances(processDefinitionId)
.processInstanceIds("processInstanceId")
.startAfterActivity("StartEvent_Foo")
.execute()
但是现在我应该保证每个进程的启动事件都称为"StartEvent_Foo"。
是否可以在不设置指令的情况下重新启动流程实例?
List<HistoricActivityInstance> activities = historyService.createHistoricActivityInstanceQuery()
.processInstanceId("processInstanceId")
.orderByHistoricActivityInstanceEndTime()
.desc()
.list();
如果该过程已完成/取消。您可以获取流程实例的最新活动,并在以后使用它来获取该活动的 ID。
runtimeService.restartProcessInstances(historicProcessInstance.getProcessDefinitionId())
.startAfterActivity(activities.get(0).getActivityId())
.processInstanceIds(processInstanceId)
.execute();