2014-04-24 7 views

답변

10

는 다음과 같은 코드를 사용하여 프로세스의 실행중인 모든 프로세스 인스턴스를 조회 할 수 있습니다

package org.camunda.bpm; 

import org.camunda.bpm.engine.ProcessEngine; 
import org.camunda.bpm.engine.RepositoryService; 
import org.camunda.bpm.engine.RuntimeService; 
import org.camunda.bpm.engine.repository.ProcessDefinition; 
import org.camunda.bpm.engine.runtime.ProcessInstance; 
import java.util.List; 

public class AllRunningProcessInstances { 

    public List<ProcessInstance> getAllRunningProcessInstances(String processDefinitionName) { 
    // get process engine and services 
    ProcessEngine processEngine = BpmPlatform.getDefaultProcessEngine(); 
    RuntimeService runtimeService = processEngine.getRuntimeService(); 
    RepositoryService repositoryService = processEngine.getRepositoryService(); 

    // query for latest process definition with given name 
    ProcessDefinition myProcessDefinition = 
     repositoryService.createProcessDefinitionQuery() 
      .processDefinitionName(processDefinitionName) 
      .latestVersion() 
      .singleResult(); 

    // list all running/unsuspended instances of the process 
    List<ProcessInstance> processInstances = 
     runtimeService.createProcessInstanceQuery() 
      .processDefinitionId(myProcessDefinition.getId()) 
      .active() // we only want the unsuspended process instances 
      .list(); 

    return processInstances; 
    } 

} 

당신도 일시 중단 된 프로세스 인스턴스를 포함 할 경우, 단지 .active는() 라인을 삭제합니다.

+0

쿼리에 소유자 createria를 추가하는 것은 가능합니다 .owner ("kermit"); 또는 다른 방법으로? – ismail