电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

自动任务执行出错,参数为空【parameter :null】

来源:金蝶云社区作者:金蝶2024-09-1614

自动任务执行出错,参数为空【parameter :null】

文章主题】:自动任务执行出错,参数为空


【问题表现】:

    工作流中在自动节点执行节点任务绑定的业务方法时发生挂起,报错类似

Caused by: com.kingdee.bos.workflow.WfException :

自动活动【具体的节点名称】执行时出现异常:自动任务【节点任务绑定的具体业务功能(比如:com.kingdee.shr.costbudget.adjustSalaryBillFunction)】的操作【具体的业务操作功能】时发生错误

parameters:{[参数值:null]}

 

【问题说明】:

    该类问题,为自动节点执行业务方法需要的参数中,部分传递的参数值为空虽然错误堆栈中已经执行到相关的业务代码报错空指针,但实际可能是由于工作流中自动节点传递过去的参数值为空,导致业务取不到对应的发生异常所以需要先排查流程定义的配置以及传递的参数为何为空,需要先保证工作流方面传参是符合业务方法参数要求的


【该类问题排查思路】:

        1、查看错误日志,是否如上述报错信息内容类似;

        2、提取日志中关键的报错信息:【具体传递给业务方法的参数 & 参数值:parameter :null  参数值:null】是否有传递的参数存在null值的情况。

        3、导出异常的流程实例定义文件,导入BOS工具中查看该自动节点的具体配置,重点查看任务-入口参数中设置的流程变量,检查是否已经业务要求配置入口参数,记住你这里设置的流程变量[A]等配置;

        4、对比流程属性中的流程变量,与你在步骤3中设置的具体变量对象[比如:A],比较其变量[A]是否有值;

        5、在步骤3中导出的流程实例定义中,检查变量[A]在流程定义中检查[流程变量引用]是否有对该变量[A]做过赋值的操作,变量需要先赋值后才能使用;

        6、检查变量[A]在流程定义中,配合流程实例实际运行的情况反向推理变量[A]出现异常前的最后一次赋值的地方,检查是否有取值/赋值异常的情况,导致变量[A]最终被重新赋值覆盖为空值。

 

【该类问题一般有以下3种可能的异常场景】:

场景一:

【设置的变量只被引用了从来没有被赋值过,即变量当前值为空,然后直接传递调用了业务方法】


Scene1-1 

【案例提单1R20191216-2131(当前案例) R20201110-3239R20190102-1124R20190110-2819

该问题为:工作流中自动节点执行业务方法挂起,报错为:

Caused by: com.kingdee.bos.workflow.WfException :

自动活动【自动】执行时出现异常:自动任务【卡片业务功能(com.kingdee.eas.fi.fa.manage.faCurCardFunction)】的操作【卡片审核(passAudit)】时发生错误

parameters:{[参数值:null]

[参数值:null]}

Caused by: com.kingdee.bos.BOSException :null

Caused exception message is: null

java.lang.NullPointerException

at com.kingdee.eas.fi.fa.manage.app.FaCurCardControllerBean.setWorkflowServiceState(FaCurCardControllerBean.java:2374)

 

参数为空-图片1.webp

分析说明】:经检查为节点传入参数【billID】未赋值导致传入空值,导致业务执行方法时报空指针

【原因总结】:现场不清楚变量需要先赋值后才能使用,导致错误配置使用。

 

 

Scene1-2

【案例提单1】:R20191031-2745

该问题为:工作流中自动节点调用业务方法挂起,报错为:

Caused by: com.kingdee.bos.workflow.WfException :

自动活动【退回重扫】执行时出现异常:自动任务【共享基础服务(com.kingdee.eas.base.wssc.app.WsscCommonFunction)】的操作【退回重扫(rescanImage)】时发生错误

parameters:{[参数值:gZYvpNyAR3SDkHupsO3/ckpE9J8=,参数类型:class com.kingdee.bos.util.BOSUuid]

[参数值:,参数类型:class java.lang.String]

[参数值:参数类型:class java.lang.String]}

Caused by: com.kingdee.eas.base.wssc.ImageSystemException :未知的影像系统相关异常

java.lang.NullPointerException

at com.kingdee.eas.base.wssc.image.helper.NoticeImageSysHelper_GXHC.rescan(NoticeImageSysHelper_GXHC.java:92)

 

参数为空-图片2.webp


参数为空-图片3.webp

 

分析说明】:

经现场提供的流程配置检查,分析如下:

1.自动节点中,使用的参数2、参数3为空,该些取值与变量【approveResult】有关;

2.approveResult一般是审批对象,在审批节点审批时输出的审批信息;

3.查看流程当前的运行情况,这些赋值的审批节点都没有经过,所以该变量并没有被赋值,所以没有值;

4.在【退回重扫】节点中也只是用了,而没有进行赋值操作,因为没有“被赋值过”,所以变量在使用的时候它也是没有值的;

【原因总结】:业务方法的入口参数中使用了审批对象(approveResult)的子属性,而流程中没有经过审批节点,所以不会输出审批对象,从而导致最终传递给自动节点的入口参数为空。

 


场景二:

现场配置使用有误问题导致设置传递给业务的参数值为空】

 

Scene2-1

【案例提单1R20190124-2033(当前案例)R20201230-2847

该问题为:工作流中自动节点执行业务方法挂起,报错如下:

自动活动【创建影像相关信息】执行时出现异常:自动任务【共享基础服务(com.kingdee.eas.base.wssc.app.WsscCommonFunction)】的操作【单据提交自动创建单据影像映射信息(createBillImageMapInfo)】时发生错误

parameters:{

[参数值:null]

[参数值:null]

[参数值:null]

}

自动任务执行出错,参数为空【parameter :null】

【文章主题】:自动任务执行出错,参数为空【问题表现】: 工作流中在自动节点执行节点任务绑定的业务方法时发生挂起,报错类似:Caused...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信