SFエンジニア
取引先のSLAというカスタム項目はデータ型が選択リストなのだけど、Apexで選択肢の値を取得するにはどうすれば良いかね?
Schemaクラスを使って実現できます。
目次
サンプルコード
開発者は、取引先 (Account) からSLA (SLA__c)という選択リスト項目の選択肢を取得する必要があります。
以下のコードは、取得した結果を System.debug で出力するコード例です。
// Describe呼び出しを使用して、ピックリストの詳細情報を取得します。
Schema.DescribeFieldResult fieldResult = Schema.SObjectType.Account.fields.SLA__c;
// ピックリストエントリを取得します。
List<Schema.PicklistEntry> picklistValues = fieldResult.getPicklistValues();
// ピックリストの各エントリの値を表示します。
for (Schema.PicklistEntry entry : picklistValues) {
System.debug('SLA Option: ' + entry.getLabel());
}
このコードのポイントを説明します。
// Describe呼び出しを使用して、ピックリストの詳細情報を取得します。
Schema.DescribeFieldResult fieldResult = Schema.SObjectType.Account.fields.SLA__c;
この行は、取引先オブジェクト「Account」の「SLA__c」というカスタム項目の詳細情報を取得するDescribe呼び出しを行っています。
// ピックリストエントリを取得します。
List<Schema.PicklistEntry> picklistValues = fieldResult.getPicklistValues();
Describe呼び出しによって取得されたカスタム項目の詳細情報から、選択リストの選択肢(エントリ または オプションと言う)のリストを取得しています。
コードを実行した結果、開発者コンソールの Executing Log の出力例です。
以上です!
コメント