Почему не удается выполнить глубокую вставку при попытке создать объекты «Контакт» и «Учетная запись» через соединение в Dynamics WebAPI - PullRequest
0 голосов
/ 20 февраля 2019

Мне удалось создать контакт в Dynamics WebAPI, используя полезную нагрузку, подобную этой ...

{ 
     "firstname": "asd",
     "lastname": "asd"
}

Мне удалось создать учетную запись в Dynamics WebAPI, используя полезную нагрузку, подобную этой...

{
    "name":"SOLE TRADER ORG",
    "emailaddress1":"otbpostman1@post.com",
    "telephone1":"07188888"
}

и сущность Соединение между ними следующим образом ...

{
    "record1roleid@odata.bind":"/connectionroles(1EB54AB1-58B7-4D14-BF39-4F3E402616E8)",
    "record2roleid@odata.bind":"/connectionroles(35A23B91-EC62-41EA-B5E5-C59B689FF0B4)",
    "record1id_contact@odata.bind":"/contacts(645f6455-8f1d-e911-a847-000d3ab4f534)", 
    "record2id_account@odata.bind":"/accounts(233cf761-8f1d-e911-a847-000d3ab4f534)"
}

Согласно этой странице Я должен быть в состоянии сделатьГлубоко вставляя, где я могу атомарно создать все три в одном запросе, я попробовал следующее ...

{
    "record1roleid@odata.bind":"/connectionroles(1EB54AB1-58B7-4D14-BF39-4F3E402616E8)",
    "record2roleid@odata.bind":"/connectionroles(35A23B91-EC62-41EA-B5E5-C59B689FF0B4)",
    "record1id_contact": { 
      "firstname": "asd",
      "lastname": "asd"
    }, 
    "record2id_account": {
      "name":"SOLE TRADER ORG",
      "emailaddress1":"otbpostman1@post.com",
      "telephone1":"07188888"
    }
}

... а также кучу вариантов вокруг этого, но безуспешно.Я получаю сообщения об ошибках типа ...

"code": "0x80048210", "message": "Оба подключенных объекта отсутствуют."

Имею ли япропустили какую-то ключевую функцию, которая означает, что это возможно или невозможно?

1 Ответ

0 голосов
/ 21 февраля 2019

Я думаю, что record2id_account ожидает guid, так что он не будет работать,

, как говорит страница, на которую вы ссылаетесь, они делают это по возможности, они используют

"Возможность создается, потому что онаопределяется как объект в массиве, для которого установлено значение коллекционного значения навигационного свойства возможностей_customer_accounts ."

для контактов, я могу предположить, что это contact_customer_accounts и contact_customer_contacts может быть?

это, мы надеемся, создаст все сразу, но как связать это соединениедругая проблема.

без тестирования, что-то вроде этого может работать:

{
"record1roleid@odata.bind":"/connectionroles(1EB54AB1-58B7-4D14-BF39-4F3E402616E8)",
"record2roleid@odata.bind":"/connectionroles(35A23B91-EC62-41EA-B5E5-C59B689FF0B4)",
"record1id_contact": { 
 "contact_customer_contacts":
   [
   {
  "firstname": "asd",
  "lastname": "asd"
   }
   ]
}, 
"record2id_account": {
"contact_customer_accounts":
   [
   {
  "name": "SOLE TRADER",
  "emailaddress1":"otbpostman1@post.com",
  "telephone1":"07188888"
   }
   ]
}
}
...