こんにちは、管理人の@Salesforce.Zです。
Salesforceには選択リストがあり
この選択リストの値を画面で使うとかよくあります。
しかし、ラベルとか、オブジェクトの設定で変更すると、開発側にも影響するため
Apexでオブジェクトの選択リスト設定を取得し、画面に設定するのがベスト
今回、Apex側でその取得する方法を共有します。
目次
選択リスト取得
Apex側で取得
コード
//選択リスト型の選択できる値を取得 public List<Schema.PicklistEntry> getPicklist(String sObjName, String fieldName){ List<Schema.PicklistEntry> pickList; Schema.SObjectType sObjType = (Schema.SObjectType) Schema.getGlobalDescribe().get(sObjName); if(sObjType != null){ Map<String, Schema.SObjectField> fieldmap = sObjType.getDescribe().fields.getMap(); Schema.SObjectField f = (Schema.SObjectField) fieldmap.get(fieldName); if(f != null){ Schema.DescribeFieldResult r = f.getDescribe(); pickList = r.getPicklistValues(); System.debug('値' + pickList); } } return pickList; }
コード使用例
//取引先の種別という選択リストの取得 List<Schema.PicklistEntry> picklist = getPicklist('Account', 'Type'); //ログで中身を確認する for(Schema.PicklistEntry pick : picklist){ System.debug('-----------------'); System.debug('Label :' + pick.getLabel()); System.debug('Value :' + pick.getValue()); System.debug('Active:' + pick.isActive()); }