应用情景:使用自己所用的系统向金蝶系统中保存单据
面临的错误提示:
{"Result":{"ResponseStatus":{"ErrorCode":500,"IsSuccess":false,
"Errors":[{"FieldName":"FSupplierId","Message":"字段“供应商”是必填项","DIndex":0},
{"FieldName":"FSettleCurrId","Message":"字段“结算币别”是必填项","DIndex":0}]
,"SuccessEntitys":[],"SuccessMessages":[],"MsgCode":11},"Id":"","Number":"","NeedReturnData":[{"FID":121050,"FBillNo":null}]}}
这是我的部分json数据,FsupplierID没有截出来,不是没有!!!
看了金蝶社区的各种解释:说是供应商不存在或是未给当前用户等分配啥的,还有说要给内码、不是编码。这些我都确定了,我的数据没有问题。用同样的信息我手动填写了一张单据是通过的。所以还是觉得是数据的问题。最后仔细的重新阅读了开发文档。
这么重要的信息。用这么小的字表示。我整个心态都崩了。
之后我就根据顺序修改。但是Java中对象转为JSONObject对象,虽然对顺序进行要求,但是还是没法保证和金蝶的顺序一模一样。
最后我发现了一个参数IsAutoAdjustField
——是否自动调整JSON字段顺序,布尔类型,默认false(非必录)
将它这是为True就能解决参数顺序问题了,也解决我一开始的500错误。
Over。