执行以下代码以重新启动Camunda中的过程。但新流程的案例实例ID为null。获取案例实例ID还需要什么?

List<HistoricTaskInstance> sql = processEngine.getHistoryService().createHistoricTaskInstanceQuery()
                .processInstanceBusinessKey(caseId).orderByTaskName().desc().list();
        HistoricTaskInstance historicTaskInstance = sql.get(0);
        logger.info("{}", historicTaskInstance);
        logger.info("{}", historicTaskInstance.getCaseInstanceId());
        runtimeService.restartProcessInstances(historicTaskInstance.getProcessDefinitionId()).initialSetOfVariables()
                .startBeforeActivity(historicTaskInstance.getTaskDefinitionKey())
                .processInstanceIds(historicTaskInstance.getProcessInstanceId()).execute();

最佳答案

runtimeService仅用于ProcessInstances ...对于CMMN Cases,请使用CaseService ...,但是:您将看到没有重新启动方法...并且由于camunda停止了CMMN Cases的进一步开发,因此可能不会。 ..

我相信您的最佳选择是以某种方式启动新案例,并尝试从前一个实例中提供尽可能多的状态...并且在您提出以下要求之前:我从来没有这样做过,这样做不会有任何帮助。

10-07 23:44