yujiroのプログラミング

勉強内容をアウトプットし、サボらないようにする為のブログ

<DAY219>コンテキスト変数

\ Follow me!! /

●9/28(土)
●学習日数 219日
●学習時間(本日)3時間
●累計学習時間 929.0時間
●一日あたりの平均学習時間 4.28時間

f:id:yujiro0320:20190904163314p:plain

Trigger.newとは

すべてのトリガは、開発者がランタイムコンテキストにアクセスできるようにする暗黙的な変数を定義します。これらの変数は、System.Trigger クラスに含まれています。
ってあんまりよくわからないから、噛み砕いて調べて見た。

コンテキストとは

コンテキストとは、文脈、前後関係、事情、背景、状況などの意味を持つ英単語。ITの分野では、利用者の意図や状況、環境などの総体を表したり、同じ処理や記述でも状況に応じて動作などが異なる場合に、その選択基準となる判断材料や条件などを指す場合が多い。

まとめると、状況に応じて異なる動作を行う変数って意味で捉えておく。

トリガコンテキストとは

上記の概念を把握した上で、見てみる。

変数 使用方法 備考
isExecuting Apex コードの現在のコンテキストが Visualforce ページ、Web サービス、または executeanonymous() API コールではなく、トリガである場合、true を返します。 トリガで発火すれば
isInsert 挿入操作により、Salesforce ユーザインターフェース、Apex、または API からこのトリガが実行された場合に、true を返します。
isUpdate 更新操作により、Salesforce ユーザインターフェース、Apex、または API からこのトリガが実行された場合に、true を返します。
isDelete 削除操作により、Salesforce ユーザインターフェース、Apex、または API からこのトリガが実行された場合に、true を返します。
isBefore レコードが保存される前にこのトリガが実行された場合に、true を返します。
isAfter すべてのレコードが保存された後にこのトリガが実行された場合に、true を返します。
isUndelete レコードがごみ箱から復元された後にこのトリガが実行された場合に、true を返します。この復元は、Salesforce ユーザインターフェース、Apex、または API からの復元操作の後にのみ行われます。
new 新しいバージョンの sObject レコードのリストを返します。この sObject リストは insert トリガ、update トリガ、および undelete トリガでのみ使用でき、レコードは before トリガでのみ変更できます。
newMap 新しいバージョンの sObject レコードへの ID の対応付けです。この対応付けは before update トリガ、after insert トリガ、after update トリガ、および after undelete トリガでのみ使用できます。
old 古いバージョンの sObject レコードのリストを返します。この sObject リストは update トリガと delete トリガでのみ使用できます。
oldMap 古いバージョンの sObject レコードへの ID の対応付けです。この対応付けは update トリガと delete トリガでのみ使用できます。