jBPM的sub-process中有关outcome-value的问题

  我用的版本是jBPM4.3。

 

  《jBPM user guide》6.2.7 sub-process小节的Table 6.17说:outcome是sub-process的一个属性;它的类型是表达式;当(sub-process的)transition指定了outcome-value子元素时必填;sub-process结束时,outcome这个表达式会被计算,得到的值用来匹配transition

 

  从jBPM自带的示例程序(jbpm4.3/examples/src/org.jbpm.examples.subprocess.outcomevalue)来看:

<sub-process name="review" outcome="#{result}" sub-process-key="SubProcessReview">            
    <transition name="ok" to="next step">
    <transition name="nok" to="update"/>
    <transition name="reject" to="close"/>
</sub-process>

如果"#{result}"的值为"ok",sub-process结束后就会走name="ok"这个transition。这整个过程与outcome-value无关。

 

  但《jBPM user guide》6.2.7 sub-process小节的Table 6.21又说了,outcome-value是transition的一个子元素,如果outcome的值与之匹配,则sub-process结束后就会走这个transition。但是jBPM中又没有这样的示例程序。

 

  我自己做了些试验也都没法实现outcome和outcome-value匹配这种情况。

 

  现在完全不清楚outcome-value这个子元素到底该怎么用……

 

P.S. 问答频道的人气好少啊,我只好又copy到论坛来了……


问题补充
嗐,我这不在翻译jpdl么,今儿就翻译到这儿,结果碰了钉子。赶明儿我再试试。

jira那块儿我可能上不去(最近单位的网巨慢……),能提交我就提交,不能提交就拜托临远大哥了~
问题补充
issue已经提交

https://jira.jboss.org/browse/JBPM-2867

上传了patch,可以解决这个问题。附带对应的单元测试。
https://jira.jboss.org/browse/JBPM-2867

惭愧,现在才知道原来还有outcome-value这种情况。

根据jbpm-4.3的源代码来看,outcome-value是专门为了搞定非String类型返回值的情况来设定的,如果outcome="#{}"的结果不是String类型,就要为transition指定outcome-value来设置对应关系。

examples中确实没有对应实例,请在jbpm jira上提交一个issue,以便之后补充实例。谢谢。

辛苦了,有了issue就好办了,等我今天忙完了手头的,就上去研究一下,等有了结果就通知你。:)

一直抱NullPointerException。估计是一个bug。等有了更进一步的解释再来通知。