用WEB API批量插入销售出库单出错
金蝶云社区-小卖部部长
小卖部部长
0人赞赏了该文章 1,486次浏览 未经作者许可,禁止转载编辑于2016年01月27日 11:51:05

json 如下
{
"Creator": "",
"NeedUpDateFields": [],
"Model": [
{
"FID": 0,
"FBillTypeID": {
"FBillTypeID": "",
"FNUMBER": "XSCKD01_SYS",
"FNAME": "标准销售出库单"
},
"FSaleOrgId": {
"FOrgID": 0,
"FNUMBER": "103",
"FNAME": "销售公司"
},
"FCustomerID": {
"FCUSTID": 0,
"FNUMBER": "CUST0002",
"FNAME": "东方机械"
},
"FStockOrgId": {
"FOrgID": 0,
"FNUMBER": "101.2",
"FNAME": "总装事业部"
},
"FOwnerIdHead": {
"FItemID": 0,
"FNUMBER": "103",
"FNAME": "销售公司"
},
"FNote": "",
"SAL_OUTSTOCK__FEntity": [
{
"FMaterialID": {
"FNumber": "1.01.001"
},
"FUnitID": {
"FNumber": "Pcs"
},
"FBaseUnitQty": "1",
"FStockID": {
"FNumber": "CK001"
},
"FStockStausID": {
"FNumber": "KCZT01_SYS"
},
"FMustQty": 1,
"FRealQty": 1,
"FAmount": 1,
"FPrice": 1,
"FTaxPrice": 1,
"FDiscount": 1,
"FDiscountRate": 1,
"FIsFree": true,
"FLot": {
"FNUMBER": "0000"
}
}
],
"SAL_OUTSTOCK__SubHeadEntity": {
"FSettleCurrID": {
"FNumber": "PRE001"
},
"FLocalCurrID": {
"FNumber": "PRE001"
},
"FSettleOrgID": {
"FNumber": "103"
},
"FExchangeTypeID": {
"FNumber": "HLTX01_SYS"
},
"FExchangeRate": "1",
"FBillAllAmount": 0
}
}
]
}

执行代码如下

client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.BatchSave", new object[] { "SAL_OUTSTOCK", str})

str 是上面的json

错误提示如下
{
"Result": {
"ResponseStatus": {
"ErrorCode": 500,
"IsSuccess": false,
"Errors": [
{
"FieldName": "未将对象引用设置到对象的实例。",
"Message": "\r\nServer stack trace: \r\n 在 Kingdee.K3.SCM.App.Validator.StockBillDateValidatorForSal.GetOrgIds(ExtendedDataEntity[] dataEntities)\r\n 在 Kingdee.K3.SCM.App.Validator.StockBillDateValidatorForSal.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.WebApi.FormService.BatchSaveService.SaveBills(String data)"
}
],
"SuccessEntitys": []
}
}
}

注:如果只是按插入一条的JSON格式和代码会插入成功,但不能用批量插入的方法