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

問題

開発者は、before insertトリガーを作成します。 開発者はトリガー本体のレコードにどのようにアクセスできますか。

  • Trigger.newコンテキスト変数にアクセスする
  • Trigger.newRecordsコンテキスト変数にアクセスする
  • Trigger.newMapコンテキスト変数にアクセスする
  • Trigger.newListコンテキスト変数にアクセスする

正解

  • Trigger.newコンテキスト変数にアクセスする
  • Trigger.newRecordsコンテキスト変数にアクセスする
  • Trigger.newMapコンテキスト変数にアクセスする
  • Trigger.newListコンテキスト変数にアクセスする

解説

この問題は、Salesforceにおけるトリガーの実装時に、開発者がどのようにしてレコードの情報にアクセスするかに関連しています。正確にレコードのデータにアクセスするためには、トリガーコンテキスト変数の理解が不可欠です。

Trigger.newTrigger.newMapなどのトリガーコンテキスト変数は、トリガーが発火した際のレコードの状態やデータを取得するための変数です。それぞれの変数は特定のトリガーのタイプや実行時のタイミング(before、after)で利用可能であり、それらの変数を正しく使用することで、レコードのデータを操作したり、特定のビジネスロジックに従って処理を実行することができます。

この問題を正確に解決するには、Salesforceのトリガーコンテキスト変数の種類と、それぞれの変数が提供するデータ、そしてそれらが使用可能なトリガーのタイプやタイミングを理解している必要があります。

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

□ Trigger.newコンテキスト変数にアクセスする
これは正解です。Trigger.newは、before insert トリガーの実行中に挿入される予定のレコードのリストを表します。この変数は、データベースに保存される前の新規レコードを含むリストを提供し、開発者はこのリストを通じてこれらのレコードに対して処理を行うことができます。

□ Trigger.newRecordsコンテキスト変数にアクセスする
これは不正解です。Salesforceのトリガーコンテキスト変数にTrigger.newRecordsという変数は存在しません。したがって、開発者はこれを使用してレコードにアクセスすることはできません。

□ Trigger.newMapコンテキスト変数にアクセスする
これは不正解です。Trigger.newMapはレコードのIDをキーとして、それに関連するsObjectレコードを値として持つマップを提供します。しかし、before insert トリガーのタイミングでは、レコードはまだ挿入されていないため、IDがまだ生成されていません。従って、この変数はbefore insert トリガーで利用できません。

□ Trigger.newListコンテキスト変数にアクセスする
これは不正解です。Salesforceのトリガーコンテキスト変数にTrigger.newListという変数は存在しません。したがって、開発者はこれを使用してレコードにアクセスすることはできません。

参考:トリガーコンテキスト変数

次の問題へ

前の問題へ

1問目から復習する

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

この記事を書いた人

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

コメント

コメントする

目次