1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Apexトリガの備忘録

Posted at

よく忘れるので備忘録として残しておきたいこと

プロセスビルダーとトリガを両方使うときの注意

主従関係になっているオブジェクトで親オブジェクトに積み上げ集計項目がある場合、親オブジェクトのトリガで子オブジェクトを更新するような処理をtrigger.afterで実装すると

  1. 親の更新
  2. 子オブジェクトの更新
  3. 積み上げ集計でもう一度親の更新

みたいな動きをしてトリガを再帰的に呼び出してしまうことがある。
トリガ側ではガバナ制限を考慮してコーディングしていたとしても、プロセスビルダー側の条件でガバナ制限に抵触することがあるので呼び出されないようにコーディングをしておく必要がある。
一番いいのは自動化ツールを一つにまとめることだけれども、たまにどうしようもないことがあるので注意。

triggerの中のtre-catch

たまにトリガの中でtry-catch文を書いてるのにexception発生時に何もしてない残念な感じのコードがあって、エラーになって保存できていないのに素通りしてることがある。
この状態よりはまだエラーになった方がマシだけど、どうせならSaveResultクラスを使ってDML操作が成功したかどうか判断してからエラークラスgetMessage()メソッドでエラーメッセージだけaddErrorしてあげると良い感じになる。1

  1. https://tyoshikawa1106.hatenablog.com/entry/2014/02/23/042845

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?