WebAPI接口之【销售出库单保存/修改接口】使用指南和实例

【应用场景】
第三方对接系统业务单据的常用单据--销售出库单,常用的新增、修改销售出库单的WebAPI接口
【销售出库单保存接口说明及示例】
一、接口说明:
1.接口名称:Save [批量保存:BatchSave]
接口组件:Kingdee.BOS.WebApi.ServicesStub.dll
接口类名:Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.cs
2.接口调用全称:
SDK调用:Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save
Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.BatchSave
HTTP调用:
http://服务器地址/k3cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save.common.kdsvc
http://服务器地址/k3cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.BatchSave.common.kdsvc
【参数说明】
参数列表 | 参数含义 | 备注 |
formid | 表单唯一标识,“SAL_OUTSTOCK” | 必须 |
data | 数据包: "{ \"Creator\":\"\", \"IsDeleteEntry\":\"false\", \"NeedReturnFields\":\" \", \"IsVerifyBaseDataField\":\"false\", \"IsEntryBatchFill\":\"false\", \"InterationFlags\":\"\", \"IgnoreInterationFlag\":\"\", \"IsAutoSubmitAndAudit\":\"false\", }" | Creator:非必须 IsDeleteEntry:非必须,在修改单据时是否需要删除已经存在的分录。 NeedReturnFields:非必须,需要返回的所有字段。 IsVerifyBaseDataField:非必须,是否需要验证基础资料。 IsEntryBatchFill:非必须,是否需要批量填充分录。 Model:必须,Model数据格式说明:所有字段和实体都是用元素的标识来识别。 \"InterationFlags\":交互标志集合,字符串类型,分号分隔,格式: IgnoreInterationFlag:是否允许忽略交互,布尔类型,默认true(非必录) "flag1;flag2;..."(非必录) 例如(允许负库存标识:STK_InvCheckResult) \"IsAutoSubmitAndAudit\":是否自动提交与审核,布尔类型,默认false(非必录) 注(启用此参数,保存,提交和审核是在一个事务中)。 |
*****【重点】**************************【Model字段构造】*****************************【重点】*****
原则:
1.构造json字段尽量精简,按需构造关键字段即可,WebAPI构造单据原理类似模拟录单,有默认值的字段和字段会自动联动携带相关值(包括字段值更新、插件等逻辑联动携带出来,如:客户字段自动携带默认销售员、结算币别等)的字段可无须构造。
2.修改保存单据,只需要构造单据主键FID或分录主键FEntryId+需要修改的字段即可。
3.json字段顺序位置非常关键,构造单据时是按照json字段顺序逐实体逐个字段触发值更新事件和服务的。
4.json数据包字段多少和顺序对性能和数据正确性有很大影响,尽量按需构造,避免无用的字段
5.json数据包同时构造Link子单据体数据,自动与上游单据建立关联关系进来构造完整(参考示例3)
示例1:【极简模式】(Webapi在线测试 json测试):
{
"Model": {
"FBillTypeID": {"FNUMBER": "XSCKD01_SYS"},
"FStockOrgId": {"FNumber": "100"},
"FCustomerID": {"FNumber": "A"},
"FEntity":
[{
"FMaterialID": {"FNumber": "1.01.001.0001"},
"FRealQty": 1,
"FStockID": {"FNumber": "CK001" }
}]
}
}
示例1:Webapi菜单在线测试验证:(极简字段模式)

示例1:Post:man测试验证:(极简字段模式)

示例2:在极简字段模式下追加一些业务需要的字段+多行分录:(Postman json示例)
{
"formId":"SAL_OUTSTOCK",
"data":{
"Model": {
"FBillTypeID": {"FNUMBER": "XSCKD01_SYS"},
"FStockOrgId": {"FNumber": "100"},
"FSaleOrgId": {"FNumber": "100"},
"FCustomerID": {"FNumber": "A"},
"SubHeadEntity": {
"FSettleCurrID": {"FNumber": "PRE007"},
"FSettleOrgID": {"FNumber": "105"}
},
"FEntity":[{
"FMaterialID": {"FNumber": "1.01.001.0001"},
"FRealQty": 1,
"FStockID": {"FNumber": "CK001" }
},
{
"FMaterialID": {"FNumber": "test519Lot"},
"FRealQty": 2,
"FStockID": {"FNumber": "CK001" },
"FLotId":{"FNumber": "001"}
}]
}
}
}
示例2:Postman测试验证(追加业务可能所需字段+多行分录)

示例3:重点 构造Link子单据体数据,自动与上游建立关联关系(Postman json示例)
{
"formId":"SAL_OUTSTOCK",
"data":{
"Model": {
"FBillTypeID": {"FNUMBER": "XSCKD01_SYS"},
"FStockOrgId": {"FNumber": "100"},
"FSaleOrgId": {"FNumber": "100"},
"FCustomerID": {"FN
WebAPI接口之【销售出库单保存/修改接口】使用指南和实例
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



