Camunda:如何在没有说明的情况下重新启动进程



我想创建一个函数来重新启动任何进程,而无需从启动事件引用进程键。守则如下:

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();

相关内容

最新更新