2014-04-24 8 views
6

क्या कैमंडा इंजन एक निश्चित प्रक्रिया के सभी चल रहे उदाहरणों को पूछने के लिए एक एपीआई प्रदान करता है? क्या इस क्वेरी में निलंबित उदाहरण भी शामिल हैं?प्रक्रिया परिभाषा के चल रहे उदाहरणों को कैसे क्वेरी करें?

उत्तर

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

क्या क्वेरी निर्माता को जोड़ना संभव है .owner ("kermit") की तरह हो सकता है; या किसी अन्य तरीके से? – ismail

संबंधित मुद्दे