У нас есть несколько плагинов, зарегистрированных на событие «PreValidation», хотя это происходит не в сети, а в помещении.
Я сам не писал эти конкретные плагины, но могу описать один и дать обоснование для использованияPreValidation ', а не' PreOperation '.
Объект: учетная запись
Событие: Удалить
Логика: Плагин запускает предварительную проверку.Проверяет, что нет контактов, ссылающихся на какой-либо из адресов учетной записи.Если они найдены, остановите выполнение.Если нет, удалите учетную запись.
например,
Учетная запись «Stackoverflow» имеет адрес «Дом Джеффа Этвуда» и контакт «glosrob».«Glosrob» ссылается на «Дом Джеффа Этвуда» через настройку.Если пользователь выбирает удалить «StackOverflow», мы должны обнаружить, что «glosrob» ссылается на адрес и предотвратить удаление.
Причиной этого было то, что разработчик обнаружил, что на этапе PreOperation некоторые аспекты удаленияуже произошло, а именно каскад удаляет.Логика плагина требует, чтобы мы проверяли все контакты - при регистрации в PreOperation контакты под учетной записью уже были удалены, что делает проверку устаревшей.
В нашем предыдущем сценарии, когда пользователь выбрал удаление 'StackOverflow'Учетная запись, контакт' glosrob 'будет удален до запуска плагина.Поэтому, когда плагин все-таки запустится, это позволит удалить.
Как и в большинстве вещей в CRM, все сводится к требованиям и решениям, но я думаю, что это дает вам представление о том, почему / когда вы могли быиспользуйте этап предварительной проверки.У нас есть несколько других с похожими рассуждениями, которые запускают событие «Удалить».