无法从Microsoft Dynamics CRM WebAPI调用BulkDelete操作

时间:2019-04-23 12:28:14

标签: dynamics-crm odata dynamics-crm-2016 dynamics-crm-webapi

我正在尝试调用内部Microsoft Dynamics CRM 365(2016 / v8.2)实例的WebAPI(OData REST服务)的BulkDelete() Action

就目前而言,我仍处于尝试通过使用Postman来使操作生效的阶段。我正在使用类似以下内容的HTTP POST到类似于https://MY_CRM_SERVER/api/data/v8.2/BulkDelete()的URL:

{
    JobName: "Test Bulk Delete 1",
    QuerySet: [{
        EntityName: "oo_thingstodelete",
        ColumnSet: {
            AllColumns: true
        },
        Distinct: false,
        Criteria: {
            FilterOperator: "And",
            Conditions: [{
                AttributeName: "oo_thingstodeleteid",
                Operator: "Equal",
                Values: [ "296e5e0a-ffe1-e944-80f4-005166811dbb" ]
            }]
        }
    }],
    StartDateTime: "2019-04-18T05:00:00Z",
    ToRecipients: [],
    CCRecipients: [],
    SendEmailNotification: false,
    RecurrencePattern: "",
    RunNow: true
}

此请求正文当前产生错误:

  

发现名称为“”的属性的值节点类型为   'PrimitiveValue';但是,类型的复杂值   “ Microsoft.Dynamics.CRM.Object”是预期的。

据我所知,这是因为“ Values”属性(在QuerySet /条件​​/条件下)需要“ Object ComplexType”的集合。 “ConditionExpression” page of the CRM WebAPI v8中对此进行了记录。

在这一点上,我假设需要为“ Values”属性赋予类似于以下内容的值(而不是简单的字符串值):

Values: [ {  “Value”: "296e5e0a-ffe1-e944-80f4-005166811dbb" }]

但是,如果我使用新的“ Values”属性值发布上述正文,则会收到错误消息:

  

属性“值”在类型上不存在   'Microsoft.Dynamics.CRM.Object'。确保仅使用属性名称   由类型定义的。

这感觉像是进步,但没有告诉我应该使用哪个属性名称。 CRM WebAPI documentation for the “Object ComplexType”没有列出我可以在该对象中使用的任何属性名称,也没有找到有关如何通过WebAPI使用BulkDelete操作的示例代码。

请注意,此请求正文可能还有其他问题。这只是我目前的障碍。

1 个答案:

答案 0 :(得分:1)

对我有用的是在values数组中显式指定项目类型。即:

{{1}}

尽管我有不同版本的CRM(9.1)。