Невозможно вызвать действие BulkDelete из Microsoft Dynamics CRM WebAPI - PullRequest
4 голосов
/ 23 апреля 2019

Я пытаюсь вызвать BulkDelete () Действие WebAPI (служба REST OData) локального экземпляра Microsoft Dynamics CRM 365 (2016 / v8.2).

На данный момент я все еще нахожусь на стадии попытки заставить действие работать с помощью Почтальона. Я выполняю HTTP POST для URL, похожего на https://MY_CRM_SERVER/api/data/v8.2/BulkDelete(), со следующим телом:

{
    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».

Из того, что я могу сказать, это потому, что свойство «Значения» (в QuerySet / Criteria / Condition) ожидает коллекцию «Object ComplexType». Это задокументировано на странице «ConditionExpression» веб-интерфейса CRM v8 .

На данный момент я предполагаю, что свойству «Значения» должно быть присвоено значение, аналогичное следующему (вместо простого строкового значения):

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

Но если я отправлю вышеупомянутое тело с этим новым значением свойства «Значения», я получу ошибку:

Свойство «Значение» не существует для типа 'Microsoft.Dynamics.CRM.Object. Убедитесь, что вы используете только имена свойств которые определяются типом.

Это похоже на прогресс, но оно не говорит мне, какое имя свойства я должен использовать вместо этого. В документации CRM WebAPI для «Object ComplexType» не перечислены имена свойств, которые я могу использовать в этом объекте, и я не нашел пример кода о том, как использовать действие BulkDelete через WebAPI.

Обратите внимание, что могут быть другие проблемы с этим телом запроса. Это просто мой нынешний контрольно-пропускной пункт.

1 Ответ

1 голос
/ 13 мая 2019

Для меня работало явное указание типа элемента в массиве значений. I.E.:

Values: [{"Value":"296e5e0a-ffe1-e944-80f4-005166811dbb","Type":"System.Guid"}]

У меня другая версия CRM (9.1).

...