第三方系统调用WEBAPI新增物料时提示500原创
金蝶云社区-胡哥哥
胡哥哥
8人赞赏了该文章 1266次浏览 未经作者许可,禁止转载编辑于2021年09月18日 15:36:04

背景第三方系统调用WEBAPI新增物料时报错,用JSON报文在线测试时是正常的,报错如下,

"Result":{"ResponseStatus":{"ErrorCode":500,"IsSuccess":false,"Errors":[{"FieldName":"未将对象引用设置到对象的实例。","Message":"\r\nServer stack trace: \r\n 在 Kingdee.K3.BD.App.Common.ServicePlugIn.Material.Validator.BatchManageValidator.Validate(ExtendedDataEntity[] dataEntities, ValidateContext validateContext, Context ctx)\r\n 在 Kingdee.BOS.App.Core.Validation.ValidationService.Validate(IEnumerable`1 dataEntities, ValidateContext validateContext, AbstractValidator[] validators)\r\n 在 Kingdee.BOS.App.Core.Validation.ValidationService.TryValidate(IEnumerable`1 dataEntities, ValidateContext validateContext, List`1& errorInfo)\r\n 在 Kingdee.BOS.App.Core.AbstractOprerationService.TryValidate()\r\n 在 Kingdee.BOS.App.Core.AbstractOprerationService.Validate()\r\n 在 Kingdee.BOS.App.Core.AbstractSave.Validate()\r\n 在 Kingdee.BOS.App.Core.AbstractOprerationService.DoExcete()\r\n 在 Kingdee.BOS.App.Core.AbstractOprerationService.Excute(DynamicObject[] dataEntities)\r\n 在 Kingdee.BOS.App.Core.SaveService.Save(Context ctx, BusinessInfo info, DynamicObject[] dataEntities, OperateOption option, String operationNumber)\r\n\r\nException rethrown at [0]: \r\n 在 Kingdee.BOS.ServiceHelper.BusinessDataServiceHelper.Save(Context ctx, BusinessInfo businessInfo, DynamicObject dataObject, OperateOption option, String operationNumber)\r\n 在 Kingdee.BOS.Model.Bill.BillModel.Save(OperateOption option)\r\n 在 Kingdee.BOS.WebApi.FormService.Save.Execute()\r\n 在 Kingdee.BOS.WebApi.FormService.BillOperationService.ExecuteOperation(FormOperation op, String data)","DIndex":0}],"SuccessEntitys":[],"SuccessMessages":[],"MsgCode":0}}}


【排查思路&解决方法】

1."Result":{"ResponseStatus":{"ErrorCode":500,"IsSuccess":false,"Errors":[{"FieldName":"未将对象引用设置到对象的实例。",500一般内部报错,是权限问题,首先检查当前用户是有权限的,手工新增物料是正常的,


image.png


2.API在线验证时,跟第三方是同一账套同一用户才行,进一步确认,json测试是OK的,第三方系统传的时候不是同一个用户,导致了新增物料时报错。

image.png


image.png

赞 8