ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Apex] 선택목록 필드의 option 값 가져오는 방법 - How to get option value of selection list field
    Apex 2024. 8. 17. 21:17

     

     

    1. 순서 및 로직

     

    1. 개체 가져오기
      • Schema.getGlobalDescribe().get(개체명).getDescribe();
      • return Schema.DescribeSObjectResult
    2. 개체의 필드 가져오기
      • 개체명.fields.getMap().get(필드명).getDescribe();
      • return Schema.DexcribeFieldResult
    3. 필드의 option 값 가져오기
      • 필드명.getPicklistVales();
      • return List<Schema.PicklistEntry>
    4. 필드 option 값 사용하기 ( Label 및 Vale)
      • Schema.PicklistEntry.getLabel();
      • Schema.PicklistEntry.getValue();
      • return String

     

     

    2. 예시 코드 확인

     

    2-1 : 기본 코드 형식

    String obj = '값 가져올 개체명 입력';
    String fieldName = '값 가져올 필드명 입력';
    
    Schema.DescribeSObjectResult objResult = Schema.getGlobalDescribe().get(obj).getDescribe();
    Schema.DescribeFieldResult fieldResult = objResult.fields.getMap().get(fieldName).getDescribe();
    List<Schema.PicklistEntry> picklistValues = fieldResult.getPicklistValues();
    
    for (Schema.PicklistEntry picklistValue : picklistValues) {
    		pickLabel = picklistValue.getLabel();
    		pickValue = picklistValue.getValue();
            System.debug('pickLabel ===== ' + pickLabel);
            System.debug('pickValue ===== ' + pickValue);
    }

     

     

    2-2 : 예시 코드

    • 청구(Billing__c) 개체의 계산서발행방식(BillPublish__c) 선택 목록 필드 값 가져오기
    //청구(Billing__c) 개체의 계산서발행방식(BillPublish__c) 선택 목록 필드 값 가져오기
    
    Schema.DescribeFieldResult billPublishFieldResult = Billing__c.BillPublish__c.getDescribe();
    List<Schema.PicklistEntry> billPublishValues = billPublishFieldResult.getPicklistValues();
    
    String billPublishLabel = '';
    String billPublishValue = '';
    for (Schema.PicklistEntry picklistValue : billPublishValues) {
    	  billPublishLabel = picklistValue.getLabel();
    	  billPublishValue = picklistValue.getValue();
        billPublishType.add(new SelectOption(billPublishLabel, billPublishValue ));
    }

     

     

    3. 추가 활용 - Combobox의 options 속성 값으로 활용

    • 위에서 가져온 선택목록 필드의 option 값을
    •  Aura 및 LWC 컴포넌트의 combobox의 options 속성에 바로 사용하기

     

    3-1 : 선택목록 필드의 픽 리스트 값 담을 이너 클래스 세팅

    public class SelectOption {
        @AuraEnabled
        public String label { get; set; }
        @AuraEnabled
        public String value { get; set; }
    
        public SelectOption(String label, String value) {
            this.label = label;
            this.value = value;
        }
    }

     

    3-2 : 해당 이너 클래스 활용하여 List 형식으로 값 담아서 컴포넌트로 전달

    • selectOptions.add(new SelectOption(picklabel, pickValue);
    String obj = '값 가져올 개체명 입력';
    String fieldName = '값 가져올 필드명 입력';
    
    Schema.DescribeSObjectResult objResult = Schema.getGlobalDescribe().get(obj).getDescribe();
    Schema.DescribeFieldResult fieldResult = objResult.fields.getMap().get(fieldName).getDescribe();
    List<Schema.PicklistEntry> picklistValues = fieldResult.getPicklistValues();
    
    for (Schema.PicklistEntry picklistValue : picklistValues) {
    		pickLabel = picklistValue.getLabel();
    		pickValue = picklistValue.getValue();
    	selectOptions.add(new SelectOption(pickLabel, pickValue)); //inner Class 활용
    }

     

     

     

    반응형
Designed by Tistory.