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
      • 25 업데이트
        • v 2.2
    • 소개
    • 시작하기 전에
      • 라이선스 및 권한 할당
      • 조직 통화 설정
      • 번역 활성화
      • 연결된 앱 설정
    • SmallBuilder Lists 시작하기
    • 셋업 절차
      • 기본 설정
        • 타이틀
        • 범례
        • 데이터 내보내기
        • 데이터 가져오기
        • 아이콘 표시
      • 데이터 테이블 설정
        • QUERY
        • 다중 선택 허용
        • 요약 표시
        • 열 추가 및 편집
          • 유형별 편집 내용
        • 가상 열 추가
        • 행 작업 추가
      • 데이터 가져오기 설정
      • 작업 설정
        • 작업 추가
      • 필터 설정
        • 필터 추가 및 설정
          • 유형별 편집 내용
      • 축소형 구성기 설정
        • 열 추가 및 설정
          • 유형별 편집 내용
      • 모바일 설정
      • 데이터 소스 설정
        • 기본
          • 작업 추가 및 설정
        • 고급
          • Apex Class 작성
      • 적용 및 관리
        • 리스트 구성기를 직접 생성하기
    • 목록 보기 (List View)
    • 행 편집 테이블 (Line editor table)
    • 기초 사용 예제
    • 고급 사용 예제
    • 마이그레이션
      • JSON 내보내기
      • JSON 가져오기
    • FAQ
    • Page
  • ❓SmallBuilder Troubleshooting
    • SmallBuilder Troubleshooting Help
      • Button 추가 경고 (페이지에 버튼이 추가되지 않는 경우)
      • Tab 추가 경고 ( Tab이 생성되고 App에 추가되었지만 보이지 않는 경우)
Powered by GitBook
On this page
  • 예시 코드
  • SBLS.DataSourceService.Parameter
  • SBLS.DataSourceService.Result
  • SBLS.DataSourceService.Action

Was this helpful?

Export as PDF
  1. SmallBuilder Lists
  2. 셋업 절차
  3. 데이터 소스 설정
  4. 고급

Apex Class 작성

Previous고급Next적용 및 관리

Last updated 4 months ago

Was this helpful?

데이터소스 고급 설정에서 사용할 Apex 클래스를 작성하려면 반드시 SBLS.DataSourceService.Fetchable 인터페이스를 구현해야 합니다.

이 인터페이스에는 execute 메서드가 포함되어 있으며, 해당 메서드에 데이터 처리를 위한 로직 구현 후 처리된 데이터와 리스트 간의 매핑 정보를 담은 SBLS.DataSourceService.Result 객체를 반환해야 합니다.


예시 코드

해당 예시 코드는 외부 API를 호출하여 제품 코드별 재고 수량을 가져온 후, 리스트에 가상 열로 생성한 재고 열(SBLS_Virtual1)에 매핑한다고 가정하였습니다.

SBLS.DataSourceService.Fetchable 인터페이스는 패키지에서 제공되는 인터페이스이므로, 패키지 외부에서 접근하려면 Apex 클래스와 제공되는 메서드 모두 global로 선언해야 합니다.

DataSourceInventory.cls
global class DataSourceInventory implements SBLS.DataSourceService.Fetchable {
    global SBLS.DataSourceService.Result execute(SBLS.DataSourceService.Parameter params) {
        // 리스트에 검색된 레코드
        List<SObject> records = params.gets();
    
        // 외부 API를 호출하여 데이터소스 값 가져오기 (예: 재고 정보)
        // 키: 제품 코드, 값: 재고 수량
        Map<String, Integer> inventoryData = new Map<String, Integer>(); 
        inventoryData.put('Product001', 10);
        inventoryData.put('Product002', 20);

        // 결과 객체 생성
        SBLS.DataSourceService.Result result = new SBLS.DataSourceService.Result();

        // 리스트 개체와 데이터소스 매핑
        for (String productCode : inventoryData.keySet()) {
            SBLS.DataSourceService.Action action = new SBLS.DataSourceService.Action();
            action.setKeyValue(productCode); // 리스트 레코드와 매핑할 Key 값 설정
            action.putSourceToTargetField(
                inventoryData.get(productCode), // 데이터소스 값: 재고 정보
                'SBLS_Virtual1'                 // 리스트 가상 열 API명
            );
            result.addAction(action); // Action 추가
        }
        
        return result; // 결과 반환
    }
}
1

리스트에 검색된 레코드 가져오기

params.gets()를 사용하여 리스트의 검색된 레코드를 가져옵니다.

2

