第三方系统调用WEBAPI新增物料时提示500
【背景】第三方系统调用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一般内部报错,是权限问题,首先检查当前用户是有权限的,手工新增物料是正常的,
2.API在线验证时,跟第三方是同一账套同一用户才行,进一步确认,json测试是OK的,第三方系统传的时候不是同一个用户,导致了新增物料时报错。
第三方系统调用WEBAPI新增物料时提示500
本文2024-09-16 18:39:20发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-23547.html