問題
プラットフォーム開発者は、レコードが特定のレコードタイプに割り当てられている場合にのみ実行するApexメソッドを作成する必要があります。開発者が必要なレコードタイプIDをレコードタイプ名で動的に決定できる方法はどれですか。2つ選びなさい。
- SOAP APIへのアウトバウンドWebサービス呼び出しを行う
- DescribeSObjectResultクラスでgetRecordTypeInfosByDeveloperNameメソッドを使用する
- Apexクラスの定数としてIDをハードコードする
- RecordTypeオブジェクトでSOQLクエリを実行する
正解
- SOAP APIへのアウトバウンドWebサービス呼び出しを行う
- DescribeSObjectResultクラスでgetRecordTypeInfosByDeveloperNameメソッドを使用する
- Apexクラスの定数としてIDをハードコードする
- RecordTypeオブジェクトでSOQLクエリを実行する
解説
それぞれの選択肢の理由について説明します。
□ SOAP APIへのアウトバウンドWebサービス呼び出しを行う
これは不正解です。SOAP APIは外部システムとSalesforceとの間でデータを交換するために使いますが、Salesforce内で動的にレコードタイプIDを取得するのには適していません。
□ DescribeSObjectResultクラスでgetRecordTypeInfosByDeveloperNameメソッドを使用する
これは正解です。DescribeSObjectResultクラスのgetRecordTypeInfosByDeveloperNameメソッドを使用することで、開発者名を基にレコードタイプの情報を動的に取得することができます。
□ Apexクラスの定数としてIDをハードコードする
これは不正解です。IDをハードコードすると、異なる環境や組織間での移行時に問題が発生する可能性があります。また、レコードタイプが変更された場合や削除された場合に、コードの修正が必要になる可能性があります。
□ RecordTypeオブジェクトでSOQLクエリを実行する
これは正解です。RecordType オブジェクトを使用してSOQLクエリを実行することで、特定のオブジェクトのレコードタイプのIDを動的に取得することができます。
コメント