当前位置: 代码迷 >> JBoss >> 关于jbpm审批流程的有关问题
  详细解决方案

关于jbpm审批流程的有关问题

热度:10023   发布时间:2013-02-26 00:00:00.0
关于jbpm审批流程的问题
请问像我下面的问题用jbpm如何表述啊?谢谢 

4个领导A, B, C,D审批一个流程, A,B,C可同时开始,A,B随便一个审批则可,接着和C必须同时审批才能流转到D

如图所示

------解决方案--------------------------------------------------------
探讨
可以把A、B作为一个actorPool放在一个节点里,随便哪个完成任务就到下一节点,把C作为下一节点的actor

------解决方案--------------------------------------------------------
如如下jbpm4流程定义:就是这个的描述

<?xml version="1.0" encoding="UTF-8"?>

<process name="process" xmlns="http://jbpm.org/4.0/jpdl">

<start g="16,102,48,48">
<transition to="fork"/>
</start>
 
<fork g="96,102,48,48" name="fork">
<transition g="120,41:" to="A"/>
<transition to="B"/>
<transition g="120,213:" to="C"/>
</fork>
 
<state g="176,16,149,52" name="A">
<transition g="478,45:" to="final join"/>
</state>
 
<state g="176,100,149,52" name="B">
<transition g="377,126:" to="shipping join"/>
</state>
 
<state g="176,184,149,58" name="C">
<transition g="378,213:" to="shipping join"/>
</state>
 
<join g="353,145,48,48" name="shipping join">
<transition name="to final join" to="final join" g="480,169:-83,-17"/>
</join>
 
<join g="457,90,48,48" name="final join">
<transition name="to state1" to="D" g="-59,-17"/>
</join>
 
<end g="670,89,48,48" name="end"/>
<state name="D" g="547,86,92,52">
<transition name="to end" to="end" g="-41,-17"/>
</state>

</process>
------解决方案--------------------------------------------------------
在a,b中加个参数,审批前查询参数来确定是否文档已经流转到D,如果流转到D则不用审批了
很简单的,在a,b下面都有一个判定节点,如果流程已经流转到D,则a 或者 b 都可以结束了
如果不判断,a 或者 b 可能死锁
  相关解决方案