Web Services 动力学365 API版本2:向现有销售订单添加销售行

sc4hvdpw  于 2023-01-05  发布在  其他
关注(0)|答案(1)|浏览(210)

我正尝试使用dynamics 365 business central附带的标准API将销售行添加到现有销售订单。但是,我无法在API请求中找到完成此操作的正确语法。
我试过发布到companies({id})/salesOrderLines端点和companies({id})/salesOrder({id})/salesOrderLines端点,但无论我如何尝试处理我的请求,我总是得到“无效的请求正文”错误。
下面是我发送到companies({id})/salesOrderLines端点的请求示例:
下面是我的请求正文:

[
  {
    "id": "e92c39cb-f552-4d4f-b680-ad7ded2949d0",
    "documentId": "e80573b0-9c8b-ed11-bfba-001dd8b71ee3",
    "lineType": "Item",
    "lineObjectNumber": "H10-110013",
    "quantity": 1
  },
  {
    "id": "e92c39cb-f552-4d4f-b680-ad7ded2949d0",
    "documentId": "e80573b0-9c8b-ed11-bfba-001dd8b71ee3",
    "lineType": "Item",
    "lineObjectNumber": "H10-112117",
    "quantity": 1
  }
]

以下是我得到的回复:
“{“错误”:{“代码”:“请求错误”,“消息”:“请求正文相关ID无效:241 e540 a-5af 5 -4516- 83 f2-fbc 035 f80389 "}}”的电子邮件地址。
我可以使用深度请求同时发布销售订单及其行,但对于较大的订单,它们会达到请求限制,我需要一种分解行的方法。

cx6n0qe3

cx6n0qe31#

salesOrderLines终结点需要一个对象,但不接受集合,因此您在此可以做的最好的事情是在单独的请求中发布每一行。请求正文如下所示:

{
    "lineType": "Item",
    "lineObjectNumber": "H10-110013",
    "quantity": 1
}

id和documentId可以添加到请求中,但实际上不是必需的。
另一种选择是在$batch端点上发送请求,如以下文档所述:https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/webservices/use-odata-batch
开机自检http://bc 21-设备:7048/bc/api/v2.0/$批次

{
    "requests": [
        {
            "method": "POST",
            "url": "http://bc21-dev:7048/bc/api/v2.0/salesOrders(dd3585b3-dd6c-ed11-81b4-6045bd8e5172)/salesOrderLines",
            "headers": {
                "Company": "CRONUS International Ltd.",
                "Content-Type": "application/json"
            },
            "body": {
                "lineType": "Item",
                "lineObjectNumber": "1920-S",
                "quantity": 2,
                "unitPrice": 420.4
            }
        },
        {
            "method": "POST",
            "url": "http://bc21-dev:7048/bc/api/v2.0/salesOrders(dd3585b3-dd6c-ed11-81b4-6045bd8e5172)/salesOrderLines",
            "headers": {
                "Company": "CRONUS International Ltd.",
                "Content-Type": "application/json"
            },
            "body": {
                "lineType": "Item",
                "lineObjectNumber": "1952-W",
                "quantity": 1,
                "unitPrice": 183.12
            }
        }
    ]
}

相关问题