会签方案(一)

本文分享了在工作流中实现会签功能的方法。通过特定的XML配置与Java逻辑判断,确保所有会签任务完成后根据意见决定后续流程走向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求描述: 用户提出会签之后,需要等所有的会签任务完成之后,再根据用户意见来判断是同意还是拒绝,所以,原来的那种方式还是无法实现这个需求。就在原来方案上做了部门修改,于这个星期一终于完成了会签。

下面就跟大家分享一下我的实现方法。

流程配置

xml 代码
  1. <task-node name="060-Cosigning" create-tasks="false" signal="never" end-tasks="false">  
  2.     <task swimlane="cosigner"></task>  
  3.     <event type="node-enter">  
  4.         <action name="createInstance"  
  5.             class="com.ivo.bpm.action.CreateCosignTaskAction">  
  6.         </action>  
  7.     </event>  
  8.     <transition name="submit" to="980-Finished"></transition>  
  9. </task-node>  

signal=“never”,这样在这个task node下所有的任务都完成之后,token不会移到下一个node,这个时候就可以根据用户提交的意见情况来进行判断,然后根据判断结果再将token移到相应的node。

下面是逻辑判断

java 代码
  1. // cosign transition   
  2. cosignFlag = (String)objTaskInstance.getVariable("CosignFlag");   
  3.            
  4.  if ( cosignFlag !=null && cosignFlag.equals("true") &&    
  5.                 objTaskMgmtInstance.getUnfinishedTasks( objTaskInstance.getToken() ).size() == 0  ) {   
  6.         objProcessInstance = objTaskInstance.getTaskMgmtInstance().getProcessInstance();   
  7.         String cosignTransition = (String)objTaskInstance.getVariable("CosignTransition");   
  8.         if ( cosignTransition!=null && cosignTransition.equals("reject") )   
  9.             objProcessInstance.signal( "reject" );   
  10.         else objProcessInstance.signal( "submit" );   
  11. }  

首先判断是否进入会签node,在进入会签node之前,会把设置一个会签标记;然后在判断会签任务是否全部结束,如果全部结束,就根据会签意见(CosignTransition)来做迁移。在never时,需要用processInstance.signal来移动token。

这样就完成了以上的需求。

剩下还有一个更复杂的,就是二次会签,主要是签核日志有点复杂,哈哈哈,继续努力ing

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值