0 Replies Latest reply on Nov 13, 2007 7:03 AM by fabianw

    problem evaluating transition condition

    fabianw Newbie

      Hi there

      I'm having a little problem with my process. I invoke a ESB service and depending on the returned value the right transition should be taken.
      This works fine as long as I use a seperate action-node and decision-node. But that means that I need two nodes for every branching.
      I've read that this should be possible using one decision-node with a node-enter event, but this doesn't seem to work for me.
      I have the following code:

      <decision name="decision2">
       <event type="node-enter">
       <action name="esbAction" class="org.jboss.soa.esb.services.jbpm.actionhandlers.EsbActionHandler">
       <esbCategoryName>RechnungBearbeiten</esbCategoryName>
       <esbServiceName>WurdeRechnungBestellt</esbServiceName>
       <millisToWaitForResponse>5000</millisToWaitForResponse>
       <jbpmToEsbVars>
       <mapping jbpm="lieferantenNr" esb="rechnung_kontrolle_lieferantenNr"></mapping>
       <mapping jbpm="auftragsNr" esb="rechnung_kontrolle_auftragsNr"></mapping>
       </jbpmToEsbVars>
       <returnVars>
       <mapping jbpm="istBestellt" esb="rechnung_kontrolle_istBestellt"></mapping>
       </returnVars>
       </action>
       </event>
       <transition to="skonto" name="to skonto"><condition expression="#{istBestellt==false}"></condition></transition>
       <transition to="end-state1" name="to end-state1"><condition expression="#{istBestellt==true}"></condition></transition>
      </decision>


      When I run this process, I get the following error at the decision-node:
      ERROR [GraphElement] action threw exception: transition condition #{istBestellt==false} evaluated to 'false'
      org.jbpm.JbpmException: transition condition #{istBestellt==false} evaluated to 'false'


      The ESB service returns true, and of course #{istBestellt==false} evaluates to 'false'. This is ok in my eyes, but the execution stops after the JbpmException and doesn't test the next condition.
      What am I doing wrong? I have the feeling that jbpm evaluates the transition conditions before the return value is really saved as a process variable.