业务场景:NC里创建webservice 接收 第三方系统数据 将系统内的 自由态订单 填充第三方数据后 调用动作脚本推成 【审核】态。
前期测试 在client增加测试按钮 模拟推单 都没有问题。模拟过程中碰见一个问题 推单不成功
原因:某字段 没有赋值导致 建议推单前 先从库中查询一条正常单据 做数据比对 根据正常数据填充VO。
最怪异的问题:调用按钮推单正常后 开始写webservice 但是结果是推单错误 报空指针异常。但同样的填充数据 推单操作类。
划重点 原因如此:
前端client 调用时 NC系统会默认填充一些 作为校验使用 例如 所属组织 操作人
但是在public private调用时 跳过了 导致无法获取到该值 所以导致报空指针异常 也就导致推单错误。

左图:在private中通过webservice 调用推单
右图:在client中听过添加测试按钮 调用推单。红色剪头标注的就是问题原因。
解决:
/*设置所属集团*/
InvocationInfoProxy.getInstance().setGroupId(headVO.getPk_group());
/*设置操作人*/
InvocationInfoProxy.getInstance().setUserId(psnByCode.getPk_psndoc());
设置完以上内容后 再调用推单 一切OK 。。妥妥的。。。
本文探讨了在NC系统中通过webservice接收第三方数据并推送订单时遇到的空指针异常问题。详细分析了异常原因在于webservice调用时系统默认填充字段缺失,并分享了解决方案,即手动设置所属集团和操作人信息。
589

被折叠的 条评论
为什么被折叠?



