Игнорировать повторяющиеся правила определения в CRM при создании учетной записи в плагине

Я пытаюсь создать учетную запись в плагине Qualification Event. Если я создаю учетную запись с именем, точно совпадающим с именем существующей учетной записи, срабатывает мое правило обнаружения дубликатов и вызывает исключение.

Насколько я понимаю, правила обнаружения дубликатов всегда были предупреждениями, а не ошибками, и по умолчанию вы не получали никаких ошибок или даже уведомлений при запуске из вызова плагина/SDK. Это новое изменение в CRM? Есть ли способ игнорировать правила обнаружения дубликатов из плагина?


person Daryl    schedule 22.08.2016    source источник


Ответы (2)


Это намеренное и, по-видимому, давнее поведение, основанное на документации MSDN Выполнить обнаружение дубликатов (перечислено еще в CRM 2011).

Передайте необязательный параметр обнаружения дубликатов SuppressDuplicateDetection, добавив значение в свойство Parameters запросов сообщений CreateRequest и UpdateRequest. Значение параметра SuppressDuplicateDetection определяет, может ли быть завершена операция Create или Update:

  • true — создать или обновить запись, если найден дубликат.
  • false — не создавать и не обновлять запись, если найден дубликат.

Предполагая, что false является значением по умолчанию, поскольку это логическое значение.

Если для дополнительного параметра обнаружения дубликатов задано значение false и обнаружен дубликат, создается исключение, и запись не создается и не обновляется.

person James Wood    schedule 22.08.2016

По-видимому, вы должны установить dynamic-crm-sdk" rel="nofollow">SupressDuplicateDetection" Атрибут в запросе на создание:

Entity target = new Entity("account");
target["name"] = "I am a clone";
CreateRequest req = new CreateRequest();
req.Target = target;
req["SuppressDuplicateDetection"] = true;
CreateResponse response = (CreateResponse)_service.Execute(req); 
person Daryl    schedule 22.08.2016