Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Stardust/Knowledge Base/API/JavaAPICookbook/FetchingPIandAIHistoricalEvents"

()
()
Line 7: Line 7:
  
 
<source lang="java">
 
<source lang="java">
                ProcessInstanceFilter filter = new ProcessInstanceFilter(piOID); //Pass in the Process instance OID
+
    ProcessInstanceFilter filter = new ProcessInstanceFilter(piOID); //Pass in the Process instance OID
 
 
          ActivityInstanceQuery query = new ActivityInstanceQuery();
+
    ActivityInstanceQuery query = new ActivityInstanceQuery();
        query.where(filter);
+
    query.where(filter);
query.setPolicy(HistoricalEventPolicy.ALL_EVENTS);
+
    query.setPolicy(HistoricalEventPolicy.ALL_EVENTS);
query.orderBy(ActivityInstanceQuery.START_TIME);
+
    query.orderBy(ActivityInstanceQuery.START_TIME);
 
 
ActivityInstances actInstList = qs.getAllActivityInstances(query);
+
        ActivityInstances actInstList = qs.getAllActivityInstances(query);
 
+
for(ActivityInstance actInst: actInstList){
+
  for(ActivityInstance actInst: actInstList){
ActivityInstanceHistory actHistory  
+
      ActivityInstanceHistory actHistory  
= new ActivityInstanceHistory(actInst.getOID(),  
+
          = new ActivityInstanceHistory(actInst.getOID(),  
          actInst.getActivity().getId(),  
+
    actInst.getActivity().getId(),  
  actInst.getHistoricalEvents());
+
    actInst.getHistoricalEvents());
}
+
  }
 
</source>
 
</source>
  
Line 27: Line 27:
  
 
<source lang="java">
 
<source lang="java">
                ProcessInstanceQuery piQuery = ProcessInstanceQuery.findAlive();
+
    ProcessInstanceQuery piQuery = ProcessInstanceQuery.findAlive();
                piQuery.setPolicy(HistoricalEventPolicy.ALL_EVENTS);
+
    piQuery.setPolicy(HistoricalEventPolicy.ALL_EVENTS);
 
              
 
              
                ProcessInstances pis = qs.getAllProcessInstances(piQuery);
+
    ProcessInstances pis = qs.getAllProcessInstances(piQuery);
 
                          
 
                          
                  for (Iterator iterator = pis.iterator(); iterator.hasNext();) {
+
          for (Iterator iterator = pis.iterator(); iterator.hasNext();) {
                        ProcessInstance pi = (ProcessInstance) iterator.next();
+
              ProcessInstance pi = (ProcessInstance) iterator.next();
 
                         //log.info("PI: " + pi.getOID());
 
                         //log.info("PI: " + pi.getOID());
                        ProcessInstanceDetails details = (ProcessInstanceDetails)pi;
+
              ProcessInstanceDetails details = (ProcessInstanceDetails)pi;
                        List<HistoricalEvent> events = details.getHistoricalEvents();
+
              List<HistoricalEvent> events = details.getHistoricalEvents();
 
                          
 
                          
                        for (HistoricalEvent historicalEvent : events) {
+
                  for (HistoricalEvent historicalEvent : events) {
                            System.out.println("PI:" + pi.getOID() + " Event time:" +  historicalEvent.getEventTime());                                         
+
                      System.out.println("PI:" + pi.getOID() + " Event time:" +  historicalEvent.getEventTime());                                         
                            System.out.println("PI:" + pi.getOID() + " Event type:" + historicalEvent.getEventType());                                         
+
                      System.out.println("PI:" + pi.getOID() + " Event type:" + historicalEvent.getEventType());                                         
                            System.out.println("PI:" + pi.getOID() + " Event details :" + historicalEvent.getDetails());         
+
                      System.out.println("PI:" + pi.getOID() + " Event details :" + historicalEvent.getDetails());         
 
                                      
 
                                      
                        }           
+
                  }           
                       
+
          }
                       
+
                    }
+
 
</source>
 
</source>

Revision as of 01:22, 11 April 2014

Purpose

This article describes how to fetch Process Instance and Activity Instance related Historical Events like Time, Type and Details..etc, based on the defined Historical Event Policy.


Activity Instance Historical Events:

     ProcessInstanceFilter filter = new ProcessInstanceFilter(piOID); //Pass in the Process instance OID
 
     ActivityInstanceQuery query = new ActivityInstanceQuery();
     query.where(filter);
     query.setPolicy(HistoricalEventPolicy.ALL_EVENTS);
     query.orderBy(ActivityInstanceQuery.START_TIME);
 
        ActivityInstances actInstList = qs.getAllActivityInstances(query);
 
	   for(ActivityInstance actInst: actInstList){
	       ActivityInstanceHistory actHistory 
	           = new ActivityInstanceHistory(actInst.getOID(), 
		     actInst.getActivity().getId(), 
		     actInst.getHistoricalEvents());
	   }

Process Instance Historical Events:

     ProcessInstanceQuery piQuery = ProcessInstanceQuery.findAlive();
     piQuery.setPolicy(HistoricalEventPolicy.ALL_EVENTS);
 
     ProcessInstances pis = qs.getAllProcessInstances(piQuery);
 
          for (Iterator iterator = pis.iterator(); iterator.hasNext();) {
               ProcessInstance pi = (ProcessInstance) iterator.next();
                        //log.info("PI: " + pi.getOID());
               ProcessInstanceDetails details = (ProcessInstanceDetails)pi;
               List<HistoricalEvent> events = details.getHistoricalEvents();
 
                  for (HistoricalEvent historicalEvent : events) {
                       System.out.println("PI:" + pi.getOID() + " Event time:" +  historicalEvent.getEventTime());                                        
                       System.out.println("PI:" + pi.getOID() + " Event type:" + historicalEvent.getEventType());                                        
                       System.out.println("PI:" + pi.getOID() + " Event details :" + historicalEvent.getDetails());        
 
                  }           
           }

Back to the top