Нужна помощь в извлечении идентификатора записи CRM из ответа, предоставленного веб-API Dynamics 365 после пакетной вставки записей - PullRequest
0 голосов
/ 24 апреля 2019

Я вставляю записи, используя операцию пакетной вставки веб-API Dynamics. Я использую метод патча и вставляю на альтернативный ключ. Ответ, который я получаю от CRM: (response.Content), дает идентификатор пакета и альтернативные ключи, которые я вставил. Однако я хотел бы также получить GUID вставленных записей. Есть ли способ прочитать GUID вставленных записей в самом ответе. Использование другого запроса для получения идентификаторов GUID будет дорогостоящим, так как мне нужно вставить миллионы записей.

Я пытался использовать response.Content для чтения ответа, но, как уже упоминалось выше, он не включал GUID. Я также попытался запустить другой запрос для получения идентификаторов GUID указанных альтернативных ключей. Это занимает много времени. Кроме того, я попытался сгенерировать GUID во время вставки (следовательно, устранить необходимость их захвата в ответе), но клиент не хочет использовать этот метод.

// Вот как я читаю ответ

HttpResponseMessage response = httpClient.SendAsync(request).Result;
var strCttResponse = await response.Content.ReadAsStringAsync();

// Пожалуйста, смотрите описание ожидаемого и фактического результата

// Ниже приведен пример ответа (только для одной записи). Как вы видете // он имеет только альтернативный ключ и идентификатор пакета.

--batchresponse_63bdc6fd-90f2-4a2b-b11d-ba4cc1d122f4
Content-Type: multipart/mixed; boundary=changesetresponse_ac69e917-8cf9-4ee8-8d4c-9d525ae6f4c3

--changesetresponse_ac69e917-8cf9-4ee8-8d4c-9d525ae6f4c3
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: 1

HTTP/1.1 204 No Content
OData-Version: 4.0
Location: https://<URL>/api/data/v9.1/contacts(new_altkey_contact='46236')
OData-EntityId: https://<URL>/api/data/v9.1/contacts(new_altkey_contact='46236')

// --------------------------------------------- -----------------------------

Результат, который я ищу, должен также возвращать GUID вставленных записей. Что-то вроде:

 Batch Id

 https://<URL>/api/data/v9.1/contacts(new_altkey_contact='altkey')

 GUID of the record

1 Ответ

0 голосов
/ 04 мая 2019

Можете ли вы проверить Ответ для отдельного создания вне Пакета. Из того, что я видел, вы также должны получить AlternateKey Back. Вы также можете спросить Microsoft, действительно ли это предусмотрено. Есть ли особая причина, по которой вам нужен GUID обратно? Да, альтернативный ключ работает медленнее, потому что CRM требует внутреннего запроса GUID, но это не должно оказывать никакого влияния, кроме больших импортов данных, например, для начальной миграции данных

...