使用新 Web API 和 JavaScript POST 在 Dynamics CRM 2016 中创建 QuoteProduct

Create QuoteProduct in Dynamics CRM 2016 using new Web API and JavaScript POST

我 运行 在使用新 Web API.

的 Microsoft Dynamics CRM 2016 本地部署新报价产品记录上设置现有产品字段时遇到问题

我正在按照 2016 SDK 文档进行操作,在大多数情况下,我的所有 POST 和 GET 请求都有效。我知道使用 @odata.bind 语法来设置查找,但是,虽然我可以创建一个 Quote Product 实体,使用 GUID 设置父 QuoteId,但无论出于何种原因,POST 都不会在我完成时完成尝试以与 quoteid 相同的方式设置 productid 值。

还有其他人成功过吗?我查看了 CRM 数据库中 QuoteDetail table 的所有值,并尝试将它们设置为与现有记录相同,但一直挂在 productid 上。

感谢您的帮助!

-詹姆斯

这是创建报价产品所需的最小 post 正文:

{
    "productid@odata.bind": "/products(11c0dbad-91df-e311-b8e5-6c3be5a8b200)",
    "quoteid@odata.bind" : "/quotes(69b5e1ae-037f-e611-80ed-fc15b428dcdc)",
    "uomid@odata.bind" : "uoms(73a5daea-6ddc-e311-a678-6c3be5a8c0e8)"
}

这是我正在使用的url:

https://tenantname.api.crm.dynamics.com/api/data/v8.1/quotedetails

请注意,如果您仅使用此 post 邮件正文,您将收到关于缺少数量的错误消息。

正如@Martijin Eikelenboom 在他的回答中指出的那样,当您指定实体类型时,您需要确保在语法中添加复数形式的度量单位; IE: { "uomid@odata.bind" : "/uoms(GUID)" }