Apex Trggers - проверка предыдущего значения поля при изменении записи
Apex trigger предоставляет замечательную возможность узнать предыдущее значение поля при изменении записи. Часто приходится сталкиваться с необходимостью узнать какое значение содержалось в базе данных при изменении значения конкретного поля в записи или отследить факт изменения поля при попытке сохранить запись в базе данных
Вот небольшой пример как проверить поменялось ли поле email у объекта contact:
Вся суть заключается в использовании коллекции "старых" объектов Trigger.oldMap, где ключом является Id текущей обрабатываемой записи.
trigger CheckIfEmailFieldWasChanged on Contact (before update) {
for (Contact c : Trigger.new) {
if (c.Email != Trigger.oldMap.get(c.Id).Email) {
system.debug('Email was changed! Current value - '+c.Email+' Previous value - '+Trigger.oldMap.get(c.Id).Email);
}
}
}
Вся суть заключается в использовании коллекции "старых" объектов Trigger.oldMap, где ключом является Id текущей обрабатываемой записи.
Комментарии
Отправить комментарий