Ответ от salesforce.stackexchange.com
В соответствии с Summer 18
Руководством разработчика Apex, 7 новых значений Enum введены в классе System.TriggerOperation.
AFTER_DELETE
AFTER_INSERT
AFTER_UNDELETE
AFTER_UPDATE
BEFORE_DELETE
BEFORE_INSERT
BEFORE_UPDATE
Аналогично, в класс Trigger добавлена новая переменная с именем operationType
, в которой хранится перечисление контекста, в котором она выполняется.
Таким образом, ваш триггер используетКорпус переключателя будет выглядеть так:
trigger AccountTrigger on Account (before delete, before insert, before update,
after delete, after insert, after update) {
switch on Trigger.operationType {
when AFTER_INSERT{
//do after insert stuff
}
when AFTER_UPDATE{
//Do after update stuff
}
}
}
без провала.После того, как блок кода выполняется для> конкретного блока when, оператор switch завершает работу
Оператор switch
Мое добавление
вы также можете сделать следующее
trigger AccountTrigger on Account (before delete, before insert, before update,
after delete, after insert, after update) {
if (Trigger.operationType == TriggerOperation.AFTER_INSERT) {
// do after insert stuff
}
}
И, наконец, очень личное ИМХО - это всего лишь разновидность синтаксического сахара, который не приносит никакой прибыли тем, кто использует хорошую триггерную архитектуру