销售订单新变更单WebAPI标准接口和使用说明
随着外部销售订单新变更单的对接需求越来越多,平台通用的Save保存单据接口,对于变更业务场景可能不太适用,由于变更单的数据是原封不动的来自于原始销售订单,如果通过公共保存接口构造出来的变更单数据可能有以下几点问题:
构造单据数据包难度大,构造的字段会非常多,包括与原始订单关联的PKIDX字段
构建单据数据包的准确性要求高,一些字段值更新事件触发带出来的默认值可能与原始订单信息有偏差。
基于以上原因,星空通版产品专门封装了销售订单新变更单WebAPI的标准使用接口来用于变更:
新接口通过两个步骤来完成变更:
通过简单的原始订单的信息如(销售订单单号、销售订单内码、销售订单分录内码集合等),先自动创建好销售订单新变更单单据出来,方便快捷,数据准确性得到保证,跟界面操作订单变更生成的变更单界面是一样的。
在自动生成订单新变更单单据的基础上(得到返回的新变更单内码和分录内码信息),通过使用单据的修改保存接口来进行实际的变更内容处理。
接口说明和示例:
接口名称:SaveXSaleOrder
接口参数:
SaleOrderBillNo:原销售订单编号,
SaleOrderBillId:原销售订单内码FId,
SOEntryIds:原销售订单分录内码集合(数组)--可部分行变更
参数示例:string parm=
"{
\"SaleOrderBillNo\":\"XSDD00888\",
\"SaleOrderBillId\":888888,
\"SOEntryIds\":[888801,888802]
}";
接口Url地址:
http://domain/k3cloud/Kingdee.K3.SCM.WebApi.ServicesStub.SaveXSaleOrderWebApi.SaveXSaleOrder.common.kdsvc
<1>客户端调用示例:
1. 构造登陆信息
string url = "http://domain/k3cloud/Kingdee.bos.webapi.ServicesStub.authservice.validateuser.common.kdsvc";
//站点地址
string dataCenterId ="账套Id";
string userName ="用户名";
string userPwd ="用户密码";
2. 登录校验
var client = new Kingdee.BOS.WebApi.Client.K3CloudApiClient(url);
var ret = client.ValidateLogin(dataCenterId, userName, userPwd, 2052);
var jResult = JObject.Parse(ret);
var resultType = jResult["LoginResultType"].Value<int>();
if (resultType != 1 && resultType != -5) return;
3.构造生成新变更单参数如下:
string parm="{\"SaleOrderBillNo\":\"XSDD000688\",\"SaleOrderBillId\":100827,\"SOEntryIds\":[102803,102804]}";
4.客户端调用生成销售订单新变更单接口:
var result = client.Execute<string>("Kingdee.K3.SCM.WebApi.ServicesStub.SaveXSaleOrderWebApi.SaveXSaleOrder", new object[] { parm });
<2>Postman测试验证:
5.1.先测试登陆接口,http://domain/k3cloud/Kingdee.bos.webapi.ServicesStub.authservice.validateuser.common.kdsvc
body录入json参数:{acctid:'账套Id', userName:'用户名', password:'用户密码', lcid:2052 }
5.2测试创建销售订单新变更单接口
http://domain/k3cloud/Kingdee.K3.SCM.WebApi.ServicesStub.SaveXSaleOrderWebApi.SaveXSaleOrder.common.kdsvc
body录入json参数:
{saveXSaleOrderArgs:{"SaleOrderBillNo":"XSDD000688","SaleOrderBillId":100827,"SOEntryIds":[102803,102804]}}
PostMan测试样例参考:
6.创建生成了销售订单新变更单后,就可以调用修改保存,修改数量、单价等:
6.1保存接口服务器地址:
http://domain/k3cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save.common.kdsvc
body录入json参数:
{"formid": "SAL_XORDER", "data": { "NeedReturnFields": [],
"Model": { "FID": "100169",
"FSaleOrderEntry": [ { "FEntryId": "100227", "FQty": "88" } , { "FEntryId": "100228", "FTaxPrice": "6.666" } ] }
} }
请问我这面调用创建新销售变更单时,接口返回“变更日期”为必填项,请问这个变更日期还需要传吗?如果传递的话,应该怎么传,用哪个字段传递?
销售订单新变跟单扩展过了,还能使用这个接口吗
请问下采购订单新变更单有没有和这个类似的web API接口
楼主用的是星空那个版本啊? 8.0的新变更单保存没有返回id
销售订单新变更单WebAPI标准接口和使用说明
本文2024-09-16 17:16:50发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-14687.html