2014-04-24 12 views

Antwort

10

Sie können alle laufenden Prozessinstanz eines Prozesses abfragen, um den folgenden Code:

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

} 

Wenn Sie auch nur suspendiert Prozessinstanz einschließen möchten, dann löschen Sie einfach den .active() Linie.

+0

ist es möglich, den Eigentümer createria der Abfrage hinzufügen kann wie .owner ("kermit"); oder auf andere Weise? – ismail