工作流异常挂起:当前寻址消息正在运行中,定时等待完成之后才能运行,业务主键:xxxxxx原创
金蝶云社区-吴锐雄
吴锐雄
1人赞赏了该文章 139次浏览 未经作者许可,禁止转载编辑于2024年05月24日 10:18:32


记录一次工作流异常,排查过程。


异常如下

bos.wf.addressProcessUnknowException

kd.bos.exception.KDException: 当前寻址消息正在运行中,定时等待完成之后才能运行,业务主键:


image.png



排查了工作流,发现是在人工节点,用donothing操作触发流程

image.png


发现开发人员在调度代码中,触发了该donothing操作,从而触发工作流。

部分代码如下:

image.png


问题原因

上述代码编写有误,删除单个业务对象,但是对整个业务对象集合做donothing操作触发工作流

  • 假设循环体的第一遍先走下面else逻辑,那么就是对全部的业务对象触发工作流此时,全部的业务对象都会进入工作流进行寻址,不允许再做其他操作。

  • 假设循环体的第二遍,走了if里面的删除逻辑,准备对集合内某一个业务对象做删除操作,由于工作流正在寻址,不允许再做其他操作,此时就会提示当前寻址消息正在运行中,定时等待完成之后才能运行。

该问题是由于业务代码编写错误导致的。


处理方案

在执行donothing操作触发工作流时,只执行单个业务对象即可。


赞 1