金蝶云星空——WebApi创建采购订单新变更单
0.背景
- 采购订单新变更单,不是通过下推创建的,而是通过业务操作-->修改变更 进行创建的
- 注意:若是采购订单中:业务查询按钮下没有:变更查询,则需要到“采购管理系统参数”中将“启用变更查询”勾选
- 采购订单新变更单是数据字段是和采购订单一样的,所以在界面的操作也是由采购订单将数据带入到采购订单新变更单,从而创建采购订单新变更单
- 在金蝶云星空的标准接口文档中是没有相关的通过采购订单创建采购订单新变更单
- 注:采购订单中的下推接口创建的是采购订单变更单,和采购订单新变更单是不一样的
- 提单金蝶总部,目前没有相关接口,短期也没有立项开发的计划,目前应该是只能将采购订单中的数据查出来,并赋值到采购订单新变更单
1.从采购订单查询相关的数据
- 接口:采购订单单据查询(JSON参数)
- 参数格式
{
"FormId": "PUR_PurchaseOrder",
"FieldKeys": "FBillTypeID.FNumber,Fid,FVersionNo,FBillNo,FDate,FSupplierId.FNumber,FPurchaseDeptId.FNumber,F_SZAC_SQR.FSTAFFNUMBER,FPurchaserId.FNumber,FPOOrderFinance_FEntryId,FPayConditionId.FNumber,FSettleCurrId.FNumber,FExchangeTypeId.FNumber,FLocalCurrId.FNumber,FExchangeRate,FPOOrderEntry_FentryID,FPOOrderEntry_FSeq,FMaterialId.FNumber,FQty,FDeliveryDate,FTaxPrice,FSrcBillNo,FSrcBillTypeId,FPOOrderEntry_Link_FRuleId,FPOOrderEntry_Link_FSTableName,FPOOrderEntry_Link_FSBillId ,FPOOrderEntry_Link_FSId ,FPOOrderEntry_Link_FBaseUnitQtyOld,FPOOrderEntry_Link_FBaseUnitQty,FPOOrderEntry_Link_FStockBaseQtyOld,FPOOrderEntry_Link_FStockBaseQty,FEntryDiscountRate,FEntryTaxRate,FEntrySettleOrgId.FNumber,FGiveAway,FIinstallment_FEntryid,FSUBORGID.FNumber",
"FilterString": [
{
"Left": "",
"FieldName": "FBillNo",
"Compare": "67",
"Value": "WXPO0000000441",
"Right": "",
"Logic": 0
}
],
"OrderString": "",
"TopRowCount": 0,
"StartRow": 0,
"Limit": 2000,
"SubSystemId": ""
}
- 返回值格式
[
{
"FBillTypeID.FNumber": "CGDD02_SYS",
"Fid": 105696,
"FVersionNo": "002",
"FBillNo": "WXPO0000000441",
"FDate": "2024-10-22T00:00:00",
"FSupplierId.FNumber": "100069",
"FPurchaseDeptId.FNumber": "A170200",
"FPurchaserId.FNumber": "69000772",
"FPOOrderFinance.FEntryId": 105682,
"FPayConditionId.FNumber": "YJ60",
"FSettleCurrId.FNumber": "PRE001",
"FExchangeTypeId.FNumber": "HLTX01_SYS",
"FLocalCurrId.FNumber": "PRE001",
"FExchangeRate": 1,
"FPOOrderEntry.FentryID": 110994,
"FPOOrderEntry.FSeq": 1,
"FMaterialId.FNumber": "C02020100105",
"FQty": 148,
"FDeliveryDate": "2024-10-23T00:00:00",
"FTaxPrice": 18.83,
"FSrcBillNo": "WXPR20000403",
"FSrcBillTypeId": "SUB_SUBREQORDER",
"FPOOrderEntry.Link.FRuleId": "PUR_SUBREQORDER-PurchaseOrder",
"FPOOrderEntry.Link.FSTableName": "T_SUB_REQORDERENTRY",
"FPOOrderEntry.Link.FSBillId": "102731",
"FPOOrderEntry.Link.FSId": "103209",
"FPOOrderEntry.Link.FBaseUnitQtyOld": 150,
"FPOOrderEntry.Link.FBaseUnitQty": 148,
"FPOOrderEntry.Link.FStockBaseQtyOld": 0,
"FPOOrderEntry.Link.FStockBaseQty": 148,
"FEntryDiscountRate": 0,
"FEntryTaxRate": 13,
"FEntrySettleOrgId.FNumber": "100",
"FGiveAway": false,
"FIinstallment.FEntryid": 106012,
"FSUBORGID.FNumber": "100"
}
]
- 这个查询的FieldKeys中添加一些我们自定义字段
{
"FormId": "PUR_PurchaseOrder",
"FieldKeys": "FBillTypeID.FNumber,Fid,FVersionNo,FBillNo,FDate,FSupplierId.FNumber,FPurchaseDeptId.FNumber,F_SZAC_SFTDYZ,F_SZAC_GYSFK,F_SZAC_SYGYSMH_1,F_SZAC_BZ,F_SZAC_SQYY,F_SZAC_SQR.FSTAFFNUMBER,FPurchaserId.FNumber,FPOOrderFinance_FEntryId,FPayConditionId.FNumber,FSettleCurrId.FNumber,FExchangeTypeId.FNumber,FLocalCurrId.FNumber,FExchangeRate,FPOOrderEntry_FentryID,FPOOrderEntry_FSeq,FMaterialId.FNumber,FQty,FDeliveryDate,FTaxPrice,FSrcBillNo,FSrcBillTypeId,FPOOrderEntry_Link_FRuleId,FPOOrderEntry_Link_FSTableName,FPOOrderEntry_Link_FSBillId ,FPOOrderEntry_Link_FSId ,FPOOrderEntry_Link_FBaseUnitQtyOld,FPOOrderEntry_Link_FBaseUnitQty,FPOOrderEntry_Link_FStockBaseQtyOld,FPOOrderEntry_Link_FStockBaseQty,FEntryDiscountRate,FEntryTaxRate,FEntrySettleOrgId.FNumber,FGiveAway,FIinstallment_FEntryid,FSUBORGID.FNumber",
"FilterString": [
{
"Left": "",
"FieldName": "FBillNo",
"Compare": "67",
"Value": "WXPO0000000441",
"Right": "",
"Logic": 0
}
],
"OrderString": "",
"TopRowCount": 0,
"StartRow": 0,
"Limit": 2000,
"SubSystemId": ""
}
- 返回值格式
[
{
"FBillTypeID.FNumber": "CGDD02_SYS",
"Fid": 105696,
"FVersionNo": "003",
"FBillNo": "WXPO0000000441",
"FDate": "2024-10-22T00:00:00",
"FSupplierId.FNumber": "100069",
"FPurchaseDeptId.FNumber": "A170200",
"F.SZAC.SFTDYZ": " ",
"F.SZAC.GYSFK": "B",
"F.SZAC.SYGYSMH.1": "True",
"F.SZAC.BZ": " ",
"F.SZAC.SQYY": "正常量产需求",
"F.SZAC.SQR.FSTAFFNUMBER": null,
"FPurchaserId.FNumber": null,
"FPOOrderFinance.FEntryId": 105682,
"FPayConditionId.FNumber": "YJ60",
"FSettleCurrId.FNumber": "PRE001",
"FExchangeTypeId.FNumber": "HLTX01_SYS",
"FLocalCurrId.FNumber": "PRE001",
"FExchangeRate": 1,
"FPOOrderEntry.FentryID": 110994,
"FPOOrderEntry.FSeq": 1,
"FMaterialId.FNumber": "C02020100105",
"FQty": 148,
"FDeliveryDate": "2024-10-23T00:00:00",
"FTaxPrice": 18.83,
"FSrcBillNo": "WXPR20000403",
"FSrcBillTypeId": "SUB_SUBREQORDER",
"FPOOrderEntry.Link.FRuleId": "PUR_SUBREQORDER-PurchaseOrder",
"FPOOrderEntry.Link.FSTableName": "T_SUB_REQORDERENTRY",
"FPOOrderEntry.Link.FSBillId": "102731",
"FPOOrderEntry.Link.FSId": "103209",
"FPOOrderEntry.Link.FBaseUnitQtyOld": 150,
"FPOOrderEntry.Link.FBaseUnitQty": 148,
"FPOOrderEntry.Link.FStockBaseQtyOld": 0,
"FPOOrderEntry.Link.FStockBaseQty": 148,
"FEntryDiscountRate": 0,
"FEntryTaxRate": 13,
"FEntrySettleOrgId.FNumber": "100",
"FGiveAway": false,
"FIinstallment.FEntryid": 106012,
"FSUBORGID.FNumber": "100"
}
]
- 注意细节:返回的字段中的下划线被替换成了点,比如:查询的字段"F_SZAC_SYGYSMH_1",返回的JSON中的Key是"F.SZAC.SYGYSMH.1"
2. 创建 采购订单新变更单 的JSON格式参数
{
"Model": {
"FID": 0,
"FBillTypeID": {
"FNumber": "CGDD02_SYS"
},
"FPKIDX_H": 105696,
"FVersionNo": "003",
"FBillNo": "WXPO0000000441_V003",
"FDate": "2024-10-22 00:00:00",
"FPurchaseOrgId": {
"FNumber": "100"
},
"FSupplierId": {
"FNumber": "100069"
},
"FPurchaseDeptId": {
"FNumber": "A170200"
},
"FPurchaserId": {
"FNumber": "69000772"
},
"FChangeReason": "测试2024年11月20日14:50:40",
"FPOOrderFinance": {
"FPKIdX_F": 105682,
"FPayConditionId": {
"FNumber": "YJ60"
},
"FSettleCurrId": {
"FNumber": "PRE001"
},
"FExchangeTypeId": {
"FNumber": "HLTX01_SYS"
},
"FLocalCurrId": {
"FNumber": "PRE001"
},
"FExchangeRate": 1
},
"FPOOrderEntry": [
{
"FPKIDX": 110994,
"FCHANGETYPE": "C",
"FMaterialId": {
"FNumber": "C02020100105"
},
"FQtyX": 148,
"FQty": 148,
"FDeliveryDate": "2024-10-23 00:00:00",
"FTaxPriceX": 18.83,
"FTaxPrice": 18.83,
"FSrcBillNo": "WXPR20000403",
"FSrcBillTypeId": "SUB_SUBREQORDER",
"FPOOrderEntry_Link": [
{
"FPOOrderEntry_Link_FRuleId": "PUR_SUBREQORDER-PurchaseOrder",
"FPOOrderEntry_Link_FSTableName": "T_SUB_REQORDERENTRY",
"FPOOrderEntry_Link_FSBillId": "102731",
"FPOOrderEntry_Link_FSId": "103209",
"FPOOrderEntry_Link_FBaseUnitQtyOld": 150,
"FPOOrderEntry_Link_FBaseUnitQty": 148,
"FPOOrderEntry_Link_FStockBaseQtyOld": 0,
"FPOOrderEntry_Link_FStockBaseQty": 148
}
],
"FEntryDiscountRate": 0,
"FEntryTaxRate": 13,
"FRequireOrgId": {
"FNumber": "100"
},
"FReceiveOrgId": {
"FNumber": "100"
},
"FEntrySettleOrgId": {
"FNumber": "100"
},
"FSUBORGID": {
"FNumber": "100"
},
"FGiveAway": "False"
}
],
"FIinstallment": [
{
"FENTRYID": 0,
"FPKIDX_R": 106012
}
]
}
}
- 注意细节:社区中给的参考的JSON格式的参数中,没有"FSUBORGID"(委外组织)这个参数,这里必须加上,否则报错:采购订单新变更单,第1行分录,业务类型为委外时,结算组织必须与上游委外订单的委外组织一致
3.关于新变更单未生效版本的查询
- 使用接口创建采购订单新变更单的时候,会出现报错:““FBillNo”:违反字段唯一性要求:编码唯一。[WXPO0000000433_V001]在当前系统中已经被使用。”
- 所以可以在创建前查询一下版本,是否存在未生效版本
{
"FormId": "PUR_POXChange",
"FieldKeys": "FBillNo,FVersionNo,FIsActive,FDocumentStatus",
"FilterString": [{"Left":"","FieldName":"FBillNo","Compare":"17","Value":"WXPO0000000441","Right":"","Logic":0}],
"OrderString": "FVersionNo DESC",
"TopRowCount": 0,
"StartRow": 0,
"Limit": 2000,
"SubSystemId": ""
}
接口返回信息
[
{
"FBillNo": "WXPO0000000441_V004",
"FVersionNo": "004",
"FIsActive": "A",
"FDocumentStatus": "C"
},
{
"FBillNo": "WXPO0000000441_V003",
"FVersionNo": "003",
"FIsActive": "B",
"FDocumentStatus": "C"
},
{
"FBillNo": "WXPO0000000441_V002",
"FVersionNo": "002",
"FIsActive": "B",
"FDocumentStatus": "C"
},
{
"FBillNo": "WXPO0000000441_V001",
"FVersionNo": "001",
"FIsActive": "B",
"FDocumentStatus": "C"
}
]
4.其他说明
-
销售订单新变更单和上述同理,但是金蝶官方给出了通过销售订单创建销售订单新变更单的接口
-
参考:
标签:
金蝶云星空
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)