【Salesforce】Apexトリガーとは?(構文、サンプルコード)

Salesforce

こんにちは、ヨリユです。
本記事ではApexトリガーについて解説していきます。
Apexトリガーは、Salesforce開発においてよく利用されるため、使い方を押さえておきましょう!

【この記事から学べること】
・Apexトリガーの構文
・Apexトリガーのコンテキスト変数

Apexトリガーとは?

SalesforceのApexトリガーとは、データベース内でイベントが発生した際に呼び出されるApexプログラムになります。Apexトリガーを使用すると、例えば、Salesforceレコード更新の前後にカスタムロジックを実行できます。また、SOQLやDMLの実行、Apexメソッドのコールなど、Apexと同様に実行することができます。

フローなどの宣言型開発で実装できることが増えてきていますが、複雑なロジックの実装は難しい場合があります。宣言型開発で実装が難しい複雑なロジックを実装する場合は、Apexトリガーを使用することが適しているといえるでしょう。

Apexトリガーの構文

Apexトリガーの構文は、以下のとおりです。

trigger TriggerName on ObjectName (trigger_events) {
	// logic
}

・TriggerName:Apexトリガー名
・ObjectName:Apexトリガーを起動するオブジェクト名
・trigger_events:Apexトリガーを起動するイベント名(複数指定可能)

Apexトリガーの指定可能なイベント(trigger_events)は、以下のとおりです。

  • (挿入前)before insert
  • (更新前)before update
  • (削除前)before delete
  • (挿入後)after insert
  • (更新後)after update
  • (削除後)after delete
  • (復元後)after undelete

Apexトリガーのコンテキスト変数

Apexトリガーのコンテキスト変数とは、トリガを実行するレコードのランタイムにアクセスするための変数になります。コンテキスト変数にアクセスすることで、今回Apexトリガーが呼び出されたイベントや、Apexトリガー呼び出しのレコードの合計数などの情報を取得することができます。
Apexトリガーには、以下のコンテキスト変数があります。

Apexトリガーのサンプルコード

以下、Apexトリガーのサンプルコードです。
取引先(Account)レコードが新規作成されたときに、取引先の説明(Description)フィールドに特定の値を設定します。

trigger SetAccountDescription on Account (before insert) {
    for(Account acc : Trigger.new) {
        // 取引先の説明を設定
        acc.Description = 'Apexトリガーサンプル';
    }
}

おわりに

いかがでしたでしょうか。
Apexトリガーが実装されている環境はよくあるかと思いますので、サンプルコードを動かしながら使い方を身につけていきましょう!
最後までご覧いただきありがとうございました!