You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Postman使用Microsoft Dynamics Web API同时更新发票及发票明细?

在Postman中通过Dynamics Web API批量更新发票与发票明细

核心解决方案:OData批处理请求

Dynamics Web API支持通过**批处理请求(Batch Requests)**在单次API调用中完成多个实体操作(包括更新发票主记录和发票明细),这是实现你需求的标准方式。

步骤1:配置Postman基础请求信息

  • 请求方法:POST
  • 请求URL:[你的Dynamics环境URL]/api/data/v9.2/$batch(替换为实际环境URL,版本号可根据你的环境调整)
  • 请求头:
    • Authorization: Bearer [你的访问令牌](通过OAuth等方式获取)
    • Content-Type: multipart/mixed; boundary=batch_自定义随机字符串(比如batch_abc123,需和请求体中的分隔符一致)

步骤2:构造批处理请求体

请求体采用多部分格式,用你指定的boundary分隔每个子操作。以下是同时更新发票和发票明细的示例:

--batch_abc123
Content-Type: application/http
Content-Transfer-Encoding: binary

PATCH /api/data/v9.2/invoices(12345678-1234-1234-1234-1234567890ab) HTTP/1.1
Content-Type: application/json; charset=utf-8

{
  "name": "更新后的发票标题",
  "totalamount": 1600.00
}

--batch_abc123
Content-Type: application/http
Content-Transfer-Encoding: binary

PATCH /api/data/v9.2/invoicedetails(87654321-4321-4321-4321-ba0987654321) HTTP/1.1
Content-Type: application/json; charset=utf-8

{
  "description": "更新后的明细描述",
  "quantity": 3,
  "priceperunit": 533.33
}

--batch_abc123--

关键说明

  1. 子请求格式:每个子请求是独立的HTTP操作,更新实体使用PATCH方法,替换示例中的实体ID为你要更新的记录ID。
  2. 相对路径:子请求中的URL可以使用相对路径(相对于批处理请求的基础URL),简化写法。
  3. 事务性操作:如果需要确保所有操作要么全成功要么全失败,可将子请求包裹在ChangeSet中,示例如下:
--batch_abc123
Content-Type: multipart/mixed; boundary=changeset_def456

--changeset_def456
Content-Type: application/http
Content-Transfer-Encoding: binary

PATCH /invoices(12345678-1234-1234-1234-1234567890ab) HTTP/1.1
Content-Type: application/json; charset=utf-8

{
  "name": "事务更新发票标题",
  "totalamount": 1600.00
}

--changeset_def456
Content-Type: application/http
Content-Transfer-Encoding: binary

PATCH /invoicedetails(87654321-4321-4321-4321-ba0987654321) HTTP/1.1
Content-Type: application/json; charset=utf-8

{
  "description": "事务更新明细描述",
  "quantity": 3,
  "priceperunit": 533.33
}

--changeset_def456--
--batch_abc123--

为什么odata.bind不适用?

odata.bind的作用是关联现有实体到主实体(比如将新建的发票明细关联到发票),而非更新已关联实体的字段值。因此更新已存在的发票明细需要单独的PATCH请求,通过批处理打包即可实现单次调用完成多操作。


内容的提问来源于stack exchange,提问作者James0419

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 00:30:45