問題
開発者は、ケースオブジェクトで使用可能なすべてのレコードタイプを表示したいと考えています。開発者は、ケースオブジェクトの状況項目の選択リスト値も表示したいと考えています。 ケースオブジェクトとケースオブジェクトの状況項目は、カスタムVisualforceページにあります。コントローラでレコードタイプと選択リスト値を取得するために、開発者はどのアクションを実行できますか。 2つ選択してください。
- Case.Status.getDescribe().getPicklistValues()によって返されるSchema.PicklistEntryを使用する。
- Case.SObjectType.getDescribe().getRecordTypeInfos()によって返されるSchema.RecordTypeInfoを使用する。
- SOQLを使用して組織内のケースレコードをクエリし、ケースオブジェクトで使用可能なすべてのRecordType値を取得する。
- SOQLを使用して組織内のケースレコードをクエリし、状況項目のすべての値を取得する。
正解
- Case.Status.getDescribe().getPicklistValues()によって返されるSchema.PicklistEntryを使用する。
- Case.SObjectType.getDescribe().getRecordTypeInfos()によって返されるSchema.RecordTypeInfoを使用する。
- SOQLを使用して組織内のケースレコードをクエリし、ケースオブジェクトで使用可能なすべてのRecordType値を取得する。
- SOQLを使用して組織内のケースレコードをクエリし、状況項目のすべての値を取得する。
解説
任意のオブジェクトのレコードタイプや選択リスト項目の値を取得する際のメソッドに関する情報を簡潔にまとめます。
- 任意のオブジェクトで使用可能なレコードタイプを取得:
- メソッド:
ObjectName.SObjectType.getDescribe().getRecordTypeInfos()
- メソッド:
- 任意のオブジェクトの選択リスト項目の値を取得:
- メソッド:
ObjectName.FieldName.getDescribe().getPicklistValues()
- メソッド:
それぞれの選択肢の理由について説明します。
□ Case.Status.getDescribe().getPicklistValues()によって返されるSchema.PicklistEntryを使用する。
これは正解です。このメソッドはCase
オブジェクトのStatus
フィールドの選択リスト値を取得するための正しい方法です。getDescribe().getPicklistValues()
は、指定された選択リストフィールドのすべての選択リスト値を取得するために使用されます。
□ Case.SObjectType.getDescribe().getRecordTypeInfos()によって返されるSchema.RecordTypeInfoを使用する。
これは正解です。このメソッドはCase
オブジェクトで利用可能なすべてのレコードタイプ情報を取得するための正しい方法です。getDescribe().getRecordTypeInfos()
は、指定されたオブジェクトのレコードタイプ情報を取得するために使用されます。
□ SOQLを使用して組織内のケースレコードをクエリし、ケースオブジェクトで使用可能なすべてのRecordType値を取得する。
これは不正解です。この方法も実際にはケースオブジェクトのレコードタイプ情報を取得するために使用できますが、getDescribe().getRecordTypeInfos()
を使用する方法の方が効率的であるため、この選択肢は最適ではありません。またSOQLのガバナ制限に引っかかるリスクも低いです。
□ SOQLを使用して組織内のケースレコードをクエリし、状況項目のすべての値を取得する。
これは不正解です。この方法は状況項目の選択リスト値を取得するための効果的な方法ではありません。具体的なレコードから状況の値をクエリすると、そのレコードに存在する選択リスト値のみが返されます。すべての選択リスト値を取得するためには、getDescribe().getPicklistValues()
のようなメソッドを使用する必要があります。
コメント