现在的位置: 首页 > 综合 > 正文

jbpm3.2.2 transition 多路选择

2014年01月11日 ⁄ 综合 ⁄ 共 1630字 ⁄ 字号 评论关闭

在做简单的JBPM的多路选择时,最初流程定义文件类似

I am trying to put some conditions on transitions leaving a task-node.  When the process variable matches the first transition condition, the transition is taken.  When the process variable matches the second transition condition I get a JbpmException: transition
condition #{taskTrans == 't1'} evaluated to 'false'

In this scenario taskTrans = "t2"

The process def snippet:

  | <task-node name="task1">
  |       <transition name="" to="end1">
  |         <condition>#{taskTrans == 't1'}</condition>
  |          <action name="action1" class="com.cognitive.bp.jbpm.actionHandler.PrintlnActionHandler" config-type="bean">

  |             <text>Task Node transition 1</text>
  |          </action>
  |       </transition>
  |       <transition name="tr2" to="end1">
  |         <condition>#{taskTrans == 't2'}</condition>
  |          <action name="action1" class="com.cognitive.bp.jbpm.actionHandler.PrintlnActionHandler" config-type="bean">

  |             <text>Task Node Transition 2</text>
  |          </action>
  |       </transition>
  |    </task-node>
  |
============
http://lists.jboss.org/pipermail/jboss-user/2007-August/078771.html
一直出现 Transiton Condition evaluated to 'false Exception
翻了一下邮件列表,解释如下:

This behavior is correct. In a task node the conditions are 'guards', they do not act like a decision. So if you say task.leave() it wil always try to take the default, first, transition. No matter what conditions you put on it. Since the variable does not
have the right value it is not allowed to take this transition.

So you either have to explicitly tell the tasknode what transition to take or have a tasknode with one transition to a decision node which has to transitions, each with a condition like you have now.

========
http://lists.jboss.org/pipermail/jboss-user/2007-August/079006.html

因此增加Decision节点 运行正常

抱歉!评论已关闭.