通过 VBA 使用 Dynamics 365 Web API,我是否必须使用主键来更新记录?

问题描述 投票:0回答:1

我正在使用 Dynamics 365 Web API 和 VBA 来更新特定实体记录。但是,我没有主键 GUID,但我有另一个可以标识唯一记录的其他字段值的组合。有没有办法更改

Request.Resource
行以使用其他字段?

如果我提供特定的主键 GUID,此代码就可以工作,但在需要更新时我将没有 GUID。

Dim crm As New crm
Dim Request As New WebRequest
Dim Response As WebResponse
Dim dict As New Scripting.Dictionary

Request.Resource = "productpricelevels(F01E6888-7643-EE11-BDF4-00224808D9DA)"  
Request.Format = WebFormat.Json
Request.ResponseFormat = Json
Request.Method = WebMethod.HttpPatch

'== field to update
dict.Add "amount", 4

Request.Body = WebHelpers.ConvertToJson(dict)

' Response from query
Set Response = crm.Query(Request)

If Response.StatusCode = WebStatusCode.NoContent Then
    Debug.Print ("Success")
    ...
vba api microsoft-dynamics powerapps webapi
1个回答
0
投票

应该可以通过

alternate keys
实现,您必须自己定义。

  1. 使用唯一的列组合在 Dataverse 中创建密钥
  2. 等待异步作业完成
  3. 参考您的记录

它应该看起来像这样:

Request.Resource = "productpricelevels(name='fish and chips',fishtype='hoki')" 

参考:使用备用键参考记录

© www.soinside.com 2019 - 2024. All rights reserved.