对箫杉《强制结束令牌(token)引发的问题》的思考

 箫同学的原文见http://blog.csdn.net/mrshan/archive/2006/09/05/1181001.aspx

文中所说的情况我举一个我们这开发中的例子看看恰当不恰当:业务都有收费的环节,收费有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。

至于另一个任务的后续是否有问题,还没有仔细的分析过,等以后吧。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值