首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何通过API更新PO接收行的PO编号

如何通过API更新PO接收行的PO编号
EN

Stack Overflow用户
提问于 2019-03-22 05:26:25
回答 1查看 655关注 0票数 0

当我调用Acumatica来更新PO收据时,细节行上的PO Number字段没有更新。我只是在做一个PUT到缺省的/17.200.001端点,包括一个详细的行。PUT是成功的,但是响应返回细节行上的空PONbr和POType,并且这些字段不会被更新。这些字段是否出于某种原因而只读?如何解决这个问题或重写它,以便更新这些PO字段?

更新#1 3/22:在下面的响应中,我尝试将这些值放入insert中而不是更新,但现在我得到了一个不同的错误:“Per : Quantity必须大于0”和"PurchaseReceipt.Details.ReceiptQty: Quantity必须大于0“。但是,ReceiptQty是存在的,并且大于0。

更新2 3/22:您应该能够通过非常简单的步骤复制它:

  1. 使用供应商创建PO,默认位置。
  2. 使用InventoryID添加PO行,这将默认行类型和仓库
  3. 输入订单数量
  4. 节省PO
  5. 在Postman中,将类似于我为PO收据提供的JSON放在下面,用参考的库存ID、PO订单Nbr、PO订单类型、行Nbr、PO行Nbr、收据数量、仓库指定一个详细的行
  6. 响应是“PO错误:数量必须大于0”、“PurchaseReceipt.Details.ReceiptQty: Quantity必须大于0”

下面是插入的示例json:

代码语言:javascript
运行
复制
{
    "Date": {
        "value": "2019-03-22T00:00:00-04:00"
    },
    "Details": [
        {
            "InventoryID": {
                "value": "0010006"
            },
            "LineNbr": {
                "value": 1
            },
            "Location": {
                "value": "01P"
            },
            "POLineNbr": {
                "value": 1
            },
            "POOrderNbr": {
                "value": "005554"
            },
            "POOrderType": {
                "value": "RO"
            },
            "ReceiptQty": {
                "value": 5
            },
            "Warehouse": {
                "value": "002"
            }
        }
    ],
    "PostPeriod": {
        "value": "032019"
    },
    "VendorID": {
        "value": "CVS TRADE"
    }
}

更新3 3/24:试图绕过Acumatica强制ReceiptQty到0,我尝试添加一个POReceiptLine_ReceiptQty_CacheAttached处理程序,没有PXDBQuantity、PXDefault和PXFormula属性,以防止它被归零。这给了我一个SQL错误:“‘INTranInTransit_INTransitLineStatus’附近的不正确语法”--不管这意味着什么。

EN

回答 1

Stack Overflow用户

发布于 2019-03-22 13:55:02

逻辑是,当您插入购买收据详细信息行时,如果您指定了有关采购订单的信息,那么该行将以PONbr和POType的形式添加对原始采购订单的引用。

插入行后,通过web服务的行为与屏幕上的行为相同,PONbr和POType是只读字段,不能修改。

在插入过程中,正确插入购买订单行所需的参数是PONbr、POType和POLineNbr。

更新

在某些情况下,由于操作的复杂性,为了覆盖特定的场景,创建了一个特殊的适配器。在这种情况下,将详细信息行添加到购买收据就是这些场景之一。因此,只需要一些特定的值,其余的将从系统中的记录中提取。

我认为在您的情况下,由于采购订单行已经/已经存在于另一份采购收据上,它们的开放数量为0,然后将其作为收据数量的值。不幸的是,这会触发一个错误,因为购买收据中的收据数量不能是0。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55293375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档