SmallBuilder Help
AppExchangeContact Us
🇰🇷 한국어
🇰🇷 한국어
  • SmallBuilder 헬프
  • 시작하기 전에
    • 라이선스 및 권한 할당
    • 조직 통화 설정
    • 번역 활성화
    • 연결된 앱 설정
  • 📦SmallBuilder line items
    • 릴리즈 노트
      • '25 업데이트
        • v 1.40
        • v 1.39
        • v 1.38
        • v 1.37
    • 제품 소개
    • 시작하기 전에
      • 라이선스 및 권한 할당
      • 조직 통화 설정
      • 번역 활성화
      • 연결된 앱 설정
    • 빌더
      • 빌더 시작하기
      • 기본 설정 (Default Setting)
        • 장치에 맞게 반응형 화면 설정하기
        • 편집기 화면 비율 조절하기
        • 편집기 레이블 변경하기
        • 조회 선택기 설정
          • 로드 시 전체 검색
          • 필터 기본 펼치기
          • 레코드 중복 선택 허용
          • 성능 향상을 위한 캐싱
          • 페이지별 레코드 수 설정하기
        • 라인 아이템 편집기 설정
          • 요약 표시하기
          • 첫 번째 열 고정하기
      • 빌더 셋업 절차
        • 개체 연결 (Relate Objects)
          • 부모 개체 (Parent Object)
          • 라인 아이템 개체 (Line Item Object)
            • 설정 방법
            • 저장된 라인 아이템의 필터 및 정렬 순서 설정하기
            • 조건에 따라 라인 아이템 삭제 제어하기
            • 자동 번호 설정하기
          • 조회 개체 (Lookup Object)
            • 설정 방법
            • 키워드 검색 설정하기
            • 조회 선택기 차단하기
            • 조회 레코드의 필터 및 정렬 순서 설정하기
        • 조회 선택기 설정 (Setup Lookup Selector)
          • 열 추가하기
          • 열 순서 변경하기
          • 레이블 변경하기
          • 열 너비 설정하기
          • 텍스트 정렬 변경하기
          • 이미지 URL을 이미지로 보여주기
          • 데이터소스를 위한 가상 열 추가하기
        • 라인 아이템 편집기 설정 (Setup Line Item Editor)
          • 열 추가하기
          • 가상 열 추가하기
          • 열 순서 변경하기
          • 레이블 변경하기
          • 기본값 설정하기
          • 소스 필드: 부모 또는 조회의 특정 필드 값을 기본값으로 할당하기
          • 열 너비 설정하기
          • 텍스트 정렬 변경하기
          • 읽기 전용으로 표시하기
          • 필수 입력으로 지정하기
          • 합계 요약하기
          • 이미지 URL을 이미지로 보여주기
          • 값을 숨김 처리하여 내부적으로 계산 및 로직에 사용하기
          • 일부 필드 값 저장 시 제외하기
        • 미리보기
        • 활성화
        • 버튼 생성 및 페이지 레이아웃에 추가하기
      • 비즈니스 규칙 (Business Rule)
        • 관련 개체 데이터 가져오기
        • Apex 클래스를 활용해 다양한 방식으로 데이터 가져오기
      • 빌더 복제
      • 빌더 초기화
      • 쿼리 마법사(Query Wizard)를 사용하여 필터 삽입하기
      • 필터 설정 도구
      • 레이블에 커스텀 라벨 삽입하기
    • 제품 옵션 (Product Option)
      • 제품 옵션 셋업 절차
        • 제품 옵션 활성화
        • 제품 옵션 설정하기
          • 기본 설정
          • 라인 아이템 설정
        • 제품 옵션 데이터 구성하기
      • 라인 아이템 옵션 값의 표시 및 저장 방식
    • 활용 사례
      • 편집기의 Aura Component 활용하기
    • 기초 사용 예제
    • 고급 사용 예제
    • FAQ
    • 패키지 설치
  • 📦SmallBuilder Documents
    • 릴리즈 노트
      • '25 업데이트
        • v 1.9202
      • '24 업데이트
        • v 1.50 ~
    • 제품 소개
    • 시작하기 전에
      • 라이선스 및 권한 할당
      • 조직 통화 설정
      • 번역 활성화
      • 연결된 앱 설정
    • 신규 생성 및 빌더 실행
    • Components
    • Data Merge
      • Data Merge - Text
      • Data Merge - Related List
    • Document Job
    • 기초 사용 예제
      • 페이지 상단에 로고 이미지를 고정하는 방법
      • 컴포넌트 사이에 공백 넣는 방법
      • 컴포넌트 사이에 구분선 넣는 방법
    • 고급 사용 예제
      • 청구서 템플릿 생성 예제
      • Trigger를 사용한 청구서 자동 이메일 전송
    • FAQ
  • 📦SmallBuilder Lists
    • Release Note
      • '24 Update
        • v 1.30 ~
    • 소개
    • 시작하기 전에
      • 라이선스 및 권한 할당
      • 조직 통화 설정
      • 번역 활성화
      • 연결된 앱 설정
    • SmallBuilder Lists 시작하기
    • 셋업 절차
      • 기본 설정
        • 타이틀
        • 범례
        • 데이터 내보내기
        • 데이터 가져오기
        • 아이콘 표시
      • 데이터 테이블 설정
        • QUERY
        • 다중 선택 허용
        • 요약 표시
        • 열 추가 및 편집
          • 유형별 편집 내용
        • 가상 열 추가
        • 행 작업 추가
      • 데이터 가져오기 설정
      • 작업 설정
        • 작업 추가
      • 필터 설정
        • 필터 추가 및 설정
          • 유형별 편집 내용
      • 축소형 구성기 설정
        • 열 추가 및 설정
          • 유형별 편집 내용
      • 모바일 설정
      • 데이터 소스 설정
        • 기본
          • 작업 추가 및 설정
        • 고급
          • Apex Class 작성
      • 적용 및 관리
        • 리스트 구성기를 직접 생성하기
    • 목록 보기 (List View)
    • 행 편집 테이블 (Line editor table)
    • 기초 사용 예제
    • 고급 사용 예제
    • FAQ
    • Page
  • ❓SmallBuilder Troubleshooting
    • SmallBuilder Troubleshooting Help
      • Button 추가 경고 (페이지에 버튼이 추가되지 않는 경우)
      • Tab 추가 경고 ( Tab이 생성되고 App에 추가되었지만 보이지 않는 경우)
