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

教えて921さん!

トリガーの作成をしよう#3~beforeトリガとafterトリガの違い~

こんにちは!mkです!
引き続きトリガについて話していきます!
今回はbeforeトリガとafterトリガの違いとはなにか
というところについて話していきたいと思います。

beforeトリガとafterトリガとは


beforeとafterというところだけ見てもそれぞれ何かの前後に行われるトリガであるということは予想がつくのではないでしょうか?
この違いがどう影響してくるのかというと、トリガで変更できたり参照できる項目が異なってくるんです!
それぞれの特徴について見てみましょう!

beforeトリガの特徴


レコードがデータベースに保存される前に実行されます。
そのため、例えば「登録しようとしたある項目が特定の条件の時に別の項目の値を変更させたい!」などのようなことが出来ます!
ただし実際に登録された後の値を参照した操作をすることは出来ません。 必須項目や入力規則の確認はbeforeトリガの後に行われます。

afterトリガの特徴


レコードがデータベースに保存された後に実行されます。
そのため、例えば「データベースのidや自動採番、作成者、作成日」などのようなデータベースで設定する項目の参照が出来ます!
ただし、データベースに入力した値などを変更させて登録、といったことはできません。 必須項目や入力規則の確認はafterトリガの前に行われます。
復元(undelete)の操作はafterトリガのみ出来ます。

まとめ


今回はbeforeトリガとafterトリガの違いについて説明しました!
beforeトリガとafterトリガの実行されるタイミングや出来ることの違いを意識して利用していきましょう!