how list processes?
simonbaker May 6, 2007 1:44 PMIf you have a workflow process definition and create multiple instances of the process, is there a way to get a list of all the processes that you have started?
Let's say we have a method to start processes as follows, with a static jbpmConfiguration member visible somewhere and using hibernate for persistence:
public long startProcess(String orgNumber, String suborgNumber) throws RMSException{
long processID = -1;
log.info("Entering startEfileDestructionProcess");
//Check if the jbpmConfiguration has been setup
if( jbpmConfiguration == null ){
//retrieve it
log.info("JBPMConfiguration was null, creating instance.");
jbpmConfiguration = JbpmConfiguration.getInstance();
}
//Doing a try and catch for all so the RMSException can contain the relevant info
// Lookup the pojo persistence context-builder that is configured above
JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
log.info("Retrieved jbpmContext.");
try {
//GraphSession graphSession = jbpmContext.getGraphSession();
//ProcessDefinition processDefinition =
log.info("Creating process");
// With the processDefinition that we retrieved from the database, we
// can create an execution of the process definition just like in the
// hello world example (which was without persistence).
ProcessInstance processInstance = jbpmContext.newProcessInstance("JBPMEfileProcess");
log.info("Created process");
processID = processInstance.getId();
log.info("ProcessID is ["+processID+"]");
//Set the key variables
processInstance.getContextInstance().createVariable("OrgNumber",orgNumber);
log.info("Set Org Number");
processInstance.getContextInstance().createVariable("SubOrgNumber",suborgNumber);
log.info("Set SubOrg Number");
// Now the processInstance is saved in the database. So the
// current state of the execution of the process is stored in the
// database.
//Connection myConnect = jbpmContext.getConnection();
//PreparedStatement myStatement = myConnect.prepareStatement("SET IDENTITY_INSERT JBPM_PROCESSINSTANCE OFF");
//myStatement.execute();
//myStatement.close();
processInstance.signal();
jbpmContext.save(processInstance);
log.info("Saved New Process");
}catch(Exception e){
String message = "Error creating new RMS process["+e.getMessage()+"]";
e.printStackTrace();
throw new RMSException(1,message);
}
finally {
// Tear down the pojo persistence context.
jbpmContext.close();
}
log.info("Exiting startEfileDestructionProcess, created processID["+processID+"]");
return processID;
}
Is there a way to get a list of all the processes, short of saving the process ids myself somewhere?