Activiti工作流运行中,某个节点任务未进入审批的问题定位解决

【问题现象】

按照业务流程要求,定义完BPM流程,在其他节点任务都审批完成后,当进入到最后一个节点任务前,流程就直接终止了(act_ru_task表中的数据没有了,流程判断已结束),导致终审始终无法进入。

 

【定位解决过程】

1、开始主要怀疑对象是指定的assignee值错误,但经过代码调试跟踪,以及数据表中字段值确认,排出这个原因

2、找其他使用过activiti框架的技术人员帮忙看看,对照过定义的BPM流程,发现几个关键信息都是没有问题的,如:category、assignee、priority

3、后来我怀疑是框架的complete方法(ProcessEngine.getTaskService().complete)执行有什么问题,但由于是封装后的看不到源码,始终举足无措

4、最后由其他开发对于以往的代码才发现是因为BPM流程定义中,关于flow的定义里,condition的定义值,在代码中执行complete的参数值必须相同,不然就无法通过这个flow执行下一个节点任务

如:

我在连接终审的flow中定义了${msg=='批准'},在下面complete参数nextParams中的msg键值就必须是“批准”,否则无法执行

nextParams.put(BpmConstants.MSG_FLAG, BpmConstants.Y);
taskService.complete(taskId,nextParams);

当按照业务特性,修改msg值使BPM定义中和代码中的保持一致后,流程运行正常。

 

【小结】

前面说得很啰嗦(实际也是折腾了两三天),说到底就是一句话:

Activiti工作流中的flow连接线上定义的condition的值,在流程执行中相当于ID作用,并非一个随便填写的值

 

小小经历,由于网上很难查到这种问题,所以分享只为让和我类似水平的人有个借鉴,减少苦恼、提高效率、节约时间成本。

 

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值