Apex トリガTriggerの使い方のサンプル

環境
Salesforce

書式

trigger TriggerName on ObjectName (trigger_events) {
    if (Trigger.isInsert) {
        if (Trigger.isBefore) {
            // Before Insert 処理コード
        } else if (Trigger.isAfter) {
            // After Insert 処理コード
    }
    略
}

Apex トリガを使用すると、Salesforce のレコードに対するイベント (挿入、更新、削除) の前または後にカスタムアクションを実行できます。
trigger_events指定できるのは次のイベントです。

before insert
before update
before delete
after insert
after update
after delete
after undelete

使用例

trigger EmployeeTrigger on Employee__c (before insert, before update, before delete, after insert, after update, after delete, after undelete) {
    if (Trigger.isInsert) {
        if (Trigger.isBefore) {
            // Before Insert 処理
        } else if (Trigger.isAfter) {
            // After Insert 処理
    }
    xxx
}

トリガと実行の順序

1.古いレコードをデータベースからロード(または、upsert 用レコード初期化)
2.新しいレコードの値で古い値を上書き
3.システムの入力規則
4.すべての before トリガ
5.システムの入力規則 + カスタム入力規則
6.重複ルール
7.レコード保存(コミットされていない)
8.レコード再ロード
9.すべての after トリガ
10.割り当てルール
11.自動応答ルール
12.ワークフロールール
13.ワークフロー項目自動更新が存在する場合、レコードが再度更新されます。
14.ワークフロー項目自動更新でレコードが更新された場合、標準の入力規則に加えて、before update トリガおよび after update トリガがもう一度 (さらに 1 回のみ) 実行されます。
  カスタム入力規則、重複ルール、およびエスカレーションルールは再実行されません。
15.プロセス
16.エスカレーションルール
17.積み上げ集計数式の値の更新
18.条件に基づく共有の評価
19.データベースのコミット
20.コミット後のロジック(メールの送信)

 

Apex

Posted by arkgame