我是JBPM (版本3)的新手,我正在尝试实现一个决定(不成功)。
我意识到我必须这样做:
Cenario 1:
<decision name="XPTO Decision" expression="#{contextInstance.variables['XPTO Decision']}">
<transition name="To ActionA" to="ActionA"/>
<transition name="To ActionB" to="ActionB"/>
<transition to="ActionA"/>
</decision>或者:
Cenario 2:
<decision name="XPTO Decision" >
<transition name="To ActionA" to="ActionA"/>
<transition name="To ActionA" to="ActionA"/>
<transition to="ActionA">
<condition expression="#contextInstance.variables['XPTO Decision'] ge 5"/>
</transition>
</decision>或者:
Cenario 3:
<decision name="XPTO Decision" >
<handler class="bla.bli.MyDecisionHandler"/>
<transition name="To ActionA" to="ActionA"/>
<transition name="To ActionB" to="ActionB"/>
<transition to="ActionA"/>
</decision>我做过类似的事情,但我的决定已经转到相同的操作(ActionB)。
我不确定这个决定是如何运作的。寻找cenario 2,我相信是这样的
“如果变量XPTO决定ge (greates or equals(?)) 5则Action A否则Action B”。“是这样吗?
还有..。cenario 3是如何工作的?处理程序如何确定哪个操作是正确的?
谢谢。
发布于 2012-05-02 18:12:54
我使用了以下代码:
<decision name="XPTODecision">
<description>
XPTO decision.
</description>
<transition to="XX" name="xx">
<condition> #{ body.Success} </condition>
</transition>
<transition to="YY" name="yy">
<condition> <![CDATA[#{body.NumberXX <= body.Maximum && theBody.Success}]]></condition>
</transition>
</decision>
<node name="XX">
...
</node>
<node name="YY">
...
</node>发布于 2012-02-07 19:48:55
那么这是什么:#contextInstance.Variables‘’XPTO‘ge5?这种表达式在哪种语言中有效?您应该查看jBPM3文档,其中解释了条件节点。在contextInstance是您试图评估的流程变量的情况下,它应该类似于:${contextInstance.variables‘and’> 5},评估将返回"true“或"false”,这意味着您需要有两个转换,一个称为"true“,另一个称为"false”
我非常确定您没有要计算的contextInstance对象,所以如果您想要直接计算一个过程变量,请尝试使用:${asd > 5} Cheers
https://stackoverflow.com/questions/9160247
复制相似问题