[jboss-user] [JBoss jBPM] - Task Not Being Created?

jed204 do-not-reply at jboss.com
Thu Oct 12 18:18:24 EDT 2006


I've been banging my head on this one and would like someone else (if they have some time) to take a look...

I've been using jBPM for general process and have just recently being trying to use some of the tasks. I've run into a problem and not sure why.

Basically, the problem I'm having is when I use a process definition from the database I can't get a task to be created. I can see the task node hit but no task is created. Using a process defintiion from a test case I can create a process and the task is created. Here are the two different methods of creating the same task:


  | 	/** Creates a test process using the coded definition */
  | 	public void startTestProcess()
  | 	{
  | 		logger.info("Starting Test Process via Coded Definition");
  | 		
  | 		// Create a test process definition
  |         	ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
  | 				          "<process-definition name='the baby process'>" +
  | 				          "  <start-state name='start'>" +
  | 				          "    <transition name='baby cries' to='t'/>" +
  | 				          "  </start-state>" +
  | 				          "  <task-node name='t'>" +
  | 				          "    <task name='change nappy'>" +
  | 				          "      <assignment class='com.ider.Process.NappyAssignmentHandler'/>" +
  | 				          "    </task>" +
  | 				          "    <transition to='end'/>" +
  | 				          "  </task-node>" +
  | 				          "  <end-state name='end'/>" +
  | 				          "</process-definition>"
  | 				        );
  |         
  |         	// Create the process
  |         	ProcessInstance processInstance = new ProcessInstance(processDefinition);
  |         
  |         	// Signal the root token
  |         	Token token = processInstance.getRootToken();
  |         	token.signal();
  |         
  |         	logger.info("Token Node: " + token.getNode());
  | 
  | 	}
  | 
  | 
  | 	/** Creates a new process based on a process definition name */
  | 	public void startNewProcess(String processName)
  | 	{
  |     		JbpmContext jbpmContext = (JbpmConfigurationStatic.jbpmConfiguration).createJbpmContext();
  | 		try {
  | 			logger.info("Starting Process via Definition [" + processName + "]");
  | 			
  | 			// Load a process definition from the database
  | 			ProcessDefinition myDef = jbpmContext.getGraphSession().findLatestProcessDefinition(processName);			
  | 			
  | 	        	// Create the process
  | 			ProcessInstance newProcess = new ProcessInstance(myDef);
  | 
  | 			// Signal the root token
  | 	        	Token token = newProcess.getRootToken();
  | 	        	token.signal();
  | 	        
  | 	        	logger.info("Token Node: " + token.getNode());
  | 	        
  | 			jbpmContext.save(newProcess);
  | 			
  | 		} finally { 		
  | 			jbpmContext.close();
  | 		}
  | 	}
  | 

One called right after another yields the following logs:


  | 
  | processAdmin.startTestProcess();
  | processAdmin.startNewProcess("Test");
  | 
  | 

anonymous wrote : 
  | Created via Coded Definition:
  | -----------------------------
  | 18:03:37,875 INFO  [UserAdminScreen] Starting Test Process via Coded Definition
  | 18:03:37,875 DEBUG [GraphElement] event 'process-start' on 'ProcessDefinition(the baby process)' for 'Token(/)'
  | 18:03:37,875 DEBUG [GraphElement] event 'before-signal' on 'StartState(start)' for 'Token(/)'
  | 18:03:37,875 DEBUG [GraphElement] event 'node-leave' on 'StartState(start)' for 'Token(/)'
  | 18:03:37,890 DEBUG [GraphElement] event 'transition' on 'Transition(baby cries)' for 'Token(/)'
  | 18:03:37,890 DEBUG [GraphElement] event 'node-enter' on 'TaskNode(t)' for 'Token(/)'
  | 18:03:37,890 DEBUG [GraphElement] event 'task-create' on 'Task(change nappy)' for 'Token(/)'
  | 18:03:37,890 DEBUG [GraphElement] event 'task-assign' on 'Task(change nappy)' for 'Token(/)'
  | 18:03:37,890 DEBUG [GraphElement] event 'after-signal' on 'StartState(start)' for 'Token(/)'
  | 18:03:37,890 INFO  [UserAdminScreen] Token Node: TaskNode(t)
  | 
  | 
  | Created via DB Definition:
  | --------------------------
  | 18:03:41,015 INFO  [UserAdminScreen] Starting Process via Definition [Test]
  | 18:03:41,015 DEBUG [DbPersistenceServiceFactory] creating persistence service
  | 18:03:41,015 DEBUG [DbPersistenceService] creating hibernate session
  | 18:03:41,015 DEBUG [DbPersistenceService] beginning hibernate transaction
  | 18:03:41,015 DEBUG [GraphElement] event 'process-start' on 'ProcessDefinition(Test)' for 'Token(/)'
  | 18:03:41,015 DEBUG [GraphElement] event 'before-signal' on 'StartState(start)' for 'Token(/)'
  | 18:03:41,015 DEBUG [GraphElement] event 'node-leave' on 'StartState(start)' for 'Token(/)'
  | 18:03:41,031 DEBUG [GraphElement] event 'transition' on 'Transition(baby cries)' for 'Token(/)'
  | 18:03:41,031 DEBUG [GraphElement] event 'node-enter' on 'TaskNode(t)' for 'Token(/)'
  | 18:03:41,031 DEBUG [GraphElement] event 'node-leave' on 'TaskNode(t)' for 'Token(/)'
  | 18:03:41,031 DEBUG [GraphElement] event 'transition' on 'Transition(248adb)' for 'Token(/)'
  | 18:03:41,031 DEBUG [GraphElement] event 'node-enter' on 'EndState(end)' for 'Token(/)'
  | 18:03:41,031 DEBUG [GraphElement] event 'process-end' on 'ProcessDefinition(Test)' for 'Token(/)'
  | 18:03:41,031 DEBUG [GraphElement] event 'after-signal' on 'StartState(start)' for 'Token(/)'
  | 18:03:41,031 INFO  [UserAdminScreen] Token Node: EndState(end)
  | 

I see in the log where the coded definition creates the task but the definition from the db skips over. I just deployed the process to the database, it looks like the coded one:


  | <process-definition xmlns="" name="Test">
  |     <start-state name="start">
  |       	<transition name="baby cries" to="t"/>
  |     </start-state>
  | 	<task-node name="t">
  | 		<task name="change nappy">
  | 			<assignment class="com.ider.Process.NappyAssignmentHandler"/>
  | 		</task>
  | 		<transition to="end"/>
  | 	</task-node>
  | 	<end-state name="end"/>
  | </process-definition>
  | 

btw, the NappyAssignmentHandler is straight from the examples.

Clearly, I've done something wrong...anyone care to take a guess?


Thanks in advance for any help!

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

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



More information about the jboss-user mailing list