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

概要

トリガーコンテキスト変数は、SalesforceのApexトリガー内で利用できる特殊な変数であり、トリガーが実行されたときの状況や環境情報を提供します。これにより、データの変更や特定の操作に応じたカスタムロジックを実行する際の情報が得られます。

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

  • イベントのタイプ:
    • isInsert: 新規レコードの挿入時にtrueを返す。
    • isUpdate: レコードの更新時にtrueを返す。
    • isDelete: レコードの削除時にtrueを返す。
    • isUndelete: レコードがゴミ箱から復元された時にtrueを返す。
  • イベントのタイミング:
    • isBefore: レコードの保存前にtrueを返す。
    • isAfter: レコードの保存後にtrueを返す。
  • レコードの情報:
    • new: 現在のバージョンのsObjectレコードのリスト。
    • newMap: 現在のバージョンのsObjectレコードへのIDのマップ。
    • old: 以前のバージョンのsObjectレコードのリスト。
    • oldMap: 以前のバージョンのsObjectレコードへのIDのマップ。
  • その他の情報:
    • isExecuting: トリガー内で実行されている場合にtrueを返す。
    • operationType: トリガーの操作の種類を示すSystem.TriggerOperation列挙値。
    • size: トリガーの実行中のレコードの合計数。

制約に関する詳細とその理由:

トリガーコンテキスト変数のこれらの制約は、Salesforceのオブジェクトとレコードのライフサイクルを理解し、適切なタイミングで正確な情報を取得・操作するためのものです。これにより、データの整合性やトリガーの動作の正確さが保たれます。

  • new
    • 制約: この変数は、insert, update, および undelete トリガーでのみ使用できます。
    • 理由: newは、現在または変更されたレコードの最新の状態を表します。挿入、更新、および復元操作時にのみ、レコードの新しい状態が関与するため、これらの操作でのみ利用可能です。
  • newMap
    • 制約: このマップは、before update, after insert, after update, および after undelete トリガーでのみ使用できます。
    • 理由: IDをキーとしてレコードの新しい状態を取得するためのマップです。上記の操作の中で、新しいレコードの状態とIDが関与するため、これらの操作に制限されています。
  • old
    • 制約: この変数は、updatedelete トリガーでのみ使用できます。
    • 理由: oldは、変更前のレコードの状態を示します。したがって、更新または削除の際にのみ、元のレコードの状態が関与するため、この制約が存在します。
  • oldMap
    • 制約: このマップは、updatedelete トリガーでのみ使用できます。
    • 理由: IDをキーとしてレコードの変更前の状態を取得するためのマップです。更新や削除操作時に、元のレコードの状態とIDが関与するため、この制約が設けられています。
  • isExecuting
    • 制約: この変数は、Visualforceページ、Webサービス、またはexecuteanonymous() APIコールのコンテキストではなく、トリガーのコンテキストでのみtrueを返します。
    • 理由: この変数は、Apexコードがトリガーのコンテキストで実行されているかどうかを示すものであり、他のコンテキストでの使用は意味がないためです。
  • operationType
    • 制約: この変数は、現在のトリガー操作を示すSystem.TriggerOperation列挙の値を返します。
    • 理由: トリガーの動作やタイミングに基づいて処理を分岐させるためのものであり、具体的なトリガーの動作やタイミングを示すために使用されます。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

雇われのシステムエンジニアです。
普段は車載ECUのセキュリティー分野に従事しております。

■保有資格
Salesforce 認定 Platform アプリケーションビルダー
Salesforce 認定 Platform デベロッパー

コメント

コメントする

目次