외부 API 서버에서 데이터를 조회하거나, 데이터 조회 및 결합 시 복잡한 로직이 요구되는 경우에 사용됩니다. 해당 비즈니스 규칙을 설정하려면 Apex 클래스를 작성해야 합니다. Apex 클래스를 사용해 구현하므로 데이터를 더 자유롭게 가져올 수 있다는 장점이 있습니다.
Apex 클래스 작성
Apex 클래스를 작성할 때, SmallBuilder에서 제공하는 인터페이스를 구현해야 합니다.
비즈니스 규칙 설정
Apex 클래스 구현이 완료되면, 빌더에서 비즈니스 규칙 설정을 진행합니다.
비즈니스 규칙 설정에서 사용할 Apex 클래스를 작성하려면 반드시 SBLI.DataSourceService.Fetchable
인터페이스를 구현해야 합니다.
이 인터페이스에는 execute
메서드가 포함되어 있으며, 해당 메서드에 데이터 처리를 위한 로직 구현 후 처리된 데이터와 조회 또는 라인 아이템 간의 매핑 정보를 담은 SBLI.DataSourceService.Result
객체를 반환해야 합니다.
해당 예시 코드는 외부 API를 호출하여 제품 코드별 재고 수량을 가져온 후, 조회 또는 라인 아이템의 재고 필드(Inventory__c
)에 매핑한다고 가정하였습니다.
SBLI.DataSourceService.Fetchable
인터페이스는 패키지에서 제공되는 인터페이스이므로, 패키지 외부에서 접근하려면 Apex 클래스와 제공되는 메서드 모두 global
로 선언해야 합니다.
빌더에서 설정한 부모와 조회 파라미터 정보를 가진 객체입니다.
SObject getParentRecord()
부모 레코드를 반환합니다. 빌더에서 추가한 부모 파라미터가 없는 경우, 값은 비어 있습니다.
List<SObject> getLookupRecords()
조회 레코드를 반환합니다. 빌더에서 추가한 조회 파라미터가 없는 경우, 값은 비어 있습니다.
addAction(SBLI.DataSourceService.Action action)
매핑 정보가 담긴 Action 객체를 Result 객체에 추가합니다.
조회 또는 라인 아이템과 비즈니스 규칙 값을 매핑한 정보를 담은 객체입니다.
setKeyValue(Object keyValue)
조회 또는 라인 아이템의 Key와 일치하는 비즈니스 규칙의 Key 값을 설정합니다.
putSourceToTargetField(Object sourceValue, String targetFieldApiName)
비즈니스 규칙 값을 원하는 조회 또는 라인 아이템 필드에 할당합니다.
라인 아이템 편집기 설정 단계에서 비즈니스 규칙의 ‘Apex 클래스를 사용하여 데이터 가져오기’ 레이아웃에서 ‘비즈니스 규칙 추가’를 클릭합니다.
Apex 클래스를 선택한 후, 클래스에서 부모와 조회 정보가 필요한 경우 파라미터로 전달할 필드들을 선택합니다.
비즈니스 규칙을 사용하려면 활성화가 필요합니다. 비즈니스 규칙이 비활성화되어 있는 경우, 설정된 규칙은 적용되지 않습니다.