S.B.S. Salesforce技術ブログ

教えて921さん!

トリガーの作成をしよう#5~トリガハンドラーについて~

こんにちは、Nambuです。今回も引き続きトリガについて説明したいと思います。#1~4ではトリガとはから始まり、起動タイミングやデータを取ってくるoldやnewについて説明していきました。今回はトリガハンドラーについて話していきます。

トリガハンドラーとは


#1では簡単なトリガの書き方を紹介しましたが、その時はApex Triggerに直接処理内容を記述しました。しかし、トリガで行う処理や分岐が増えてくるとソースコードが複雑になっていきます。また、トリガのコードはApex トランザクションによってバインドされているので、ガバナ制限が適用されます。
それらを回避するために利用するのがトリガハンドラーです。トリガハンドラーでは別途ハンドラークラスと呼ばれるApex classを作成し、そこのメソッド内に処理内容を記述します。Apex Triggerではハンドラークラスのメソッドを呼び出すようにします。こうすることで処理内容を使いまわせるだけではなく、Apex Triggerをシンプルにすることができます。

トリガハンドラーの使い方


トリガハンドラーを利用してトリガを作成するときも同じようにFileの中のnewからApex Triggerを選び、名前とSObjectを入力して新規作成します。 次にトリガーと同じ手順でハンドラー用のApex classを新規作成します。 そして、作成したハンドラークラスにメソッドを用意して処理を記述していきます。この時にTriggerでの分岐の数だけメソッドを用意しておきます。 そして実際のTriggerではハンドラークラス型の変数を宣言し、条件分岐で場合分けをして任意のメソッドを呼び出します。