Dynamics Web API批处理POST与批处理(删除导航属性值)



我正试图通过将值设置为null来解除对单值导航属性的引用(联系人引用(的关联。

当我直接调用web api时,这是有效的:

PATCH https://mydynamics.crm.dynamics.com/api/data/v9.2/contacts(00000000-0000-0000-0000-000000000000)
{ "firstname": "John",
"lastname":"Doe",
"lookup1@odata.bind": null,
"lookup2@odata.bind": null,
"lookup3@odata.bind": null
}
//[...other data omitted for brevity...]

因此,这些查找字段,查找1,2和3将重置为null(关联被删除(。

我们运行一个同步程序,该程序在批处理中调用这些操作,当它运行时——使用相同的有效负载——查找字段无法重置(尽管如果我修改了firstname或lastname——这些字段会更新(。在这种情况下,这是一个POST批处理调用,只包含一个PATCH操作,但通常包含多个操作。我能找到的所有文档都指出,具有多个操作的PATCH应该是POST调用,但它并没有重置我的查找。

如果我将POST批次更改为PATCH批次。。。然后它按预期工作,所有字段都被正确更新,包括查找!

为什么BATCH POST和PATCH之间有区别?!

  • API中是否存在bug
  • 是因为我只做了一次手术吗在批次中?它适用于多个请求吗?(我没有尝试(
  • 使用PATCH而不是POST对单次操作还是多次操作?假设DELETE操作也在批次中?微软表示;使用POST请求提交包含多个请求的批处理操作。批处理请求可以包括GET请求和更改集">
  • 为什么缺少关于这个主题的文档

感谢您的帮助!

在搜索相关CRM WEB API挑战时阅读您的问题。回复可能有点过期了,但我认为以下是适用于您的情况:

POST、GET、PUT、PATCH和DELETE是HTTP请求类型
  • 在MS CRM上使用PATCH时,您只能编辑单个记录
  • 当您想同时执行多个操作时,您可以使用POST请求来发布一整批不同的请求。这可能包括多个PATCH请求
  • 如何POST一个批次在这里描述得很好:https://learn.microsoft.com/en-us/power-apps/developer/data-platform/webapi/execute-batch-operations-using-web-api

    相关内容

    • 没有找到相关文章

    最新更新