Dynamics CRM Web API Добавить маркетинговый список в кампанию "" Невозможно установить связь между объектом типа кампания и объектом списка типа. "" - PullRequest
1 голос
/ 09 апреля 2019

Я получаю сообщение об ошибке: «Невозможно выполнить связь между объектом типа кампания и объектом списка типа». когда я пытаюсь использовать Dynamics CRM Online Web API для установления связи между кампанией и списком маркетинга.

Я использую V9.0 API

Подход 1: глубокая вставка

POST: {{}} webapiurl кампании

Body:

 {
    "name": "test 2",

    "campaignlist_association": [

    {
        "listname":"test3", 
        "createdfromcode":2
    }

]

}

Ответ: {

"ошибка": { «код»: «0x80040203»,

«message»: «Невозможно установить связь между объектом типа кампания и объектом списка типа.», "innererror": { «message»: «Невозможно установить связь между объектом типа кампания и объектом списка типа.», "type": "Microsoft.Dynamics.Solution.Common.CrmNotSupportedException", } } }

Подход 2: Ассоциация СООБЩЕНИЕ: ... / кампании (000000000xxxxxx) / campaignlist_association / $ исх

Body:

{  
"@odata.id":"{{webapiurl}}/lists(11111111xxxxxxxx)"  
}

Ответ:

{ "ошибка": { «код»: «0x80040203»,

"message": "Невозможно установить связь между объектом типа кампания и объектом списка типа.",

"innererror": { «message»: «Невозможно установить связь между объектом типа кампания и объектом списка типа.», "type": "Microsoft.Dynamics.Solution.Common.CrmNotSupportedException", } } }

Результаты Оба подхода выдают одно и то же сообщение об ошибке: «Невозможно выполнить связь между объектом типа кампания и объектом списка типа». Однако, когда я связываю их в пользовательском интерфейсе Dynamics CRM и запрашиваю кампании, я точно вижу список, назначенный кампании, если я раскрываю свойство "campaignlist_association" через веб-интерфейс API.

1 Ответ

1 голос
/ 09 апреля 2019

Многие родные отношения N-N требуют вызова действия вместо запроса POST на сопоставление нескольких записей. Вы можете проверить список доступных действий Web API «из коробки» здесь

В вашем конкретном случае вам нужно вызвать Microsoft.Dynamics.CRM.AddItemCampaign действие в запросе POST, например:

URL:

[Organization URI]/lists(YourMarketingListGUID)/Microsoft.Dynamics.CRM.AddItemCampaign

Кузов:

{
    "Campaign": {
        "campaignid": "YourCampaignGUID"
    }
}
...