用語解説
Salesforceトリガー(Apex Trigger)とは、Salesforceオブジェクトのレコードが作成・更新・削除・マージされるタイミングで自動的に実行されるApexコードです。
before/afterの2タイミングがあり、before トリガーはデータ保存前の値変換・バリデーションに、after トリガーはID確定後の関連レコード操作や外部連携に使います。複数トリガーの実行順序は保証されないため、1オブジェクト1トリガー+ハンドラーパターンが推奨されます。
どんな場面で活用するか
- 商談がクローズウォンになった瞬間に注文オブジェクトを自動作成したい
- 取引先の業種が変更された際に関連する全コンタクトのカスタム項目を一括更新したい
- リードが変換されたタイミングで外部ERPへAPI連携を実行したい
よくある誤解
「トリガー内でSOQLクエリをループ内に書いても動く」は誤りです。ループ内SOQLはガバナーリミット(1トランザクション100クエリ)に抵触しやすく、大量データ処理で必ずエラーになります。クエリはループ外でまとめて実行するバルク処理パターンが必須です。
判断のヒント
設計ポイントTriggerHandler パターン(SObjectTrigger.trigger → TriggerHandler.cls)を採用すると、テスト・保守・複数人開発が格段に楽になります。また、カスタムメタデータでトリガーのON/OFFをコードなしで切り替えられる設計にすると運用トラブルを低減できます。