こんにちは、にいるです。
開発をしていて、選択リストのラベルや値を取得したい時ってありますよね。
今回は、Apexを使用した「選択リストの取得方法」について説明したいと思います。
・【ヘルプ】Schema 名前空間
・【ヘルプ】DescribeFieldResult クラス
・【ヘルプ】PicklistEntry クラス
1.選択リストの取得方法
ここでは、下記のコードで商談項目のフェーズを取得したいと思います。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// ① 商談項目「フェーズ」のメタデータを取得 Schema.DescribeFieldResult o = Opportunity.stageName.getDescribe(); // ② ①の情報からgetPicklistValuesメソッドで「フェーズ」の情報を取得 List<Schema.PicklistEntry> v = o.getPicklistValues(); System.debug('●v● = '+ v); // ③ ②の情報をfor文で1つずつ取り出してメソッドで値を確認 for(Schema.PicklistEntry s : v){ System.debug('●Label =' + s.getLabel()); System.debug('●Value =' + s.getValue()); System.debug('●Active =' + s.isActive()); } |
①オブジェクトの項目を取得するためには、Schema.DescribeFieldResultクラスを使用します。
②そしてフェーズ項目にアクセスしたあとは、getPicklistValuesメソッドで選択リストのメタデータを取得します。
③最後は確認用に②で取得したリストの中身がどうなっているかを確認しています。
■デバッグ結果
labelもvalueも取れていますね。
組織データの変更なく、Apex側で取得したラベル名を変更するなどの使い方もできそうですね。
2.まとめ
いかがでしたでしょうか。
選択リスト値やラベルを取得する用途も、意外に頻度が高いと思うのでぜひ覚えておきたいメソッドですね。
皆さんもぜひ色々と試してみてください。
他にも色々と標準機能やSalesforce機能について紹介していますので、ご覧ください。
ではでは!
コメント