CRM 2011 - ошибка в обновлении плагина - PullRequest
0 голосов
/ 07 июля 2011

У меня есть плагин для Microsoft Dynamics CRM 2011, который запускается при обновлении сущности студента.

Каждая запись студента привязана к записи контакта. На основе имени, фамилии и адреса электронной почты. Поэтому при изменении одного из этих полей при обновлении необходимо создать новую запись контакта, соответствующую ученику.

Затем в анкете учащегося этот новый контакт должен быть заполнен автоматически в поле поиска контакта.

Я написал код, чтобы сделать это, но потом я, когда я пробую service.Update (entity), он не работает.

Спасибо за любую помощь!

1 Ответ

3 голосов
/ 08 июля 2011

Вы зарегистрировали этот плагин для запуска в событии Update объекта Student, правильно?Тогда, скорее всего, вы получите исключение - это жалоба на бесконечный цикл ... потому что вы запускаете другое обновление из вашего обновления .Ваш вызов service.update снова запускает конвейер обновления для данной записи.

Если вы щелкнете ссылку «загрузить файл журнала» в диалоговом окне с сообщением об ошибке CRM, проверьте поля Message и InnerFault.чтобы увидеть, включена ли дополнительная дополнительная информация.

CRM отслеживает глубину стека вызовов во время вызовов плагина и выдает ошибку «бесконечный цикл», если превышен предел глубины.(См. Статьи здесь и здесь .)

Если вам необходимо обновить текущую запись во время обновления, есть несколько обходных путей: либо проверьте глубину стека вызововв начале вашего плагина и ничего не делайте, если оно превышает ожидаемое значение (не идеальное решение, но оно работает), или проверьте наличие (или отсутствие) ожидаемого атрибута и кода соответственно.Например, в вашем сценарии вы можете сравнить атрибут ave_contactid в объекте preMessageImage с объектом postMessageImage.Если это поле находится в процессе изменения, не меняйте его снова в своем плагине.

...