jeffen2006的专栏

当我们往前仰望大师的遥远背影时,我们总是期望有那么一个快捷方式能够赶上他们,但事实上并不存在这个快捷方式,大师们所花费的时间是我们所尚未付出的、他 们所花费的精神是我们尚未投入的、中间所历经的苦恼是我...

对箫杉《强制结束令牌(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。

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

阅读更多
个人分类: jboss-jbpm
上一篇jbpm知识点——ContextInstance
下一篇如何才能将企业现有的组织关系集成到jbpm中?
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