Когда я зарегистрирую онлайн-плагин crm 2011 для предварительной проверки? - PullRequest
4 голосов
/ 01 декабря 2011

Я понимаю, что плагин, зарегистрированный для предварительной проверки, выполняется вне транзакции базы данных, но я не уверен, что могу придумать сценарий, когда это будет предпочтительнее предварительной операции. Может кто-нибудь дать мне пример того, где регистрация перед проверкой может быть полезной?

Ответы [ 2 ]

14 голосов
/ 01 декабря 2011

У нас есть несколько плагинов, зарегистрированных на событие «PreValidation», хотя это происходит не в сети, а в помещении.

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

Объект: учетная запись

Событие: Удалить

Логика: Плагин запускает предварительную проверку.Проверяет, что нет контактов, ссылающихся на какой-либо из адресов учетной записи.Если они найдены, остановите выполнение.Если нет, удалите учетную запись.

например,

Учетная запись «Stackoverflow» имеет адрес «Дом Джеффа Этвуда» и контакт «glosrob».«Glosrob» ссылается на «Дом Джеффа Этвуда» через настройку.Если пользователь выбирает удалить «StackOverflow», мы должны обнаружить, что «glosrob» ссылается на адрес и предотвратить удаление.

Причиной этого было то, что разработчик обнаружил, что на этапе PreOperation некоторые аспекты удаленияуже произошло, а именно каскад удаляет.Логика плагина требует, чтобы мы проверяли все контакты - при регистрации в PreOperation контакты под учетной записью уже были удалены, что делает проверку устаревшей.

В нашем предыдущем сценарии, когда пользователь выбрал удаление 'StackOverflow'Учетная запись, контакт' glosrob 'будет удален до запуска плагина.Поэтому, когда плагин все-таки запустится, это позволит удалить.

Как и в большинстве вещей в CRM, все сводится к требованиям и решениям, но я думаю, что это дает вам представление о том, почему / когда вы могли быиспользуйте этап предварительной проверки.У нас есть несколько других с похожими рассуждениями, которые запускают событие «Удалить».

2 голосов
/ 06 апреля 2015

Я знаю, что это очень старый пост, пришел сюда во время поиска ответа на тот же вопрос ... Позже я нашел один ключевой момент из MSDN по той же теме, и я подумал, что будет полезно, если я опубликую информацию здесьдля всех ..

Плагин Prevalidation произойдет до проверки безопасности.Например: если учетная запись является учетной записью «VIP», и вы не хотите, чтобы эта запись учетной записи была удалена (даже если он является суперпользователем / администратором), это может быть лучше при предварительной проверке.Поскольку в то время вы на самом деле не беспокоитесь о том, кто пользователь и какие у него права (даже если у него нет прав на удаление каких-либо записей в системе), CRM пойдет и проверит базу данных на наличие ролей безопасности пользователя.во время предварительной операции, и именно здесь произойдет первое попадание в базу данных ... до того, как оно само по себе, мы можем остановить выполнение плагина на основе наших правил проверки.

Надеюсь, это имеет смысл ...

Спасибо

С уважением, Srikanth

...