[jboss-user] [JBoss jBPM] - Help getting a condition to work

earniedyke do-not-reply at jboss.com
Mon Sep 11 15:22:11 EDT 2006


Greetings all!!!!

I have been trying all day to get, what I think, is a simple process to work. I can never get it to think the account is NOT locked. No matter what value I set the locked variable to it always takes the default transition. I have tried every style of condition I could find referenced in this forum all to no avail.

Any and all help would be appreciated.

Earnie!

processdefinition.xml
<?xml version="1.0" encoding="UTF-8"?>
  | 
  | <process-definition
  |   xmlns="urn:jbpm.org:jpdl-3.1"  name="test2">
  |    <start-state name="BeginLogin">
  |       <transition name="toCheckForLock" to="CheckForLockedAccount"></transition>
  |    </start-state>
  |    <end-state name="End"></end-state>
  |    <decision name="CheckForLockedAccount">
  |       <transition name="Account is locked" to="AccountIsLocked"></transition>
  |       <transition name="Account is not locked" to="AccountIsNotLocked">
  |        <condition expression="#{contextInstance.variables['locked'] == 'N'}"/>
  |       </transition>
  |    </decision>
  |    <node name="AccountIsLocked">
  | 	   <controller>
  |           <variable name="message">Is</variable>
  |    		</controller>
  |       <transition name="toEnd" to="End"></transition>
  |    </node>
  |    <node name="AccountIsNotLocked">
  | 	<controller>
  |        <variable name="message">Is NOT</variable>
  | 	</controller>
  | 	<transition name="toEnd" to="End"></transition>
  |    </node>
  | </process-definition>

test case:
package com.sample;
  | 
  | import java.io.FileInputStream;
  | 
  | import junit.framework.TestCase;
  | 
  | import org.jbpm.*;
  | import org.jbpm.graph.def.ProcessDefinition;
  | import org.jbpm.graph.exe.ProcessInstance;
  | 
  | public class SimpleProcessTest extends TestCase {
  | 	public void testSimpleProcess() throws Exception {
  |         JbpmConfiguration cfg = JbpmConfiguration.getInstance();
  | 	    JbpmContext ctx = cfg.createJbpmContext();
  |         try {
  | 		FileInputStream fis = new FileInputStream("processes/test2/processdefinition.xml");
  | 		ProcessDefinition processDefinition = ProcessDefinition.parseXmlInputStream(fis);
  |        ctx.deployProcessDefinition(processDefinition);
  |        
  |         ProcessInstance instance = ctx.getGraphSession().findLatestProcessDefinition("test2").createProcessInstance();
  | 
  |         instance.getContextInstance().setVariable("locked","N");
  |        
  | 		instance.signal();
  |         System.out.println(instance.getContextInstance().getVariable("message") + " Locked? " + instance.getContextInstance().getVariable("locked"));
  |         } finally {
  |         ctx.close();
  |         cfg.close();
  |         }
  | 	}
  | 
  | }
  | 

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

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



More information about the jboss-user mailing list