Как запросить готовые экземпляры определения процесса?

Предоставляет ли механизм camunda API для запроса всех завершенных экземпляров процесса?


person mschoe    schedule 24.04.2014    source источник


Ответы (1)


Вы можете получить все завершенные экземпляры процесса, используя следующий код:

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;
  }

}
person Hawky4s    schedule 24.04.2014