Powered by GitBook
On this page
  • 속성
  • Apex Class 작성
  • SBLD.DataSourceServiceAction Class
  • SBLD.DataSourceService.Result Class
  • 예시

Was this helpful?

Export as PDF
  1. SmallBuilder line items
  2. 빌더
  3. 빌더 셋업 절차
  4. 데이터소스 설정

고급

Last updated 2 days ago

Was this helpful?

주로 외부 서버에서 데이터를 조회하여 같이 표현해주고 싶을 때 사용됩니다. 사용자가 작성한 Apex Class를 이용해 데이터소스를 가져오기 때문에 내부 데이터소스에 비해 자유롭게 데이터를 가져올 수 있는 장점이 있습니다.

예를 들어 외부 서버에서 실시간 재고를 가져와 화면에 같이 표시하고 싶은 경우 Apex Class에서 Rest API 코드를 작성하여 외부 데이터소스에 지정하면 Line-Item Configurator에서 해당 데이터를 보실 수 있습니다.

  • External 데이터소스를 사용하기 위한 각 속성입니다.

  • External 데이터소스를 사용하기 전 Apex Class를 먼저 작성해야 합니다. Package에서 제공하는 SBLD.DataSourceService.Fetchable 인터페이스를 작성하려는 Apex Class에 implements 하여 구현합니다.

  • 준비중입니다.


속성

External 데이터소스를 사용하기 위한 각 속성입니다.

항목
설명
필수

Apex Class Name

외부데이터를 가져올 때 사용하는 클래스의 이름입니다.

✔️

Key Field

DataSource를 통해 가져온 데이터를 매핑시키기 위한 field API 이름을 나타냅니다.

✔️

Parent Field Parameters

DataSource의 Type이 External일 경우 Parent Object의 Field 중 Parameter로 넘겨줄 Field를 나타냅니다.

Lookup Field Parameters

DataSource의 Type이 External일 경우 Lookup Object의 Field 중 Parameter로 넘겨줄 Field를 나타냅니다.

Active

DataSource의 활성, 비활성 여부입니다.

✔️

Apex Class 작성

External 데이터소스를 사용하기 전 Apex Class를 먼저 작성해야 합니다. Package에서 제공하는 SBLD.DataSourceService.Fetchable 인터페이스를 작성하려는 Apex Class에 implements 하여 구현합니다.

SBLD.DataSourceService.Fetchable 클래스를 implements 하여 execute() 메서드를 구현합니다.

