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": {"FNumber": "A"},
"SubHeadEntity": {
"FSettleCurrID": {"FNumber": "PRE001"},
"FSettleOrgID": {"FNumber": "100"}
},
"FEntity":[{
"FMaterialID": {"FNumber": "1.01.001.0001"},
"FRealQty": 1,
"FStockID": {"FNumber": "CK001" },
"FSRCTYPE": "SAL_SaleOrder",
"FSRCBILLNO": "XSDD000772",
"FSoorDerno":"XSDD000772",
"FSOEntryId":"101634",
"FEntity_Link ": [{
"FEntity_Link_FRULEID": "SaleOrder-OutStock",
"FEntity_Link_FSTABLENAME ": "T_SAL_ORDERENTRY",
"FEntity_Link_FSBILLID ": "101034",
"FEntity_Link_FSID": "101634",
"FEntity_Link_FBaseUnitQty" :"10",
"FEntity_Link_FBaseUnitQtyOld" :"10",
"FEntity_Link_FSalBaseQty" : "10",
"FEntity_Link_FSalBaseQtyOld" : "10",
"FEntity_Link_FPriceBaseQty" : "10",
"FEntity_Link_FPriceBaseQtyOld" : "10"
}]
}]
}
}
示例3:Postman测试验证(重点 构造Link子单据体数据,自动与上游建立关联关系)
【修改保存】
*****【重点】**************************【Model字段构造】*****************************【重点】*****
原则:
1.修改保存时,除了构造主键FID、分录主键FEntryId 以及需要修改的字段外,不要构造其他多余字段
2.修改保存时,注意IsDeleteEntry参数非常重要,且默认为true,需小心使用。如为true,则原分录行的FEntryId未在分录json出现的行,将会被删除 (如无需删除分录行,需将参数值改为fasle 或者 json里面传入对应行的FEntryId值)
修改保存示例:
{
"formId":"SAL_OUTSTOCK",
"data":{
"IsDeleteEntry":"false",
"Model": {
"FId": "100750",
"FEntity": [
{
"FEntryId":"101172",
"FQty":"5"
}
]
}
}
}
【修改保存 PostMan测试验证】
小技巧:Webapi数据包字段的查询和构造格式参考:
【相关链接】
浅谈通过WebAPI实现金蝶云单据对接的那些事[持续更新完善]https://vip.kingdee.com/article/11179
WebAPI接口之【销售订单保存/修改接口】使用指南和实例 https://vip.kingdee.com/article/509455783696820480
WebAPI接口之【销售出库单保存/修改接口】使用指南和实例
本文2024-09-23 02:47:13发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-154693.html
- 2024-2025年人大线新年度初始化实施指导手册.docx
- 2024-2025年人大线新年度初始化实施方案解析.mp4
- 2024-2025年人大线新年度初始化方案解析 .pptx
- A++财务(高校)年结资料-2024-2025年财务年结工作指导手册(教育财智云870).docx
- A++财务(高校)年结资料-2024-2025年财务年结工作指导手册(高校831&832).docx
- 大社保年结资料-2024-2025大社保年结培训解析.mp4
- 大社保年结资料-医保基金年结操作说明(2024-2025).docx
- 大社保年结资料-人社社保年结操作说明(2024-2025).docx
- 大社保年结资料-财政社保年结操作说明(2024-2025).docx
- 大社保年结资料-2024-2025大社保产品线年结方案解析.pptx