Моя программа будет заключаться в создании от 100 до 200 новых контактов и обновлении от 1000 до 2000 существующих контактов в рамках ежедневного пакетного задания. Мы переходим на Dynamics CRM из Infusion Soft, где мы использовали метод addWithDupCheck, который либо добавляет, либо обновляет запись контакта на основе соответствующего значения поля. Я знаю, что могу запросить наличие контакта, а затем использовать Create или Update, однако я ищу решение, которое работает с ExecuteMultipleRequest.
Создание и обновление контактов Dynamics CRM
Ответы (2)
Если вы используете 2013, у вас не будет возможности запроса UPSERT, как, к сожалению, в Online 2015 Update 1.
ExecuteMultipleRequest
даст лишь незначительный прирост производительности. Это связано с тем, что содержащиеся в нем запросы обрабатываются сервером последовательно в одном потоке. Ваша единственная выгода — меньше обращений к серверу.
Для CRM 2013 (версия 6) вы можете получить список существующих записей контактов из CRM перед обработкой записей, которые нужно создать или обновить. Запрос менее 5000 записей из CRM не должен быть дорогостоящей или трудоемкой операцией.
В CRM 2015 Update 1 (версия 7.1) добавлен новый полезный параметр, который называется UpsertRequest
. Этот запрос можно использовать для обновления существующей записи или создания новой, если она еще не существует. UpsertRequest
использует альтернативные ключи (они настраиваются), которые в вашем сценарии будут первичными ключами записей контактов в исходной системе. Дополнительную информацию по этой теме можно найти в MSDN.