Я был бы очень признателен, если кто-нибудь может помочь мне проверить, включено ли определенное поле в вызов обновления внутри триггера до/после обновления. Большое спасибо.
Salesforce Apex Triggers - Как проверить, включено ли поле в триггер обновления?
Ответ 1
Все поля всегда присутствуют в триггере независимо от того, являются ли они грязными или нет, чтобы определить, было ли изменено определенное поле, вы должны получить предыдущую версию строки, используя карту oldMap
, которая является Map<ID, sObject>
и сравнить значения в старых и новых. Например
trigger CaseOnParticularFieldUpdate on Case (before update) {
for (Case c: Trigger.new) {
Case oldCase = Trigger.oldMap.get(c.ID);
if (c.Field != oldCase.Field) {
// field was updated, do some magic here
}
}
}
Ответ 2
Триггер будет включать все поля этого объекта, для которых он вызывается. Вы можете проверить предыдущее (старое) значение и текущее (новое) значение любого поля в этом объекте и можете сравнить его и выполнить операцию соответственно.
Надеюсь, это поможет вам.