【问题标题】:Acumatica REST API - Delete SalesOrderDetailAcumatica REST API - 删除 SalesOrderDetail
【发布时间】:2019-02-23 05:10:39
【问题描述】:

我正在尝试使用 REST API 删除特定的 SalesOrderDetail 记录(从 id 值)。

我看不到使用默认 API 的方法。我已经尝试自定义 Web 服务端点来为 SalesOrderDetail 创建一个顶级实体,以便我可以对它使用 DELETE 方法,但它似乎不起作用。

我还尝试向 SalesOrder 端点添加一个操作,该操作可以让我删除详细信息中的一行,但我无法使用该操作,而且我不确定如何访问它。

有谁知道如何做到这一点?

【问题讨论】:

  • Ethan,如果您的问题与您编写的代码有关,您应该包括一些。包含足够的代码以允许其他人重现该问题。请看How to create a Minimal, Complete, and Verifiable example
  • @abestrad 任何代码都没有问题(目前)。我的问题是关于使用什么端点,或者如何在 Acumatica REST API 中设置自定义端点来删除记录。

标签: rest api acumatica


【解决方案1】:

你可以通过设置detail实体的delete属性为true来删除一个item的detail行。这可以通过任何端点完成,方法如下:

首先检索包含您要删除的详细信息的记录:

GET : https://localhost/MyStoreInstance/entity/Default/18.200.001/SalesOrder?$expand=Details&$select=OrderNbr,OrderType,Details/InventoryID,Details/ WarehouseID&$filter=OrderType eq 'SO' 和 CustomerOrder eq 'SO248-563-06'

你应该得到类似的结果:

[
    {
        "id": "c52bd7ac-c715-4ce3-8565-50463570b7d9",
        "rowNumber": 1,
        "note": "",
        "CustomerOrder": {
        "value": "SO248-563-06"
        },
        "Details": 
        [
            {
                "id": "988988a5-3bc0-4645-a884-8a9ba6a400b4",
                "rowNumber": 1,
                "note": "",
                "InventoryID": {
                "value": "AALEGO500"},
                "WarehouseID": {"value": "MAIN"},
                "custom": {},
                "files": []
            },
            {
                "id": "983f9831-b139-489c-8ad0-86d50f6e535d",
                "rowNumber": 2,
                "note": "",
                "InventoryID": {"value": "CONTABLE1"},
                "WarehouseID": {"value": "MAIN"},
                "custom": {},
                "files": []
            },
            {
                "id": "19193380-63b2-445c-a50b-fd6d57f176a0",
                "rowNumber": 3,
                "note": "",
                "InventoryID": {"value": "CONGRILL"},
                "WarehouseID": {"value": "MAIN"},
                "custom": {},
                "files": []
            }
        ],
        "OrderNbr": {"value": "000003"},
        "OrderType": {"value": "SO"},
        "custom": {},
        "files": []
    }
]

然后您可以使用以下正文重新发送 PUT 请求,以删除相应的详细信息行

{
    "OrderType":{"value":"SO"},
    "OrderNbr":{"value":"000003"},
    "Hold":{"value":false},
    "Details":
    [
        {
            "id":"19193380-63b2-445c-a50b-fd6d57f176a0",
            "delete":true
        }
    ]
}

【讨论】:

  • 对此进行了测试,它可以工作。这正是我一直在寻找的。我不知道“删除”属性。谢谢。
  • 如何将文件添加到行项目。
  • @AnshuKumar 我认为这应该是另一个问题,因为这与这里的主题无关
  • @samol518 我为此创建了一个新问题。这是相同的链接。 stackoverflow.com/questions/55137176/…
  • 这个答案很有帮助,因为我们能够将删除添加到所有行,作为一个请求发送,将它们全部删除,而无需逐个迭代和删除每个细节项。 (1 个请求而不是 12+)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多