【Salesforce 認定Platformデベロッパー】試験対策:第162問

問題

Before InsertトリガーのTrigger.oldコンテキスト変数の値は何ですか。

  • sObjectの空のリスト
  • null
  • Idなしで新しく作成されたsObjectのリスト
  • Undefined

正解

  • sObjectの空のリスト
  • null
  • Idなしで新しく作成されたsObjectのリスト
  • Undefined

解説

Before Insert トリガーにおける Trigger.oldTrigger.new のコンテキスト変数について説明します。

Trigger.new

Trigger.newは、データベースに挿入される前の新しいレコードのリストを参照します。このリストの内容は、Before Insert トリガー内で変更可能であり、これを利用してデータベースに保存される前にレコードの値を調整することができます。

Trigger.old

Trigger.oldは元のレコードのリストを参照するものですが、Before Insert のコンテキストでは利用できません。新しいレコードがまだデータベースに存在しないため、”古い” バージョンのレコードは存在しないからです。

それぞれの選択肢の理由について説明します。

□ sObjectの空のリスト
これは不正解です。Trigger.oldは、Before Insertトリガーのコンテキストで使用される場合、利用できません。その理由は、Trigger.oldが元のレコードのリストを参照するものであるのに対し、Before Insertの際には新しいレコードがまだデータベースに挿入されていないため、”古い” バージョンのレコードが存在しないからです。

□ null
これは正解です。Before Insertトリガーのコンテキストでは、Trigger.oldはnullとして返されます。これは、新しく挿入されるレコードはまだ保存されていないため、”古い” バージョンのレコードが存在しないからです。

□ Idなしで新しく作成されたsObjectのリスト
これは不正解です。この説明はTrigger.newのコンテキスト変数に関するもので、新しく挿入されるレコードのリストを参照します。Before Insertのコンテキストでは、これらのレコードはまだ保存されていないため、Idはまだ割り当てられていません。

□ Undefined
これは不正解です。Trigger.oldBefore Insert トリガーのコンテキストではnullとなります。”Undefined” という状態はSalesforceのApex言語には存在しません。

次の問題へ

前の問題へ

1問目から復習する

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

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

コメント

コメントする

目次