Java 如何查询流程定义的已完成实例?

Java 如何查询流程定义的已完成实例?,java,business-process-management,bpmn,camunda,Java,Business Process Management,Bpmn,Camunda,camunda引擎是否提供API来查询流程的所有已完成实例?您可以使用以下代码获取流程的所有已完成实例: package org.camunda.bpm; import org.camunda.bpm.engine.HistoryService; import org.camunda.bpm.engine.ProcessEngine; import org.camunda.bpm.engine.RepositoryService; import org.camunda.bpm.engine.h

camunda引擎是否提供API来查询流程的所有已完成实例?

您可以使用以下代码获取流程的所有已完成实例:

package org.camunda.bpm;

import org.camunda.bpm.engine.HistoryService;
import org.camunda.bpm.engine.ProcessEngine;
import org.camunda.bpm.engine.RepositoryService;
import org.camunda.bpm.engine.history.HistoricProcessInstance;
import org.camunda.bpm.engine.repository.ProcessDefinition;
import java.util.List;

public class AllFinishedProcessInstances {

  public List<HistoricProcessInstance> getAllFinishedProcessInstances(String processDefinitionName) {
    ProcessEngine processEngine = BpmPlatform.getDefaultProcessEngine();
    HistoryService historyService = processEngine.getHistoryService();;
    RepositoryService repositoryService = processEngine.getRepositoryService();

    ProcessDefinition myProcessDefinition =
        repositoryService.createProcessDefinitionQuery()
            .processDefinitionName(processDefinitionName)
            .latestVersion() // we are only interested in the latest version
            .singleResult();

    List<HistoricProcessInstance> processInstances =
        historyService.createHistoricProcessInstanceQuery()
            .processDefinitionId(myProcessDefinition.getId())
            .finished() // we only want the finished process instances
            .list();

    return processInstances;
  }

}
package org.camunda.bpm;
导入org.camunda.bpm.engine.HistoryService;
导入org.camunda.bpm.engine.ProcessEngine;
导入org.camunda.bpm.engine.RepositoryService;
导入org.camunda.bpm.engine.history.HistoricProcess实例;
导入org.camunda.bpm.engine.repository.ProcessDefinition;
导入java.util.List;
公共类所有已完成的过程安装{
公共列表getAllFinishedProcessInstances(字符串进程定义名称){
ProcessEngine=BpmPlatform.getDefaultProcessEngine();
HistoryService HistoryService=processEngine.getHistoryService();;
RepositoryService RepositoryService=processEngine.getRepositoryService();
ProcessDefinition myProcessDefinition=
repositoryService.createProcessDefinitionQuery()
.processDefinitionName(processDefinitionName)
.latestVersion()//我们只对最新版本感兴趣
.singleResult();
列出进程实例=
CreateHistoryService.createHistoricProcessInstanceQuery()
.processDefinitionId(myProcessDefinition.getId())
.finished()//我们只需要已完成的流程实例
.list();
返回进程实例;
}
}