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

Триггер будет включать все поля этого объекта, для которых он вызывается. Вы можете проверить предыдущее (старое) значение и текущее (новое) значение любого поля в этом объекте и можете сравнить его и выполнить операцию соответственно.

Надеюсь, это поможет вам.