DataSourceServiceMock.cls
global with sharing class DataSourceServiceMock implements SBLD.DataSourceService.Fetchable {
    /***
     * @description SBLD.DataSourceService.Fetchable execute() 정의
     * @param param SBLD.DataSourceService.Parameter형 파라미터
     *              DataSource에서 설정한 
     * @return Map<Object, SObject>
     ****/
    global SBLD.DataSourceService.Result execute(SBLD.DataSourceService.Parameter param) {
        SBLD.DataSourceService.Result result = new SBLD.DataSourceService.Result();
        /**
         *  @method DataSourceService.Parameter gets()
         *  @param  String 형 Parent, Lookup 중 선택 (대소문자 구분 없음)
         *  @return List<SObject>
         **/
        SObject parentRecord = null;
        List<SObject> lookupRecords = new List<SObject>();
        // Parent 관련 파라미터를 가져옵니다.
        if(param.gets('parent')<>null && !param.gets('parent').isEmpty()) {
            parentRecord = param.gets('parent')[0];
        }
        // Lookup 관련 파라미터를 가져옵니다.
        if(param.gets('lookup')<>null && !param.gets('lookup').isEmpty()) {
            listLookupParameters = param.gets('lookup');
        }
        /**
         * 성공 시, External 결과값을 설정합니다.
         **/
        for(SObject sobj : lookupRecords) {
            /**
             * Internal의 Action과 동일하게 DataSource의 값을 
             * Lookup 또는 Line-Item 필드에 매핑하는 작업을 
             **/
            SBLD.DataSourceServiceAction action = new SBLD.DataSourceServiceAction();
            // 1. External에 설정한 External Key 값
            action.setKeyValue(sobj.get('Id')); // Product Code
            // 2. External에서 가져온 값을 Lookup 또는 Junction 필드에 매핑합니다.
            Map<String, Object> mapPopulatedField = sobj.getPopulatedFieldsAsMap();
            for(String fieldName : mapPopulatedField.keySet()) {
                action.putSourceToTargetField(mapPopulatedField.get(fieldName), fieldName);
            }
            // 3. DataSourceService.Result에 Action을 추가합니다.
            result.addAction(action);
        }
        return result;
    }
}

SBLD.DataSourceService.Parameter에서 gets() 메서드를 통해 Line-Item Configurator의 Parent 또는 Lookup 정보를 가져올 수 있습니다.

global SBLD.DataSourceService.Result execute(SBLD.DataSourceService.Parameter param) {
    SObject parentRecord = null;
    List<SObject> lookupRecords = new List<SObject>();
    // Parent 관련 파라미터를 가져옵니다.
    if(param.gets('parent')<>null && !param.gets('parent').isEmpty()) {
        parentRecord = param.gets('parent')[0];
    }
    // Lookup 관련 파라미터를 가져옵니다.
    if(param.gets('lookup')<>null && !param.gets('lookup').isEmpty()) {
        listLookupParameters = param.gets('lookup');
    }
    ...
}

Line-Item Configurator로 결과값을 전달하기 위해 아래 클래스를 이용합니다.

SBLD.DataSourceServiceAction Class

대상(Lookup 또는 Line-Item)의 행마다 Action을 지정합니다. Action은 데이터소스 값을 Lookup 또는 Line-Item 필드에 매핑하는 작업입니다.

  • setKeyValue(Object keyValue) Lookup 또는 Line-Item의 대상 레코드를 찾기 위한 Key값을 설정합니다.

  • putSourceToTargetField(Object sourceValue, String targetField) 데이터소스 값을 Lookup 또는 Line-Item 필드에 할당합니다.

SBLD.DataSourceService.Result Class

매핑이 완료된 Action을 리턴 값에 추가하는 작업입니다.

  • addAction(SBLD.DataSourceServiceAction action) SBLD.DataSourceService.Result 인스턴스에 Action을 추가합니다.

...
SBLD.DataSourceService.Result result = new SBLD.DataSourceService.Result();
for(Object objResponse : listResponses) {
    Map<String, Object> mapResponse = (Map<String, Object>)objResponse;

    SBLD.DataSourceServiceAction action = new SBLD.DataSourceServiceAction();
    // 데이터소스에서 설정한 Key 필드에 알맞는 값
    action.setKeyValue(mapResponse.get('Id')); // Product Code
    // 데이터소스에서 가져온 값을 Lookup 또는 Line-Item 필드에 넣기
    action.putSourceToTargetField(mapResponse.get('inventory'), 'Inventory__c');
    // SBLD.DataSourceService.Result에 Action을 추가한다.
    result.addAction(action);
}
return result;

예시

준비중입니다.

📦
속성
Apex Class 작성
예시