Apex Trggers - проверка предыдущего значения поля при изменении записи

Apex trigger предоставляет замечательную возможность узнать предыдущее значение поля при изменении записи. Часто приходится сталкиваться с необходимостью узнать какое значение содержалось в базе данных при изменении значения конкретного поля в записи или отследить факт изменения поля при попытке сохранить запись в базе данных


Вот небольшой пример как проверить поменялось ли поле email у объекта contact:

 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 текущей обрабатываемой записи.

Комментарии

Популярные сообщения из этого блога

Начало работы, первые шаги, hello world в Salesforce