[jboss-user] [JBoss jBPM] - how list processes?

simonbaker do-not-reply at jboss.com
Sun May 6 13:44:57 EDT 2007


If 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?

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4043533#4043533

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4043533



More information about the jboss-user mailing list