데이터소스 값 준비

  • 외부 API 서버에서 데이터를 호출하여 재고 정보를 가져온다고 가정합니다.

  • 예시에서는 제품 코드(ProductCode)를 기반으로 재고 정보를 매핑합니다.

<String, Integer> inventoryData = new Map<String, Integer>(); 
inventoryData.put('Product001', 10);
inventoryData.put('Product002', 20);
3

결과 생성

// 결과 객체 생성
SBLS.DataSourceService.Result result = new SBLS.DataSourceService.Result();

// 리스트 개체와 데이터소스 매핑
for (String productCode : inventoryData.keySet()) {
    SBLS.DataSourceService.Action action = new SBLS.DataSourceService.Action();
    action.setKeyValue(productCode); // 리스트 레코드와 매핑할 Key 값 설정
    action.putSourceToTargetField(
        inventoryData.get(productCode), // 데이터소스 값: 재고 정보
        'SBLS_Virtual1'                 // 리스트 가상 열 API명
    );
    result.addAction(action); // Action 추가
}
4

반환

매핑된 결과를 담은 Result 객체를 반환하여, 리스트에 매핑 정보를 전달합니다.


리스트의 정보를 가진 객체입니다. 빌더에서 선택한 필드의 값만 담겨있습니다.

예시 코드

global SBLS.DataSourceService.Result execute(SBLS.DataSourceService.Parameter params) {
    List<SObject> records = params.gets();
    ...
}

Method

List<SObject> gets()

검색된 레코드를 반환합니다. 빌더에서 추가한 파라미터가 없는 경우, 값은 비어 있습니다.


예시 코드

DataSourceInventory.cls
...
SBLS.DataSourceService.Result result = new SBLS.DataSourceService.Result();
for(String productCode : inventoryData.keySet()) {
    // SBLI.DataSourceService.Action 객체에 매핑 정보 저장
    SBLS.DataSourceService.Action action = new SBLS.DataSourceService.Action();
    action.setKayValue(productCode);
    action.putSourceToTargetField(
        inventoryData.get(productCode),
        'SBLS_Virtual1'
    );
    result.addAction(action); // 매핑 정보가 담긴 Action을 Result에 추가
}
return result;

Method

addAction(SBLS.DataSourceService.Action action)

매핑 정보가 담긴 Action 객체를 Result 객체에 추가합니다.

매개변수
유형
값

action

리스트와 데이터소스 값을 매핑한 정보를 담은 객체입니다.


리스트와 데이터소스 값을 매핑한 정보를 담은 객체입니다.

예시 코드

DataSourceInventory.cls
SBLS.DataSourceService.Result result = new SBLS.DataSourceService.Result();
// 데이터소스에서 각 제품코드와 재고 정보를 반복 처리
for(String productCode : inventoryData.keySet()) {
    SBLS.DataSourceService.Action action = new SBLS.DataSourceService.Action();
    // 제품코드를 Key 값으로 설정하여 조회/라인 아이템과 매핑
    action.setKayValue(productCode);
    
    // 재고 정보를 조회/라인 아이템의 Inventory__c 필드에 매핑 
    action.putSourceToTargetField(
        inventoryData.get(productCode),    // 데이터소스 값: 재고
        'SBLS_Virtual1'                   // 가상 열 API명
    );
    result.addAction(action); // 매핑 정보 추가
}
return result; // 최종 결과 반환

Method

setKeyValue(Object keyValue)

리스트의 Key와 일치하는 데이터소스의 Key 값을 설정합니다.

매개변수
유형
값

keyValue

Object

데이터소스의 Key 값입니다.

putSourceToTargetField(Object sourceValue, String targetFieldApiName)

데이터소스 값을 원하는 리스트 필드 또는 가상 열에 할당합니다.

매개변수
유형
값

sourceValue

Object

데이터소스 값입니다.

targetFieldApiName

String

리스트의 필드 또는 가상 열의 API명입니다.

객체를 생성하여 데이터소스 값(재고 정보)을 가상 열 재고(SBLS_Virtual01)에 매핑합니다.

생성된 Action 객체를 에 추가합니다.

SBLS.DataSourceService.Parameter

SBLS.DataSourceService.Result

리스트와 데이터소스 간의 모든 매핑 정보를 담아 리스트로 반환하는 객체입니다. 매핑 정보는 객체에 저장한 뒤, SBLS.DataSourceService.Result 객체에 추가하여 반환합니다.

SBLS.DataSourceService.Action

📦
🔸
🔸
🔸
🔸
SBLS.DataSourceService.Action
SBLS.DataSourceService.Result
SBLS.DataSourceService.Action
SBLS.DataSourceService.Action