当前位置:   article > 正文

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作用,并非一个随便填写的值

 

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

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/121728
推荐阅读
相关标签
  

闽ICP备14008679号