版本: K3 cloud 7.1.703.7 (打了PT122668补丁之后的版本号),
问题:
在调用 K3CLOUD WEBAPI 的BatchSave方法进行单据保存时,提示 “Object reference not set to an instance of an object , at Kingdee.BOS.WebApi.FormService.BatchSaveService.SaveBills(String data) ”错误,之前的版本使用该方法能正常工作。
调用保存接口进行单据保存的例子:
result = _ApiClient.Execute
JObject jo = new JObject();
jo = (Newtonsoft.Json.Linq.JObject)Newtonsoft.Json.JsonConvert.DeserializeObject(result);
string aa = jo["Result"].ToString();
JObject jsonObj = JObject.Parse(aa);
Boolean str = Convert.ToBoolean(jsonObj["ResponseStatus"]["IsSuccess"].ToString());
//获取保存成功的单据的原始单据唯一标识,用于更新源头单据的状态。
JArray _NeedReturnData = new JArray();
_NeedReturnData = (Newtonsoft.Json.Linq.JArray)jsonObj["NeedReturnData"];
foreach (JObject jsonObjreturndata in _NeedReturnData)
{
DotNet.RawDataModel.ReturnDataModel _ReturnDataModel = new DotNet.RawDataModel.ReturnDataModel();
_ReturnDataModel.FID = jsonObjreturndata["FID"].ToString();
_ReturnDataModel.FOriginalBillID = jsonObjreturndata["FOriginalBillID"].ToString();
_ReturnDataModel.FOriginalBillNo = jsonObjreturndata["FOriginalBillNo"].ToString();
_ReturnDataModel.FBillNo = jsonObjreturndata["FBillNo"].ToString();
ReturnDataModelList.Add(_ReturnDataModel);
}
JArray _SuccessEntitys = new JArray();
_SuccessEntitys = (Newtonsoft.Json.Linq.JArray)jsonObj["ResponseStatus"]["SuccessEntitys"];
JArray _Errors = new JArray();
_Errors = (Newtonsoft.Json.Linq.JArray)jsonObj["ResponseStatus"]["Errors"];
同时存在的问题是,调用接口返回的JSON字符串中,不包含 NeedReturnData相关项。
推荐阅读