JBPM公文流转之会签

 

JBPM3.2实现会签,有两种方法:

实现方法一:利用pooled-actors,只创建一个任务实例,却指定多个参与者(pooled-actors),
   参与者使用findPooledTaskInstances来查找任务实例,其中任意参与者审批通过
   并提交之后,其它人将看不到这个任务实例

如:
<task-node name="领导会签">        
   <task name="领导会签">   
    <assignment pooled-actors="wxj,jx"/>        
   </task>
   <transition name="结束流程" to="完成"></transition>
   </task-node>

实现方法二:用一个task-node,并将其signal属性设置为first(表示只要有一个用户提交了,此任务就结束),
在此节点中创建多个任务,此时多个任务就有多个参与者,
只有一个参与者提交,就应该把其他参与者的任务提交(定义一个node-leave的处理类)

<task-node name="领导会签" signal="first">     
<task name="wxj审批">     
   <assignment actor-id="wxj"/>     
</task>     
<task name="jx审批">     
   <assignment actor-id="jx"/>     
</task>    
<event type="node-leave">     
   <action class="com.XXX.FinishTaskHandler"/>     
</event>
<transition name="结束流程" to="完成"></transition>
</task-node>

FinishTaskHandler代码:

public class FinishTaskHandler implements ActionHandler {

public void execute(ExecutionContext executionContext) throws Exception {
  
   //找到当前节点尚未结束的任务实例
   Collection tasks = executionContext.getTaskMgmtInstance().getUnfinishedTasks(executionContext.getToken());
   for (Iterator iterator = tasks.iterator(); iterator.hasNext();) {
    TaskInstance taskInstance = (TaskInstance) iterator.next();
    taskInstance.end();
   }
}

}

其中<event type="node-leave">     
   <action class="com.XXX.FinishTaskHandler"/>     
</event>

的功能,也可以用tasknode的属性实现:即

end-tasks="yes",其与signal="first"表示只要有一个人参与者
审批了之后,该任务结束了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
jbpm会签jbpm流程引擎中的一种节点类型,用于实现多实例的任务处理。会签节点可以将任务分发给多个参与者进行处理,并且要求所有参与者完成任务后才能继续流程的执行。 在jbpm中,会签节点可以有两种处理方式:串行会签和并行会签。串行会签要求参与者按照指定的顺序依次处理任务,只有前一个参与者完成任务后,才会将任务转发给下一个参与者进行处理。而并行会签则允许所有的参与者同时处理任务,任何一个参与者完成任务后都可以继续流程的执行。 会签节点的主要作用是在流程中实现分发任务、多人协同处理以及等待多个参与者的完成。它能够提高流程的灵活性和协同效率,适用于需要多个参与者共同完成的任务,如审批、审核、投票等。 使用jbpm会签需要定义会签节点的参与者列表,选择会签类型,并设定相关的属性。在流程执行过程中,任务将被分发给所有参与者,并等待所有参与者完成任务后再继续下一步流程。会签节点可以通过流程定义文件或者编程的方式来创建和配置。 总之,jbpm会签是一种用于实现多实例任务处理的节点类型,通过将任务分发给多个参与者并等待所有参与者完成任务,来实现流程的协同处理和流转。它是jbpm流程引擎中的重要功能之一,能够提高工作效率和流程管理的灵活性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值