Как использовать enam System.TriggerOperation? - PullRequest
0 голосов
/ 10 июня 2018

В Salesforce появилась новая функция, которая позволяет использовать TriggerOperation enum.Я не могу найти ни одного примера, как использовать этот подход по сравнению с традиционным триггером.Например, как я могу заменить этот код:

trigger TriggerName on ObjectName (before delete, before insert, before update,
                                   after delete, after insert, after update) {

    if (Trigger.isBefore) {
       if (Trigger.isInsert) { // do something }
       if (Trigger.isUpdate { // do something }
    } else {
       if (Trigger.isInsert) { // do something }
       if (Trigger.isUpdate { // do something }
    }
}

Спасибо.

1 Ответ

0 голосов
/ 10 июня 2018

Ответ от 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
    } 
}

И, наконец, очень личное ИМХО - это всего лишь разновидность синтаксического сахара, который не приносит никакой прибыли тем, кто использует хорошую триггерную архитектуру

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...