WebApi对接销售订单新变更单简介
销售订单新变更单的元数据是从销售订单继承的,为了在生效时同步数据到销售订单上,销售订单变更单就要记录要变更哪个销售订单的信息,这些信息是应用于所有单据头,子单据头,单据体和子单据体的。销售订单新变更单里面最重要的设计就是通过PKIDX属性关联销售订单,因此变更单上所有单据头/子单据头,单据体/子单据体都有一个PKIDX,其它二开的单据体也要应用这种设计,元数据继承关系图及PKID属性设计如下图1-1所示:
图1-1
BOS提供的单据保存操作WebApi接口应用于普通单据是非常适合,但是变更单非常复杂的,如果使用BOS平台的WebApi单据保存接口,则必须将要变更的销售订单上的绝大多数字段值应用到销售变更单上,另外在销售订单新变更单上还要构建正确的PKIDX值并且要确保 SettleCurrIdX 之类的字段要有值(FSettleCurrIdX字段如果没有值,则在变更生效时可能会报错,因为这个值对于变更下游单据的单价时是必录的),这样一来就会导致销售订单新变更单JSON值非常复杂。BOS平台WebApi数据包如下图1-2所示:
图1-2
从2021年的补丁开始,供应链领域提供了一个全新的销售订单新变更单WebApi保存接口,此接口只需要传入销售订单单据编号,销售订单内码,明细信息内码即可。接口会根据这些值自动生成销售订单新变更单并能确保其它一些字段值和销售订单相同,PKIDX和FSettleCurrIdX也能确保正确,下面将使用WPF程序演示如果对接此WebApi接口,先看下效果。图2-1展示了原始销售订单(要变更的销售订单),WPF程序(文章最后有源代码附件)中配置有星空服务Url,账套ID,第三方应用程序相关信息(关于如何创建第三方应用程序可参阅:https://vip.kingdee.com/knowledge/specialDetail/229961573895771136?category=229963554177453824&id=298030366575393024&productLineId=1 )及WebApi操作类型和单据名称,'Create XOrder'按钮使用供应链领域添加的销售订单新变更单WebApi接口生成变更单据。
图2-1
上图2-1如果销售订单新变更单保存成功,就可以使用BOS平台的WebApi中的Save接口去修改变更单(此时的修改只需要传入内码及要修改的字段值,比如要修改数量或单价,则只用传入FEntryId,FQty,FPrice即可,它会自动计算其它相关数量及金额之类的),下图2-2为修改数量及添加一行物料示意图:
图2-2
下图2-3为保存后最终生成的销售订单新变更单:
图2-3
下图2-4,图2-5,图2-6分别为WPF程序通过WebApi提交,审核及生效销售订单新变更单:
图2-4
图2-5
图2-6
下图3-1为变更生效后的销售订单及销售订单新变更单:
图3-1
以下为源代码附件,源代码中有很多注释语句解释关键代码。
WebApi对接销售订单新变更单简介
本文2024-09-23 02:47:23发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-154715.html