扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
文中所说的情况我举一个我们这开发中的例子看看恰当不恰当:业务都有收费的环节,收费有2种方式——银行托收和前台缴现金,按照文中的描述原来的流程定义是:
<start-state name="start">
<transition name="" to="chargeinit"/>
</start-state>
<fork name="chargeinit">
<transition name="bank" to="bank"/>
<transition name="cash" to="cash"/>
</fork>
<task-node name="bank">
<transition name="bankend" to="chargeend"/>
</task-node>
<task-node name="cash">
<transition name="cashend" to="chargeend"/>
</task-node>
<join name="chargeend">
<transition to="end"/>
</join>
<end-state name="end"/>
而我想这种情况其实应该抽象一下,其实都是收费只不过方式不同,如果采用task-node一个节点,用不同的task来表示不同的收费方式,将signal属性设置为first,则只要有一个任务完成了流程就会继续,这应该是jbpm对这种问题的解决办法吧。
<start-state name="start">
<transition name="" to="charge"/>
</start-state>
<task-node name="charge" signal="first">
<task name="bank" swimlane="banker"/>
<task name="cash" swimlane="casher"/>
<transition name="" to="end"/>
</task-node>
<end-state name="end"/>经过测试,无论完成哪一个任务bank或cash,流程都会进行下去到达end。
至于另一个任务的后续是否有问题,还没有仔细的分析过,等以后吧。
查看本文来源
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。