金蝶云星空——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.其他说明

posted @   shanzm  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
TOP
点击右上角即可分享
微信分享提示