조직이 처음 생성된 후 통화가 null로 설정되어 있을 수 있습니다. 통화가 올바르게 설정되지 않으면 SmallBuilder가 제대로 작동하지 않을 수 있습니다. 제품을 사용하기 전에 조직의 통화가 제대로 설정되어 있는지 확인하세요.
SmallBuilder 제품들은 영어와 한국어를 지원합니다. 기본 언어는 영어이며, 한국어 번역을 사용하려면 조직에서 번역 기능을 활성화해야 합니다.
SmallBuilder 제품에서 페이지 레이아웃에 버튼 추가, 탭 생성 등 메타데이터 관련 작업을 수행하려면 SmallBuilder에 연결된 앱에 대한 추가 설정이 필요합니다.
연결된 앱 설정
SmallBuilder 제품을 설정하는 빌더 화면에서 페이지 레이아웃에 버튼 추가, 탭 생성 등 메타데이터 관련 작업을 수행하려면 SmallBuilder에 연결된 앱에 대한 추가 설정이 필요합니다.
만약 SmallBuilder Line Items 제품을 사용하는 경우, SmallBuilder Line Items OAuth를 설정하세요.
Step 1: 허용된 사용자 설정
설정에서 빠른 찾기 상자에 연결된 앱을 입력한 후 연결된 앱 관리를 선택합니다.
SmallBuilder {제품 이름} OAuth 편집을 클릭합니다.
허용된 사용자를 관리 승인 사용자가 미리 인증됨으로 선택합니다.
저장을 클릭합니다.
설정에서 빠른 찾기 상자에 연결된 앱을 입력한 후 연결된 앱 관리를 선택합니다.
SmallBuilder {제품 이름} OAuth을 클릭합니다.
하단에 프로필 관리 또는 권한 집합 관리를 클릭합니다.
SmallBuilder 헬프
본 문서는 세일즈포스 관리자가 더 쉽게 SmallBuilder에 익숙해질 수 있도록 다양한 정보를 담고있습니다.
SmallBuilder는 윈드밀소프트가 제공하는 세일즈포스 애드온 패키지로 세일즈포스 구현 과정에서 자주 접하는 커스텀 기능을 코딩없이 구현할 수 있도록 지원하는 도구들로 구성되어 있습니다.
릴리즈 노트
'26 Update
v 3.1 - Line Item Editor의 Lookup 컬럼 값에서 레코드 상세 페이지로 이동하는 기능 추가, 빌더 필드 관리 테이블 UI/UX 개선
v 3.0 - Salesforce 정책 변경에 따라 Connected App을 외부 클라이언트 앱(External Client App, ECA)으로 전환
'25 Update
v 2.0.1 - 라인 아이템 구성기 마이그레이션 기능 구현, 텍스트 영역 필드 UI/UX 개선, 필터 오류 등 수정
- 비즈니스 규칙 변경 및 삭제 관련 오류 수정, 읽기 전용 제어 적용 오류 수정
- 패키지 업그레이드 시 수식 해제되는 오류 수정, 라인 아이템 열에 도움말 텍스트 표시 제공 등
- 컬럼 순서 변경 시 JavaScript 오류, 비즈니스 규칙 Key 매핑 오류 등 수정
옵션 기능 비활성화, 라인 아이템 가상 열 계산 기능 지원
- 모바일 UI/UX 이슈 및 일부 저장 오류 수정
- 데이터소스 명칭 및 UI/UX 변경, 라인 아이템 가상 열(Virtual Column) 제공 등
라이선스 및 권한 할당
SmallBuilder는 10개의 라이선스를 무료로 제공하고 있습니다. 제품을 사용하기 전에 각 사용자가 제품에 접근할 수 있도록 SmallBuilder 라이선스와 권한 집합을 할당해야 합니다.
샌드박스에서는 라이선스 제한이 없기 때문에, 사용자에게 라이선스를 할당하지 않아도 제품을 사용할 수 있습니다.
라이선스 할당
SmallBuilder 정식 라이선스는 사용자당 부여되어야 합니다. 라이센스를 부여하는 방식은 다음과 같습니다:
설정에서 빠른 찾기 상자에 설치된 패키지를 입력한 후 설치된 패키지를 선택합니다.
SmallBuilder {제품 이름}을 찾아 라이센스 관리를 클릭합니다.
사용자 추가를 눌러 원하는 사용자를 선택합니다.
추가를 클릭합니다.
SmallBuilder는 두 가지 권한 집합을 제공합니다. 사용자의 역할에 맞는 권한 집합을 적절히 할당해 주세요. 제품 기능을 원활하게 사용하려면 반드시 권한 집합을 할당해야 합니다.
SmallBuilder {제품 이름} Manager
SmallBuilder Manager 권한 집합은 제품의 전체 관리를 담당하는 사용자에게 할당됩니다. 주로 관리자에게 할당되며, 이 권한을 받은 관리자는 빌더 설정 구성, 라인 아이템에 버튼 추가, 리스트 제품에서 탭 생성 등 다양한 작업을 수행할 수 있습니다.
SmallBuilder {제품 이름} User
SmallBuilder User 권한 집합은 주로 영업 담당자나 프로젝트 매니저와 같은 사용자에게 할당됩니다. 이 권한 집합을 할당받은 사용자는 SmallBuilder로 구현된 리스트나 문서를 보고, 라인 아이템 및 스케줄에서 데이터를 추가 및 수정할 수 있습니다.
중요 알림
SmallBuilder 제품 사용 시 꼭 확인이 필요한 사항을 안내합니다.
Salesforce 정책 변경으로 Connected App이 외부 클라이언트 앱(ECA)으로 대체됩니다. 구버전 사용 시 빌더의 메타데이터 작업이 정상 동작하지 않을 수 있으므로 업그레이드 후 ECA 설정이 필요합니다.
번역 활성화
SmallBuilder 제품들은 영어와 한국어를 지원합니다. 기본 언어는 영어이며, 한국어 번역을 사용하려면 조직에서 번역 기능을 활성화해야 합니다.
설정에서 빠른 찾기 상자에 번역을 입력한 후 번역 언어 설정을 선택합니다.
한국어편집을 클릭합니다.
활성을 체크합니다.
저장을 클릭합니다.
영어에 대해서도 1~4번 단계를 반복합니다.
조직 통화 설정
SmallBuilder를 사용하기 위해 회사의 통화 설정을 확인합니다.
조직이 처음 생성된 후 통화가 null로 설정되어 있을 수 있습니다. 통화가 올바르게 설정되지 않으면 SmallBuilder가 제대로 작동하지 않을 수 있습니다. 제품을 사용하기 전에 조직의 통화가 제대로 설정되어 있는지 확인하세요.
설정에서 빠른 찾기 상자에 회사를 입력한 후 회사 정보를 선택합니다.
편집을 클릭합니다.
ECA 전환 필요 (2026.05.13)
제품
기준 버전
업그레이드 / ECA 설정
만약 SmallBuilder Line Items 제품을 사용하는 경우, SmallBuilder Line Items를 찾아 라이선스 관리로 이동하면 됩니다.
권한 집합 할당
만약 SmallBuilder Line Items 제품을 사용하는 경우, SmallBuilder Line Items Manager 또는 SmallBuilder Line Items User 권한 집합을 할당합니다.
Salesforce의 정책 변경으로 Connected App이 외부 클라이언트 앱(External Client App, ECA)으로 대체됩니다. 아래 기준 버전 미만의 SmallBuilder 제품을 사용 중인 경우 빌더에서 탭/버튼 생성, 페이지 레이아웃에 버튼 추가 등 메타데이터 관련 기능이 정상 동작하지 않을 수 있습니다.
원활한 사용을 위해 아래 링크를 통해 각 제품을 기준 버전 이상으로 업그레이드한 뒤 외부 클라이언트 앱(ECA) 설정을 진행해 주세요.
제품별 기준 버전 및 업그레이드
·
'26 업데이트
버전
업데이트 사항
Line Item Editor의 Lookup 컬럼 값에서 레코드 상세 페이지로 이동하는 기능 추가, 빌더 필드 관리 테이블 UI/UX 개선
Salesforce 정책 변경에 따라 Connected App을 외부 클라이언트 앱(External Client App, ECA)으로 전환
Salesforce의 정책 변경에 따라 SmallBuilder Line Items의 Connected App이 외부 클라이언트 앱(External Client App, ECA) 으로 전환되었습니다. 버전 3.0부터는 빌더에서 탭/버튼 생성, 페이지 레이아웃에 버튼 추가 등 메타데이터 관련 작업을 수행하기 위해 ECA 설정이 필요합니다.
SmallBuilder Line Items는 영어와 한국어를 지원합니다. 기본 언어는 영어이며, 한국어 번역을 사용하려면 조직에서 번역 기능을 활성화해야 합니다.
빌더에서 페이지 레이아웃에 버튼 추가, 커스텀 라벨 조회 등 메타데이터 관련 작업을 수행하려면 SmallBuilder Line Items에 연결된 앱에 대한 추가 설정이 필요합니다.
라이선스 및 권한 할당
SmallBuilder Line Items는 10개의 라이선스를 무료로 제공하고 있습니다. 제품을 사용하기 전에 각 사용자가 제품에 접근할 수 있도록 SmallBuilder Line Items 라이선스와 권한 집합을 할당해야 합니다.
샌드박스에서는 라이선스 제한이 없기 때문에, 사용자에게 라이선스를 할당하지 않아도 제품을 사용할 수 있습니다.
라이선스 할당
SmallBuilder Line Items 정식 라이선스는 사용자당 부여되어야 합니다. 라이센스를 부여하는 방식은 다음과 같습니다:
설정에서 빠른 찾기 상자에 설치된 패키지를 입력한 후 설치된 패키지를 선택합니다.
SmallBuilder Line Items를 찾아 라이센스 관리를 클릭합니다.
사용자 추가를 눌러 원하는 사용자를 선택합니다.
추가를 클릭합니다.
SmallBuilder Line Items는 두 가지 권한 집합을 제공합니다. 사용자의 역할에 맞는 권한 집합을 적절히 할당해 주세요. 제품 기능을 원활하게 사용하려면 반드시 권한 집합을 할당해야 합니다.
SmallBuilder Line Items Manager
SmallBuilder Line Items Manager 권한 집합은 조직 내 관리자가 SmallBuilder Line Items의 전체 관리를 쉽게 수행할 수 있도록 설계되었습니다. 이 권한 집합을 할당받은 관리자는 빌더 설정을 구성하거나 라인 아이템 버튼을 추가하는 등의 작업을 원활하게 진행할 수 있습니다.
SmallBuilder Line Items User
SmallBuilder Line Items User 권한 집합은 라인 아이템을 편집해야 하는 일반 사용자들이 원활하게 작업할 수 있도록 설계되었습니다. 주로 영업 담당자나 프로젝트 매니저와 같이 라인 아이템을 보고 수정하는 역할을 맡은 사용자에게 할당됩니다. 이 권한 집합을 통해 사용자는 라인 아이템 데이터를 쉽게 조회하고 업데이트할 수 있습니다.
외부 클라이언트 앱 (ECA) 설정
SmallBuilder Line Items의 빌더 화면에서 버튼 생성 및 페이지 레이아웃에 버튼 추가 등 메타데이터 관련 작업을 수행하려면 SmallBuilder Line Items에서 제공하는 외부 클라이언트 앱(External Client App)에 대한 추가 설정이 필요합니다.
설정 방법
설정에서 빠른 찾기 상자에 외부 클라이언트 앱(External Client App)을 입력한 후 외부 클라이언트 앱 관리자(External Client App Manager)를 선택합니다.
SmallBuilderLineItems를 클릭합니다.
편집을 클릭합니다.
OAuth 정책 섹션에서 허용된 사용자를 관리 승인 사용자가 사전 인가됨으로 선택합니다.
앱 정책 섹션에서 빌더 설정을 담당하는 프로필 또는 권한 집합을 선택합니다.
저장을 클릭합니다.
빌더
SmallBuilder Line Items는 빌더에서 시작됩니다. 빌더를 사용하여 맞춤형 라인 아이템 편집기를 구성하세요.
빌더에서 설정해야 하는 가장 첫 번째 단계는 라인 아이템 편집기에서 사용할 개체들의 관계를 정의하는 것입니다. 이 관계는 반드시 Junction 관계 구조를 따라야 하며, 부모(Parent), 라인 아이템(Line Item), 조회(Lookup) 개체를 설정해야 합니다.
2
라인 아이템을 등록하기 위해서는 먼저 제품과 같은 조회 개체를 검색하고 검색 결과 중 원하는 레코드를 선택하고 수량 등을 설정하여 라인 아이템을 등록합니다. 검색 설정은 조회 개체 검색 시 검색 결과 레이아웃을 설정하는 기능입니다.
3
라인 아이템 필드의 속성을 설정합니다. 앞서 선택 조회 레코드별로 가격, 할인율, 수량 등의 속성 필드를 정의합니다.
4
빌더 설정을 완료한 후, 활성화하기 전에 반드시 미리보기를 통해 설정된 기능이 올바르게 작동하는지 확인하세요. 이를 통해 예상치 못한 오류나 불완전한 설정을 사전에 발견할 수 있습니다.
5
빌더 설정이 완료되면 활성화(Activate)를 진행합니다. 활성화를 통해 편집기 기능이 적용되며, 이후 편집기를 실행하는 버튼을 생성할 수 있습니다.
6
설정을 완료한 후, 버튼을 생성하여 부모 개체의 페이지 레이아웃에 추가합니다. 버튼을 추가하면 사용자는 해당 버튼을 클릭하여 편집기를 실행할 수 있습니다.
개체 연결 (Relate Objects)
빌더에서 설정해야 하는 가장 첫 번째 단계는 라인 아이템 편집기에서 사용할 개체들의 관계를 정의하는 것입니다. 이 관계는 반드시 Junction 관계 구조를 따라야 하며, 부모(Parent), 라인 아이템(Line Item), 조회(Lookup) 개체를 설정해야 합니다.
설정 단계
1
부모 개체
부모 개체는 라인 아이템 개체의 상위 개체로, Master-Detail 또는 Lookup 관계를 가집니다. 라인 아이템 편집기는 부모 개체의 레코드 페이지에서 실행됩니다.
라인 아이템 개체는 참조 데이터를 선택하여 추가 정보를 입력하고 저장하는 역할을 하는 개체입니다.
3
조회 개체
조회 개체는 라인 아이템 개체에서 참조하는 개체로, 사용자는 조회 레코드를 선택하여 이를 기반으로 라인 아이템 레코드를 생성합니다.
기회(Opportunity)를 기준으로 여러 제품을 관리하기 위해 기회 제품(OpportunityLineItem)이라는 개체가 사용됩니다. 기회 제품은 가격 목록 항목(PricebookEntry)을 참조하여 제품 및 가격 정보를 가져옵니다. 이러한 스탠다드 기회 제품 등록 화면을 SmallBuilder Line Items를 사용하여 재구성하려고 합니다.
부모 개체: 기회
여러 제품을 연결하는 상위 개체로, 기회 제품과 Master-Detail 관계를 가집니다.
라인 아이템 개체: 기회 제품
판매 가격, 수량, 총 금액 등 제품 관련 데이터를 저장하며, 기회와 연결됩니다.
라인 아이템 개체 (Line Item Object)
라인 아이템 개체는 참조 데이터를 선택하여 추가 정보를 입력하고 저장하는 역할을 하는 개체입니다. 이 개체는 부모 개체의 하위 개체여야 하며, 빌더에서 부모 개체를 선택하면 해당 부모 개체와 연관된 하위 개체를 검색할 수 있습니다. 해당 단계에서는 필터, 정렬, 자동 번호 등의 설정들을 제공하고 있습니다.
1
라인 아이템으로 사용될 개체를 선택하고, 해당 개체를 부모 개체와 연결할 필드를 지정합니다. 스탠다드 개체를 사용하는 경우, 자동 설정 옵션을 통해 필요한 설정을 간편하게 구성할 수 있습니다.
2
라인 아이템 편집기에서 실행 시 조건에 맞는 저장된 라인 아이템을 불러오고 싶다면, 필터와 정렬 순서를 설정해보세요. 이를 통해 원하는 데이터만 표시하고, 불러오는 순서를 제어할 수 있습니다.
3
저장된 라인 아이템의 필터 및 정렬 순서 설정하기
라인 아이템 편집기에서 실행 시 조건에 맞는 저장된 라인 아이템을 불러오고 싶다면, 필터와 정렬 순서를 설정해보세요. 이를 통해 원하는 데이터만 표시하고, 불러오는 순서를 제어할 수 있습니다.
필터 설정하기
편집기 실행 시, 저장된 라인 아이템 데이터를 필터링하여 원하는 조건에 맞는 데이터만 표시할 수 있습니다. 필터 설정 방식은 SOQL의 WHERE절과 동일합니다.
예를 들어, 기회에서 기회 제품을 일반 제품과 구독 제품으로 나눠서 편집기를 사용하려는 경우, 각 편집기에 필터를 적용합니다. 구독형 기회 제품에 대한 편집기의 경우, 구분을 위해 만든 필드인 유형(Type__c)이 ‘구독’인 기회 제품 레코드만 편집 대상으로 하려면, 필터를 아래와 같이 작성하면 됩니다:
빌더에서 제품 옵션을 사용하려면 필요한 설정을 완료해야 제대로 기능을 사용할 수 있습니다.
예를 들어, 제품 옵션의 정보를 어떤 라인 아이템 필드에 저장할지, 어떤 기준으로 제품 옵션을 조회할지와 같은 필터 설정 등이 필요합니다.
3
제품 옵션 설정이 완료되면, 편집기에서 조회할 제품 옵션 데이터를 구성해야 합니다. 이를 위해 SmallBuilder Line Items에서 제공하는 제품 구성(SBLI__ProductFeature__c) 및 제품 옵션(SBLI__ProductOption__c) 개체에 데이터를 구성합니다.
제품 옵션 설정하기
버전 1.39부터 제품 옵션 기능을 더 이상 지원하지 않습니다. 단, 기존에 설치되어 제품 옵션 기능을 사용 중인 조직에서는 계속 사용할 수 있습니다.
제품 옵션을 활성화하면 빌더 상단에 ‘제품 옵션 설정’ 단계가 추가됩니다. 해당 단계에서 제품 옵션 기능을 사용하기 위한 설정을 진행합니다.
제품 옵션 설정
제품 옵션 설정은 크게 기본 설정과 라인 아이템 설정으로 나뉩니다.
제품 추가 시 옵션 선택 건너뛰기, 선택할 수 있는 옵션 필터하기 등 기본적인 설정을 진행합니다.
제품 옵션 활성화
버전 1.39부터 제품 옵션 기능을 더 이상 지원하지 않습니다. 단, 기존에 설치되어 제품 옵션 기능을 사용 중인 조직에서는 계속 사용할 수 있습니다.
제품 옵션을 사용하려면 빌더에서 제품 옵션 기능을 활성화해야 합니다. 해당 설정은 개체 연결 단계의 조회 개체 영역에서 활성화할 수 있습니다.
단, 제품 옵션 설정은 스탠다드 설정(기회, 견적, 주문)인 경우에만 가능합니다.
스탠다드 설정에서만 제품 옵션 제공
앞서 안내한 것처럼, 제품 옵션은 스탠다드 설정에서만 활성화할 수 있습니다.
제품 옵션은 가격 목록 항목(PricebookEntry)을 기준으로 제품과 단가 정보를 조회하기 때문에, 세일즈포스에서 가격 목록 항목과 유일하게 관계를 맺고 있는 기회(Opportunity), 견적(Quote), 주문(Order)에 한정하여 제공됩니다.
대상 개체
부모 개체
라인 아이템 개체
조회 개체
v 1.37
📦Package Upgrade
🗓️Release Date
2025. 4. 2.
⚙️Features
빌더 시작하기
App Launcher( )에서 SmallBuilder Line Items를 찾아 이동합니다.
라인 아이템 편집기 탭으로 이동 후 새로 만들기를 눌러 빌더를 실행합니다.
빌더의 상단에는 저장, 삭제 및 버튼 생성 등의 기능을 제공하는 버튼들이 있습니다. 왼쪽 사이드 패널에서는 빌더의 기본 설정을 관리하고 일부 레이블을 변경할 수 있으며, 오른쪽 패널에서는 단계별 설정 기능을 제공합니다.
자동 번호 설정하기
라인 아이템 저장 시 자동 번호를 설정할 수 있습니다. 이 기능은 특히 제품 옵션을 사용하는 경우, 각 라인 아이템을 구분하고 관리하기에 유용합니다.
기회 상세 페이지에서 라인 아이템 편집기를 사용해 기회 제품을 저장하고, 기회에서 견적을 생성한 뒤, 수정된 내용을 다시 기회에 동기화(Sync)하는 과정을 진행한다고 가정해 보겠습니다.
그러나 순서 정렬(SortOrder) 필드값을 올바르게 저장하지 않으면, 제품 옵션에 대한 라인 아이템들이 잘못된 순서로 정렬되어 사용자에게 혼란을 줄 수 있습니다. 이를 해결하기 위해 순서 정렬(SortOrder) 필드에 자동 번호를 할당하여, 동기화(Sync) 시 순서가 올바르게 정렬되도록 설정합니다.
빌더에서 단계에서 자동 번호 필드에 순서 정렬 필드의 API명(SortOrder
비즈니스 규칙 (Business Rule)
조회 또는 라인 아이템과 관련된 개체나 외부 API 서버에서 필요한 데이터를 조회하거나, 복잡한 로직이나 계산식을 사용해 처리된 데이터를 함께 표시하거나 일부 필드에 기본값으로 설정할 때 사용합니다.
조회 선택기 설정(Setup Lookup Selector) 또는 라인 아이템 편집기 설정(Setup Line Item Editor) 단계로 이동하면 하단에 비즈니스 규칙을 설정할 수 있는 레이아웃이 나타납니다.
단순히 관련된 개체를 조회하려는 경우, 데이터소스 기본 설정을 사용해보세요. 조회 또는 라인 아이템과 관련된 개체를 선택하고, 데이터소스를 통해 가져온 개체의 필드 값을 조회 또는 라인 아이템 필드에 매핑할 수 있습니다.
외부 API 서버에서 데이터를 조회하거나, 데이터 조회 및 결합 시 복잡한 로직이 요구되는 경우에 사용됩니다. 데이터소스 고급을 설정하려면 Apex 클래스를 작성해야 합니다. Apex 클래스를 사용해 구현하므로, 데이터소스 기본보다 데이터를 더 자유롭게 가져올 수 있다는 장점이 있습니다.
필터 설정 도구
필터 설정 도구를 사용하면 필터를 손쉽게 추가, 수정 및 삭제할 수 있습니다. 필터 값에는 부모 또는 조회 필드를 바인딩할 수 있어 동적인 조건 설정도 가능합니다. 보다 복잡한 조건이 필요한 경우, SOQL 문을 직접 입력하여 필터를 구성할 수도 있습니다.
복잡한 조건(예: 서브쿼리)이나 필터 도구에서 제공하지 않는 필드, 연산자, 값을 사용해야 하는 경우, 직접 SOQL 조건절을 입력할 수 있습니다.
필터 도구로 조건을 설정한 경우, 해당 조건이 SOQL 입력란에 자동으로 표시됩니다.
직접 작성한 SOQL이 있는 경우, 필터 도구에서 설정한 조건과 AND 조건으로 자동 연결됩니다.
만약 필드나 바인딩할 부모 및 조회 필드를 삽입해야 하는데 필드 API명을 잘 모르는 경우 우측 상단에 ‘
레이블에 커스텀 라벨 삽입하기
커스텀 라벨 적용이 가능한 곳에는 아이콘이 표시됩니다. 해당 아이콘을 클릭하면 커스텀 라벨을 선택할 수 있는 모달 창이 나타나며, 원하는 라벨을 선택하여 적용할 수 있습니다.
조회 개체 이름이 가격 목록 항목으로 설정되어 조회 선택기 버튼의 이름도 조회 개체 이름을 그대로 사용합니다. 하지만 이러한 버튼 이름은 사용자에게 어색하게 보일 수 있습니다. 세일즈포스 설정에서 개체 레이블을 변경하는 것은 비효율적입니다. 해당 개체는 여러 곳에서 다양하게 사용되므로, 다른 화면에도 영향을 미칠 가능성이 있기 때문입니다.
사이드 패널에서 레이블 메뉴로 이동합니다.
기본 설정
제품 추가 시 옵션 선택 건너뛰기, 선택할 수 있는 옵션 필터하기 등 기본적인 설정을 진행합니다.
라인 아이템 편집기를 로드하면, 기본적으로 구성 제품에 추가된 옵션들이 모두 표시되도록 옵션 라인 아이템 목록이 확장되어 있습니다.
만약 편집기 로드 시 옵션 목록을 숨기고 싶다면, ‘기본 펼치기’ 설정을 비활성화하세요.
기본 펼치기가 비활성화된 경우, 옵션 목록이 숨겨져 있습니다. 확장 아이콘()이 있는 라인 아이템 행을 클릭하면 옵션 목록을 펼쳐서 확인할 수 있습니다.
라인 아이템 옵션 값의 표시 및 저장 방식
라인 아이템의 옵션 값의 표시 및 저장 방식은 일부 옵션 값과 라인 아이템 편집기 설정 단계에서 추가된 필드 설정에 따라 결정됩니다.
옵션 값
저장 방식
조회 선택기 및 라인 아이템 편집기 설정 단계에서 필드를 모두 삭제한 후 다시 필드를 추가하여 저장할 때 오류가 발생하던 문제 해결
⚠️ 기존에 패키지가 설치된 조직에서는 라인 아이템 편집기(SBLI__JunctionBuilder__c) 개체 설정에서 아래 확인 규칙(Validation Rule)을 비활성화 하세요:
RequiredLookupFieldsAtLeastOne
RequiredLineItemFieldsAtLeastOne
편집기
옵션 가격이 수정된 상태에서 옵션 선택기를 열면 수정된 가격이 반영되지 않던 현상 해결
필드 값을 삭제한 뒤 저장하고 다시 편집기를 열었을 때, 공란 상태가 반영되지 않던 문제 해결
모바일 화면:
라인 아이템 추가 시 Recalculation Formula 관련 오류가 발생하던 문제 해결
읽기 전용 필드의 값이 없을 때 하단 필드와 간격이 없어 구분이 어려웠던 문제 개선
권한 집합 할당
화면 크기가 작은 경우, 라인 아이템 편집기가 한눈에 보기 어려울 수 있습니다. 이런 경우, 화면 비율 설정을 통해 편집기의 크기를 조절해 보세요.
편집기의 타이틀과 버튼 레이블을 원하는 레이블로 수정할 수 있습니다. 사용자 언어에 따라 번역이 필요한 경우,
편집기의 상위 개체인 부모 개체를 설정합니다. 부모 개체는 라인 아이템 편집기의 기반이 되는 개체로, 해당 개체를 기준으로 편집기가 실행됩니다.
라인 아이템 개체는 편집기에서 참조 데이터를 선택하고 추가 정보를 입력한 후 저장하는 역할을 합니다.
조회 개체는 라인 아이템이 참조하는 개체로, 이 데이터를 기반으로 라인 아이템의 데이터를 편집 및 저장합니다.
데이터소스 명칭 변경: 데이터소스에서 비즈니스 규칙(Business Rule)로 명칭이 변경되었습니다.
비즈니스 규칙 설정 화면(UI/UX) 개선
Evaluation Event에 ‘On Change’ 옵션 추가: 특정 필드 값이 변경될 때 비즈니스 규칙이 자동으로 실행되도록 설정할 수 있습니다.
데이터소스 UI/UX 변경 사항
기존 화면
변경된 화면
1
좌측 상단 타이틀 옆에 활성화 여부를 알 수 있으며 미리 보기, 버튼 추가, 저장 및 삭제 등 버튼이 모여있습니다.
버튼 추가: 활성화된 빌더 설정 기반으로 구성기의 버튼을 생성합니다. 지정한 부모 개체 기반으로 원하는 페이지 레이아웃에 버튼을 추가할 수 있습니다.
활성화: 빌더를 구성기로 사용하기 위해 활성화를 반드시 해주어야 합니다. 비활성화 상태인 경우 구성기를 사용할 수 없습니다.
저장: 빌더를 저장합니다.
2
설정 단계를 표시합니다. 단계는 3가지로 구성되어 있으며 각 설정을 누르면 번 영역이 해당 패널로 전환이 됩니다.
개체 연결: 라인 아이템 편집기는 크게 부모, 조회, 라인 아이템으로 구성되어 있습니다. 이 단계에서는 부모, 조회, 라인 아이템에 어떠한 개체를 사용하지 지정합니다. 그리고 해당 구성들에 설정하려는 개체들은 서로 Junction 관계로 맺어져 있어야 하고 개체는 스탠다드, 커스텀 모두 지원합니다.
조회 선택기 설정: 조회로 지정된 개체에 대하여 필드를 추가하고 라인 아이템 편집기 구성 시 컬럼 값 정렬 및 너비 등을 설정하는 단계입니다.
라인 아이템 편집기 설정:
3
빌더의 기본 설정을 하는 패널입니다. 빌더의 이름, 화면 비율, 장치에 따른 화면 UX 등을 설정합니다.
4
번의 단계에 따라 해당 설정 패널로 전환됩니다.
빌더 실행하기
빌더 레이아웃
1. SmallBuilder Line Items 앱 이동
2. 라인 아이템 편집기 탭으로 이동
)를 입력합니다.
정렬 순서를 표시하기 위해 라인 아이템 편집기 설정 단계에서 정렬 순서(SortOrder)를 추가합니다.
라인 아이템 편집기를 실행하면, 정렬 순서(SortOrder) 컬럼에 자동 번호가 할당된 것을 보실 수 있습니다.
자동 번호는 라인 아이템 편집기 화면에서 저장하는 경우에만 해당되며, Salesforce 내부 트랜잭션(예: API, 데이터 로더, 또는 수동 삭제)에서는 자동으로 번호가 할당되지 않습니다.
빌더에서 필터 설정은 보통 SOQL의 WHERE 절에 해당하는 구문을 입력합니다. 그러나 SOQL을 잘 모르는 관리자라면 이 과정을 어렵게 느낄 수 있습니다.
이를 해결하기 위해 쿼리 마법사를 제공하여 관리자가 SOQL 문법에 대한 깊은 지식 없이도 간단하게 필터 조건을 설정할 수 있도록 지원합니다. 쿼리 마법사를 사용하면 조건을 선택하고 값을 입력하는 방식으로 필터를 설정할 수 있어 필터 작성이 훨씬 쉬워집니다.
로직 설정하기
쿼리 마법사에서 여러 필터를 설정하면 기본적으로 조건이 ‘AND’로 묶여 생성됩니다.
예를 들어 쿼리 마법사에서 3개의 필터를 추가하였을 때:
쿼리 마법사에서 3개의 필터를 추가
쿼리 마법사에서 설정한 1~3번 필터는 다음과 같이 모두 ‘AND’로 묶여 생성됩니다.
1 AND 2 AND 3
로직 변경하기
로직을 변경하려면 로직 편집을 눌러 필터 번호를 기반으로 로직을 수정하세요.
예를 들어, 모든 조건을 OR로 변경하고 싶은 경우 아래와 같이 입력합니다:
수정한 로직대로 필터가 생성된 것을 확인할 수 있습니다.
필터를 설정할 때, 조건값을 부모 개체의 필드 값과 바인딩할 수 있습니다. 값 입력란 앞에 있는 옵션에서 부모를 선택하면, 해당 부모 개체의 필드를 선택하여 필터 조건으로 사용할 수 있습니다.
이 기능을 통해 부모 개체의 동적인 필드 값을 기준으로 필터를 설정할 수 있어 더욱 유연한 데이터 조회가 가능합니다.
가격 목록 항목의 가격 목록(Pricebook2Id)이 부모 개체인 기회의 가격 목록(Pricebook2Id)과 일치하는 데이터를 조회하도록 필터를 설정하려고 합니다.
개체 연결 단계에서 조회 개체의 필터 설정(Filter by Query)에서 쿼리 마법사 버튼을 클릭합니다.
값 입력란 옆의 옵션에서 부모(Parent)를 선택합니다.
입력란에 가격 목록(Pricebook2Id)를 검색하여 부모 개체의 가격 목록 ID를 선택합니다.
필터 조건이 {$Parent.Pricebook2Id}로 자동 바인딩되어 추가된 것을 확인합니다.
이 설정을 통해 부모 개체의 가격 목록과 일치하는 가격 목록 항목 데이터를 필터링할 수 있습니다. 쿼리 마법사를 사용하면 필터 구문이 자동으로 생성되어, 조건을 쉽고 편리하게 추가할 수 있습니다.
제품 소개
SmallBuilder Line Items는 기회 및 견적 같은 표준 개체는 물론 사용자 정의 개체에서 할인율 계산기, 외부 데이터 연동을 지원하는 라인 아이템 편집기를 개발 없이 구현하도록 지원합니다.
세일즈포스에서 대표적으로 Junction 관계를 맺은 개체로는 기회, 견적, 주문이 있습니다. 이들은 세일즈 클라우드에서 필수로 사용되는 개체들입니다. 세일즈포스에서 이러한 개체들의 라인 아이템을 추가하거나 변경할 때 제공되는 기본 기능들은 훌륭하지만, 일부 불편한 사항들이 존재합니다.
예를 들어, 판매 가격이나 수량을 입력할 때 총액이 즉시 계산되지 않거나, 할인율을 사용자가 직접 계산해 입력해야 하는 부분이 있습니다. 또한, 많은 사용자들은 제품 선택이나 라인 아이템 입력 시 자체 서버에서 재고 데이터를 가져와 참고하고 싶어 합니다. 더불어, 다른 개체에서 계정별 할인율을 자동으로 적용하여 계산되길 원합니다. 이러한 요구 사항을 해결하려면 개발자의 도움이 필요하고, 기능을 추가하거나 변경할 때 어드민이 쉽게 커스터마이징할 수 없는 한계가 있습니다. 그러나 라인 아이템 편집기를 사용하면 개발 없이 포인트 & 클릭 방식으로 이와 같은 단점을 보완할 수 있습니다.
라인 아이템 추가 또는 편집 시 자동 계산, 외부 데이터 적용 등 최소한의 개발 및 포인트 & 클릭만으로 기능 확장이 가능합니다.
설정 방법
빌더는 스탠다드 기회(Opportunity), 견적(Quote), 주문(Order)에 한해 자동 설정을 지원합니다. 따라서 부모 개체를 기회, 견적, 주문 중 하나로 지정할 경우, 아래 두 가지 설정 방법 중 선택할 수 있습니다:
복제: 최종적으로 저장된 빌더 기반으로 복제합니다. 복제 버튼을 누른 후 '저장' 버튼을 눌러야 복제가 완료됩니다.
초기화: 편집 과정에서 원래 설정으로 복구하고 싶은 경우, Reset 버튼을 누르면 최종적으로 저장된 설정으로 복구됩니다.
도움말: SmallBuilder Line Items의 헬프 문서로 이동합니다.
라인 아이템으로 지정된 개체에 대하여 필드를 추가하고 라인 아이템 편집기 구성 시 컬럼 값 정렬, 너비, 각 컬럼의 속성(숫자, 조회 필드 등)에 따른 고급 설정을 하는 단계입니다.
빌더를 이용하여 손쉽게 화면을 구현할 수 있어 시간을 절약할 수 있고 유지보수로서 기능 추가 및 수정을 하는데 어려움이 없습니다.
라인 아이템 편집기를 구현할 때 필요한 기본 설정은 개발이 필요하지 않아, 세일즈포스 기본 지식을 갖춘 어드민만으로도 화면을 구현할 수 있습니다.
Standard 화면에서 제품 추가 후 단가 또는 수량 변경 시 총액이 자동 계산이 되지 않습니다.
라인 아이템 편집기로 스탠다드의 제품 편집을 재구현하여 재고 표시, 자동 계산, 할인율 등 기능을 확장합니다.
라인 아이템 편집기는 Junction 관계를 맺은 개체들을 기반으로 구성됩니다. 앞서 말했듯이 대표적으로 기회, 견적, 주문이 있습니다. 이 중에서 기회의 라인 아이템 구조를 살펴봅시다.
우리는 기회(Opportunity)에서 제품을 추가하려고 합니다. 이때 제품의 정보와 가격 정보를 가져오기 위해서는 모든 관련 정보를 포함하는 가격 목록 항목(PricebookEntry) 개체가 필요합니다. 그런 다음, 제품을 추가할 때 입력하는 판매가, 수량 등의 정보를 함께 저장하는 개체가 바로 기회 제품(OpportunityLineItem)입니다.
기회 제품(OpportunityLineItem)은 위의 그림과 같이 기회(Opportunity)와 가격 목록 항목(PricebookEntry)의 정보를 모두 포함하고 있습니다. 기회 제품은 기회에 여러 가격 목록 항목을 등록할 수 있도록 연결해 주는 역할을 하며, 이러한 역할을 하는 개체를 Junction 개체라고 합니다.
위의 관계들만 맺고 있으면 언제든지 라인 아이템 편집기를 구현할 수 있습니다. 그리고 이러한 관계 속에 있는 각 개체들은 라인 아이템 편집기에서 아래와 같이 지칭하고 있습니다:
기회: 부모
가격 목록 항목: 조회
기회 제품: 라인 아이템
✔️모든 개체 지원
SmallBuilder Line Items의 라인 아이템 편집기는 모든 개체를 지원합니다. 따라서 표준 기회 또는 견적뿐만 아니라 커스텀 개체에서도 제품 등 라인 아이템을 처리 하는 기능을 구현 시 더 이상 코딩은 필요 없습니다.
✔️포인트 & 클릭 기반 저작 툴
기회, 제품 및 가격 목록과 같이 3개 이상의 개체로 이루어지는 복잡한 라인 아이템 편집기(Line Item Editor)를 손쉽게 구현할 수 있는 빌더를 제공하고 있습니다.
✔️외부 데이터 실시간 연동
외부 데이터의 실시간 연동이 필요한 경우 라인 아이템 편집기(Line Item Editor)는 연동을 담당하는 Apex Code를 호출하여 외부 데이터를 실시간으로 연동할 수 있도록 지원합니다.
✔️CPQ의 대안
라인 아이템 편집기(Line Item Editor)는 Currency 필드에 할인율 계산기를 적용할 수 있습니다. 편리한 할인율 계산이 중요한 경우 훌륭한 CPQ의 대안으로 활용 가능합니다.
스탠다드 설정은 부모 개체를 기반으로 라인 아이템과 조회 개체에 필요한 설정을 자동으로 구성합니다. 이를 통해 편집기를 빠르고 간편하게 설정할 수 있습니다.
예를 들어, 기회(Opportunity)에 대해 스탠다드 설정을 적용하면 다음과 같이 자동 구성됩니다:
라인 아이템 개체(Line Item Object):
기회 제품(OpportunityLineItem)으로 설정됩니다.
단가, 수량, 총 금액 등 필수 필드가 자동으로 추가됩니다.
조회 개체(Lookup Object):
가격 목록 항목(PricebookEntry)으로 설정됩니다.
조회 시 필요한 필드(예: 제품명, 단가) 및 필터 조건(예: Pricebook2Id)이 자동으로 구성됩니다.
대상 개체
부모 개체
라인 아이템 개체
조회 개체
기회
기회
Opportunity
기회 제품
OpportunityLineItem
가격 목록 항목
PricebookEntry
견적
견적
Quote
사용자 정의 개체를 사용하여 편집기를 구성하려면 직접 설정을 선택해야 합니다. 이 옵션을 통해 부모 개체, 라인 아이템 개체, 조회 개체를 수동으로 정의하여 편집기를 유연하게 설계할 수 있습니다.
직접 선택 옵션을 선택하거나, 부모 개체가 사용자 정의 개체(Custom Object)인 경우, 아래와 같은 설정 옵션이 제공됩니다:
1
개체 (Object)
라인 아이템으로 사용할 부모의 하위 개체를 선택합니다. 이 단계는 부모 개체와 연결된 하위 개체 중에서 라인 아이템으로 사용할 적절한 개체를 지정하는 과정입니다.
2
부모 참조 필드 (Parent Reference Field)
선택한 라인 아이템 개체에서 부모 개체를 참조하는 필드를 지정합니다. 이 필드는 라인 아이템 저장 시 부모 개체를 자동으로 할당하는 데 사용됩니다.
1
스탠다드: 자동 설정하기
스탠다드 설정은 부모 개체를 기반으로 라인 아이템과 조회 개체에 필요한 설정을 자동으로 구성합니다. 이를 통해 편집기를 빠르고 간편하게 설정할 수 있습니다.
2
부모 개체에 따라 설정 방법 제공
사용자 정의 개체를 사용하여 편집기를 구성하려면 직접 선택을 선택해야 합니다. 이 옵션을 통해 부모 개체, 라인 아이템 개체, 조회 개체를 수동으로 정의하여 편집기를 유연하게 설계할 수 있습니다.
스탠다드: 자동 설정하기
스탠다드 대상 개체
직접 선택: 맞춤형 라인 아이템 설정하기
라인 아이템 설정
구성 제품의 라인 아이템과 옵션 제품의 라인 아이템 간 연결할 필드를 설정하고 옵션 정보를 저장할 라인 아이템 필드를 매핑하는 작업을 수행합니다.
구성 제품 라인 아이템과 해당 옵션 라인 아이템을 연결할 필드를 설정합니다. 이 필드는 Self-Relationship이여야 하며, Self-Relationship은 동일한 개체 내에서 레코드 간의 관계를 나타내는 구조로, 한 레코드가 같은 개체의 다른 레코드를 참조할 수 있도록 설정하는 관계입니다.
상위 라인 아이템 필드를 Base Line Item for Option(SBLI__BaseLineItemForOption__c)로 설정했다고 가정하면, 아래 다이어그램과 같은 Self-Relationship 구조가 형성됩니다.
이 설정을 통해 옵션으로 생성된 기회 제품 레코드가 구성 제품의 기회 제품 레코드를 해당 필드를 통해 참조하게 됩니다.
선택한 옵션 정보를 라인 아이템의 어느 필드에 매핑할지 설정합니다. 옵션에서는 다음과 같은 정보를 제공합니다:
필드
용도
유형
필수
Option Record Id
선택한 제품 옵션의 레코드 ID입니다. 해당 값은 라인 아이템에 저장되며, 편집기에서 라인 아이템을 조회할 때 이 옵션 레코드 ID를 참조하여 필요한 옵션 정보를 가져옵니다.
ℹ️기회 제품에서는 Product Option(SBLI__ProductOption__c) 필드를 기본적으로 제공합니다. 기회에 대한 스탠다드 설정을 진행한 경우, 이 필드가 자동으로 설정됩니다. 필요에 따라 다른 필드로 대체할 수 있습니다.
조회(제품 옵션)
✔
Original Price
정가를 매핑하려는 경우, 라인 아이템에서 저장할 정가 필드를 선택합니다.
만약 편집기에서 표시 용도로만 사용하려는 경우, 라인 아이템에 추가한 열 중 정가로 사용된 필드를 지정하면 됩니다.
기회 제품에 옵션 값을 아래와 같이 매핑하였습니다:
옵션 값
기회 제품 필드
Option Record ID
제품 옵션 SBLI__ProductOption__c
Original Price
정가 ListPrice
Unit Price
단가 UnitPrice
Quantity
구성 제품인 Desktop PC Intel i3의 RAM 옵션으로 RAM 8GB를 선택합니다. 해당 옵션의 수량은 1이며, 정가와 단가는 동일하게 $45입니다.
선택한 후 추가된 라인 아이템을 확인하면, 앞서 매핑한 필드에 수량, 정가, 단가, 총액의 값이 할당된 것을 확인할 수 있습니다.
버전 1.39부터 제품 옵션 기능을 더 이상 지원하지 않습니다. 단, 기존에 설치되어 제품 옵션 기능을 사용 중인 조직에서는 계속 사용할 수 있습니다.
상위 라인 아이템 필드
기회 제품에서는 Base Line Item for Option(SBLI__BaseLineItemForOption__c) 필드를 기본적으로 제공합니다. 기회에 대한 스탠다드 설정을 진행한 경우, 이 필드가 상위 라인 아이템 필드로 자동 설정됩니다.
필요에 따라 다른 필드로 대체할 수 있습니다.
예시
이 예시에서는 기회 제품에 대한 라인 아이템 편집기를 설정하였습니다.
부모: 기회(Opportunity)
라인 아이템: 기회 제품(OpportunityLineItem)
조회: 가격 목록 항목(PricebookEntry)
라인 아이템 편집기 화면 예시
옵션 값을 라인 아이템 필드에 매핑
예시
이 예시에서는 기회 제품에 대한 라인 아이템 편집기를 설정하였습니다.
부모: 기회(Opportunity)
라인 아이템: 기회 제품(OpportunityLineItem
라인 아이템 편집기 화면 예시
관련 개체 데이터 가져오기
버전 1.37부터 ‘데이터소스(Data Source)’가 ‘비즈니스 규칙(Business Rule)’으로 명칭이 변경되었습니다.
단순히 관련된 개체를 조회하려는 경우, 해당 비즈니스 규칙을 사용해보세요. 조회 또는 라인 아이템과 관련된 개체를 선택하고, 비즈니스 규칙을 통해 가져온 개체의 필드 값을 조회 또는 라인 아이템 필드에 매핑할 수 있습니다.
관련 개체를 이용한 비즈니스 규칙 설정
번호
항목
설명
필수
1
비즈니스 규칙을 통해 가져온 데이터를 조회 또는 라인 아이템 필드와 매핑하는 작업입니다. 이 작업을 통해 비즈니스 규칙 값이 지정된 필드에 반영됩니다.
번호
항목
설명
필수
조회 개체를 제품(Product2)으로 설정한 경우, 사용자들은 일반적으로 단가(UnitPrice) 정보를 함께 표시하고 싶어합니다. 하지만 세일즈포스에서는 단가 정보가 가격 목록 항목(PricebookEntry) 개체에 저장되어 있습니다. 그러나 가격 목록 항목은 제품의 하위 개체로, 단가 정보를 수식 필드로 가져올 수 없습니다. 따라서 제품과 연결된 가격 목록 항목 데이터를 비즈니스 규칙을 이용해 조회하려고 합니다.
조회 선택기 설정 단계에서 조회 필드에 통화 유형의 가상 열을 추가합니다.
바로 하단에 비즈니스 규칙의 ‘관련 객체에서 데이터 가져오기’ 레이아웃에서 비즈니스 규칙 추가를 클릭합니다.
비즈니스 규칙에서 소스 개체(Source Object)를 가격 목록 항목(PricebookEntry)로 지정합니다.
조회 선택기에서 제품에 대한 데이터소스를 통해 가져온 단가 정보가 함께 표시되는 것을 확인할 수 있습니다.
비즈니스 규칙과 조회 또는 라인 아이템 간 데이터 매핑 시 사용할 고유 식별 값입니다. Key를 기준으로 비즈니스 규칙 값이 매핑될 대상을 결정합니다.
2
규칙 필드
작업
예시: 제품의 단가 표시
이 예시에서는 기회 제품에 대한 라인 아이템 편집기를 설정하였습니다.
부모: 기회(Opportunity)
라인 아이템: 기회 제품(OpportunityLineItem)
조회: 제품(Product2)
설정
결과
조회 필드에서 단가 정보를 표시할 가상 열을 추가합니다.
비즈니스 규칙 설정 화면입니다.
비즈니스 규칙의 소스 개체에서 가져올 필드를 선택합니다.
주요 데이터 구성은 제품 옵션을 중심으로 이루어지며, 제품 구성은 필요에 따라 추가로 설정됩니다.
제품 옵션을 카테고리별로 그룹화합니다.
레이블
제품 구성(Product Feature)
API명
SBLI__ProductFeature__c
속성
필드 API명
설명
필수
순서
SBLI__Order__c
옵션 선택 화면에서 나열될 순서를 설정합니다.
기본 제품
SBLI__Product__c
옵션의 주요 개체로, 옵션 제품과 관련 정보를 관리합니다.
레이블
제품 옵션(Product Option)
API명
SBLI__ProductOption__c
속성
필드 API명
설명
필수
순서
SBLI__Order__c
옵션 선택 화면에서 나열될 순서를 설정합니다.
제품 구성
SBLI__Feature__c
제품 구성
제품 옵션을 그룹화하려는 경우 사용되는 선택적인 개체입니다.
제품 옵션
버전 1.39부터 제품 옵션 기능을 더 이상 지원하지 않습니다. 단, 기존에 설치되어 제품 옵션 기능을 사용 중인 조직에서는 계속 사용할 수 있습니다.
주요 개체로, 옵션 제품과 관련 정보를 관리합니다.
제품 구성
개체 정보
필드 정보
제품 옵션
개체 정보
필드 정보
값:
부모/가격 목록(Pricebook2Id)
해당 옵션의 구성 제품을 지정합니다
✔
설명
SBLI__Description__c
제품 구성에 대한 설명을 제공합니다.
다중 선택 가능
SBLI__MultiSelectable__c
해당 구성에서 여러 옵션을 선택할 수 있도록 허용할지 여부를 설정합니다.
제품 구성을 참조하는 관계 필드입니다. 구성에 옵션을 추가하려면 해당 필드를 사용하여 연결하세요.
기본 제품
SBLI__Product__c
구성 제품을 나타냅니다.
✔
옵션 제품
SBLI__OptionalProduct__c
옵션으로 사용할 제품을 지정합니다.
✔
수량
SBLI__Quantity__c
옵션의 수량을 나타냅니다. 기본값은 1로 설정됩니다.
단가
SBLI__UnitPrice__c
옵션의 단가를 지정합니다. 단가를 지정하지 않은 경우, 가격 목록 항목(Pricebook Entry)에서 단가를 참조합니다.
할인율(%)
SBLI__Discount__c
옵션의 할인율을 나타냅니다. 할인율이 설정된 경우, 총액에 반영됩니다.
할인가
SBLI__DiscountAmount__c
옵션의 할인 금액을 나타냅니다. 할인가가 설정된 경우, 총액에 반영됩니다.
필수
SBLI__Required__c
옵션 선택 시 필수로 선택해야 하는 항목으로 설정합니다.
선택됨
SBLI__Selected__c
옵션 선택 시 기본적으로 선택된 상태로 설정됩니다.
포함됨
SBLI__Included__c
옵션이 포함된 상태로 설정됩니다. 포함된 옵션은 금액이 단가 및 총액에 반영되지 않으며, 편집기에서 Included로 표시됩니다.
단가 편집 가능
SBLI__PriceEditable__c
옵션 단가를 사용자가 수정할 수 있도록 허용합니다. 기본적으로 옵션 단가는 수정할 수 없습니다.
수량 편집 가능
SBLI__QuantityEditable__c
옵션 수량을 사용자가 수정할 수 있도록 허용합니다. 기본적으로 옵션 수량은 수정할 수 없습니다.
최소 수량
SBLI__MinQuantity__c
옵션 수샹 수정이 가능한 경우, 옵션 선택 단계에서 설정할 최소 수량입니다.
최대 수량
SBLI__MaxQuantity__c
옵션 수샹 수정이 가능한 경우, 옵션 선택 단계에서 설정할 최대 수량입니다.
설명
SBLI__Description__c
옵션에 대한 상세 설명을 제공합니다.
Apex 클래스를 활용해 다양한 방식으로 데이터 가져오기
버전 1.37부터 ‘데이터소스(Data Source)’가 ‘비즈니스 규칙(Business Rule)’으로 명칭이 변경되었습니다.
외부 API 서버에서 데이터를 조회하거나, 데이터 조회 및 결합 시 복잡한 로직이 요구되는 경우에 사용됩니다. 해당 비즈니스 규칙을 설정하려면 Apex 클래스를 작성해야 합니다. Apex 클래스를 사용해 구현하므로 데이터를 더 자유롭게 가져올 수 있다는 장점이 있습니다.
설정 과정
1
Apex 클래스 작성
Apex 클래스를 작성할 때, SmallBuilder에서 제공하는 인터페이스를 구현해야 합니다.
2
비즈니스 규칙 설정
Apex 클래스 구현이 완료되면, 빌더에서 비즈니스 규칙 설정을 진행합니다.
비즈니스 규칙 설정에서 사용할 Apex 클래스를 작성하려면 반드시 SBLI.DataSourceService.Fetchable인터페이스를 구현해야 합니다.
이 인터페이스에는 execute 메서드가 포함되어 있으며, 해당 메서드에 데이터 처리를 위한 로직 구현 후 처리된 데이터와 조회 또는 라인 아이템 간의 매핑 정보를 담은 SBLI.DataSourceService.Result 객체를 반환해야 합니다.
해당 예시 코드는 외부 API를 호출하여 제품 코드별 재고 수량을 가져온 후, 조회 또는 라인 아이템의 재고 필드(Inventory__c)에 매핑한다고 가정하였습니다.
1
부모 레코드 및 조회 레코드 가져오기
params.getParentRecord(): 부모 개체의 레코드를 가져옵니다.
params.getLookupRecords(): 조회 개체의 레코드 목록을 가져옵니다.
빌더에서 설정한 부모와 조회파라미터 정보를 가진 객체입니다.
SObject getParentRecord()
부모 레코드를 반환합니다. 빌더에서 추가한 부모 파라미터가 없는 경우, 값은 비어 있습니다.
List<SObject> getLookupRecords()
조회 레코드를 반환합니다. 빌더에서 추가한 조회 파라미터가 없는 경우, 값은 비어 있습니다.
조회 또는 라인 아이템과 비즈니스 규칙 간의 모든 매핑 정보를 담아 편집기로 반환하는 객체입니다. 매핑 정보는 객체에 저장한 뒤, SBLI.DataSourceService.Result 객체에 추가하여 반환합니다.
// 결과 객체 생성
SBLI.DataSourceService.Result result = new SBLI.DataSourceService.Result();
// 조회/라인 아이템 개체와 비즈니스 규칙으로 가져온 값 매핑
for (String productCode : inventoryData.keySet()) {
SBLI.DataSourceService.Action action = new SBLI.DataSourceService.Action();
action.setKeyValue(productCode); // 조회/라인 아이템 레코드와 매핑할 Key 값 설정
action.putSourceToTargetField(
inventoryData.get(productCode), // 비즈니스 규칙 값: 재고 정보
'Inventory__c' // 조회/라인 아이템 필드 API명
);
result.addAction(action); // Action 추가
}
4
반환
매핑된 결과를 담은 Result 객체를 반환하여, 편집기에 매핑 정보를 전달합니다.
4
평가 이벤트
비즈니스 규칙의 실행 시점을 설정합니다.
초기화 시(On Initialization): 라인 아이템 레코드가 새로 추가될 때 실행됩니다.
로딩 시(On Loading): 라인 아이템 화면이 로드될 때마다 실행됩니다.
변경 시(On Change): 라인 아이템의 특정 필드가 변경될 때마다 실행됩니다.
✔
5
작업 키
비즈니스 규칙을 통해 가져온 데이터를 조회 또는 라인 아이템 레코드에 매핑하기 위해 Key 필드를 설정합니다.
Key 필드는 조회 개체의 필드를 사용합니다.
💁라인 아이템에서 조회 개체의 필드를 Key로 사용하는 이유는, 라인 아이템이 저장되지 않은 레코드일 수도 있어 유일한 Key 값을 판단하기 어렵기 때문입니다.
✔
global class DataSourceInventory implements SBLI.DataSourceService.Fetchable {
global SBLI.DataSourceService.Result execute(SBLI.DataSourceService.Parameter params) {
// 부모 레코드 가져오기
SObject parentRecord = params.getParentRecord();
// 조회 개체 레코드 가져오기
List<SObject> lookupRecords = params.getLookupRecords();
// 외부 API를 호출하여 재고 정보 가져오기
// 키: 제품 코드, 값: 재고 수량
Map<String, Integer> inventoryData = new Map<String, Integer>();
inventoryData.put('Product001', 10);
inventoryData.put('Product002', 20);
// 결과 객체 생성
SBLI.DataSourceService.Result result = new SBLI.DataSourceService.Result();
// 조회/라인 아이템 개체와 결과 값 매핑
for (String productCode : inventoryData.keySet()) {
SBLI.DataSourceService.Action action = new SBLI.DataSourceService.Action();
action.setKeyValue(productCode); // 조회/라인 아이템 레코드와 매핑할 Key 값 설정
action.putSourceToTargetField(
inventoryData.get(productCode), // 결과 값: 재고 정보
'Inventory__c' // 조회/라인 아이템 필드 API명
);
result.addAction(action); // Action 추가
}
return result; // 결과 반환
}
}
// 부모 레코드 가져오기
SObject parentRecord = params.getParentRecord();
// 조회 개체 레코드 가져오기
List<SObject> lookupRecords = params.getLookupRecords();
SBLI.DataSourceService.Result result = new SBLI.DataSourceService.Result();
for(String productCode : inventoryData.keySet()) {
// SBLI.DataSourceService.Action 객체에 매핑 정보 저장
SBLI.DataSourceService.Action action = new SBLI.DataSourceService.Action();
action.setKeyValue(productCode);
action.putSourceToTargetField(
inventoryData.get(productCode),
'Inventory__c'
);
result.addAction(action); // 매핑 정보가 담긴 Action을 Result에 추가
}
return result;