데이터 관리자
데이터 관리자는 Product Configurator의 시/도 관리 및 오케스트레이션 구성 요소입니다. 이 구성 요소는 제품 데이터를 저장하고 플로 이벤트를 사용하여 플로 화면의 다른 구성 요소에 데이터를 전파합니다.
필수 Edition
| 지원 제품: Lightning Experience |
| Enterprise, Unlimited 및 Developer Edition의 Revenue Management(이전 Revenue Cloud)에서 사용 가능 Revenue Cloud Growth 라이센스 또는 Revenue Cloud Advanced 라이센스 |
데이터 관리자 책임
- 트랜잭션 컨텍스트 및 구성 상태 유지
- Configurator API 및 프로세스 응답 호출
- UI 구성 요소에서 Lightning 메시지 서비스(LMS) 이벤트 처리
- UI에 데이터 제공 및 하위 구성 요소에 반응형 속성 노출
- 즐겨찾는 구성 저장 및 로드 지원
데이터 관리자 API 이름
S01_DataManager
데이터 관리자 입력 속성
데이터 관리자는 사용자가 설정한 상위 또는 플로 구성 요소 속성의 데이터를 허용합니다.
| 속성 | 유형 | 필수 | 상세 설명 |
|---|---|---|---|
| transactionLineId | 문자열 | 예 | 루트 제품 또는 트랜잭션 행 ID |
| currentTransactionLineId | 문자열 | 예 | 현재 표시되는 줄 |
| transactionId | 문자열 | 예 | 세일즈 트랜잭션 ID(견적서, 주문 등) |
| parentName | 문자열 | 예 | 구성이 속한 상위 트랜잭션의 이름 또는 직급입니다. |
| 원본 | 문자열 | 예 | 트랜잭션 레코드의 상위 개체의 이름입니다. 예: '기회', '견적', '주문', '자산' 등 이는 구성을 실행하는 Salesforce 개체 유형을 식별합니다. 탐색, UI 레이블 등에 사용됩니다. |
| addedNodes | 배열 | 아니요 | 상위 레코드 트랜잭션과 연결된 Apex ProductConfig__SalesTransactionItem 레코드의 모음을 포함하는 플로 자원입니다. |
| isNonBlockingEnabled | 부울 | 아니요 | 비차단 모드를 설정합니다. 이렇게 설정하면 사용자가 백그라운드에서 API 호출을 처리하는 동안 UI와 계속 상호 작용할 수 있습니다. 변경 사항은 UI를 차단하지 않고 대기열에 지정되고 비동기식으로 처리됩니다. 해제하면 API 호출 시 UI가 잠깁니다. |
| areMessagesFixed | 부울 | 아니요 | 메시지 구성 요소의 위치가 고정되어 있는지 여부입니다. true이면 메시지 구성 요소가 화면 상단에 고정된 상태로 유지되고 스크롤하는 동안 계속 표시됩니다(고정 위치). false이면 메시지 구성 요소가 페이지 콘텐츠(대상 위치)로 스크롤됩니다. 구성 중에 확인 오류/경고가 항상 표시되도록 유용 |
| contextId | 문자열 | 아니요 | Product Configurator에 지정된 트랜잭션 컨텍스트의 ID |
| enableARCValidation | 부울 | 아니요 | 제품 구성 중 ARC(Asset Renewal Configuration) 확인 실행 여부 표시 |
| transactionLineGroupId | 문자열 | 아니요 | 구성 중인 현재 트랜잭션 행이 포함된 그룹의 ID입니다. 견적서의 경우 견적서 행 그룹 ID입니다. 주문의 경우 주문 항목 그룹 ID입니다. |
| explainabilityEnabled | 부울 | 아니요 | 설명 가능성이 활성화되면 제품 구성기가 제품이 숨김, 비활성화 또는 권장되는 이유에 대한 자세한 설명을 제공합니다. 사용자가 구성 제약을 이해하는 데 도움이 되는 규칙 실행 세부 사항 및 비즈니스 논리 사유가 표시됩니다. |
| userContext | 개체 | 아니요 | 사용자 자격 증명 데이터를 포함하는 플로 변수의 API 이름입니다. 이 변수는 ProductConfig__UserContext 유형이며 사용자별 특성을 기반으로 제품 적격성을 결정합니다. 1. Flow Builder에서 변수 API 이름을 만듭니다(예: userContextData). 2. 할당 또는 레코드 가져오기 요소를 사용하여 변수를 채우고 role, region, accountType 등과 같은 필드를 설정합니다. 예를 들어, {!userContextData.role} = {!$User.UserRole.Name} 3. 데이터 관리자에서 사용자 컨텍스트로 {!userContextData}를 선택합니다. Configurator API는 이 데이터를 사용하여 자격 규칙을 평가하고 사용 가능한 제품을 필터링합니다. 예를 들어, "엔터프라이즈 세일즈 담당자에게만 엔터프라이즈 제품 표시"와 같은 규칙이 있는 경우 API가 이 컨텍스트에서 사용자의 역할을 확인합니다. 역할, 영역 등과 같은 사용자별 특성에 의존하는 제품 자격 규칙이 있는 경우에만 사용자 컨텍스트를 선택합니다. 모든 사용자가 모든 제품을 사용할 수 있는 경우 이 필드를 비워 둡니다. |
| instantPricing | 부울 | 아니요 | 인스턴스 가격 책정이 기본적으로 설정되었는지 여부를 나타내는 부울 값입니다. |
데이터 관리자 출력 속성
데이터 관리자가 고객이 읽을 수 있는 출력 속성을 작성합니다. 내부 방법이 데이터를 생성하고, FlowAttributeChangeEvent은 이 예에 표시된 대로 데이터를 관련 속성으로 발송합니다.
this.dispatchEvent(
new FlowAttributeChangeEvent(FLOW_REACTIVITY_MESSAGES, messages)
);
이 표는 데이터 관리자가 다른 구성 요소에 제공하는 데이터를 보여줍니다. 데이터 소스 열은 데이터를 생성하는 내부 프로세스를 식별합니다.
| 속성 | 데이터 유형 | 상세 설명 | 데이터 소스 |
|---|---|---|---|
| 머리글 | 개체 | 현재 제품 머리글 정보 | mergeContexts() |
| 메시지 | 배열 | 확인/오류 메시지 | API 응답 + 규칙 |
| optionGroups | 배열 | 제품 구성 요소 그룹(옵션) | mergeContexts() |
| attributeCategories | 배열 | 제품 특성 범주 | mergeContexts() |
| summary | 개체 | 구성 요약(병합 트랜잭션 트리) | mergeContexts() |
| navigationRoute | 배열 | 현재 탐색 경로 또는 브레드크럼 | buildNavigationInfo() |
| searchInfo | 배열 | 제품 카탈로그에 대한 데이터 검색 | buildSearchInfo() |
| 탭 | 배열 | 다중 루트 번들에 사용 가능한 탭 | buildTabs() |
| currencyCode | 문자열 | 가격 책정을 위한 통화 코드 | API 응답 |
| transactionRecord | 개체 | 트랜잭션 레코드 세부 사항 | populateTransactionRecord() |
| headerTitle | 문자열 | 머리글 제목 텍스트 | generateHeaderTitle() |
| isInstantPricingToggleEnabled | 부울 | 인스턴트 가격 책정 토글 표시 여부 | setToggleStates() |
| isInstantPricingEnabled | 부울 | 현재 인스턴트 가격 책정 상태 | 토글/API |
| isProductValidationEnabled | 부울 | 현재 확인 상태 | 토글/API |
| 표시가격 | 부울 | 가격 표시 여부 | 상태 논리 |
| showSummaryTotalSection | 부울 | 요약 총 섹션 표시 여부 | 보험 재정의 |
| 즐겨찾기 데이터 | 문자열(JSON) |
즐겨찾기에 대한 구성 데이터 | getFavoriteData() |
| isConfiguratorDisabled | 부울 | 구성기가 비활성화되어 있는지 여부 | UI 상태 |
| isApiInProgress | 부울 | API 호출이 진행 중인지 여부 | API 수명 주기 |
| isPriceRampEnabled | 부울 | 가격 차등이 활성화되어 있는지 여부 | 컨텍스트 확인 |
| isGroupRampEnabled | 부울 | 그룹 램프가 활성화되어 있는지 여부 | 그룹 계산 |
| salesTransactionItems | 배열 | 모든 트랜잭션 항목 | API 응답 |
| 레이아웃모드 | 문자열 | 레이아웃 모드(표준 또는 축소) | Toggle(전환) |
| searchResultOptionId | 문자열 | 선택된 검색 결과 옵션 ID | 검색 탐색 |
| rootProductId | 문자열 | 루트 제품 ID | 카탈로그 데이터 |
| currentGroupName | 문자열 | 현재 그룹 이름 | getCurrentGroupName() |
| contextMetadata | 개체 | 사용자 정의 가능한 세일즈 트랜잭션 항목 특성에 대한 컨텍스트 메타데이터입니다. UI에 표시할 수 있는 사용자 정의 특성에 대한 필드 정의(레이블, 데이터 유형, 선택 목록 값)가 포함됩니다. | 컨텍스트 구문 분석 |
| eligiblePromotions | 배열 | 적격 프로모션 목록 | 프로모션 API |
이벤트 데이터 관리자가 수신
Data Manager는 Lightning 메시지 서비스(LMS) 이벤트 및 유선 어댑터를 들을 수 있습니다.
LMS 이벤트를 듣기 위해 데이터 관리자가 메시지 채널을 구독하고 다른 구성 요소가 게시한 LMS 이벤트를 수신합니다. 이 표는 LMS 이벤트 작업, 처리기 메서드, 작업이 수행하는 작업을 보여줍니다.
| 이벤트 작업 | 핸들러 방법 | 그것이 하는 일 |
|---|---|---|
| valueChange | setState() | 구성 상태 업데이트(선택, 수량, 특성) |
| 탐색 | navigate() | 번들 계층을 탐색합니다. |
| closePreview | closePreview() | 미리 보기 창 닫기 |
| toggleInstantPricing | setInstantPricing() | 인스턴트 가격 책정 켜기/꺼기 토글 |
| 토글Explainability | setExplainability() | 설명 가능성 켜기/끄기 토글 |
| toggleRulesValidation | setProductValidation() | 확인 켜기/ 해제 토글 |
| updatePrices | updatePrices() | 수동으로 가격 책정 트리거 |
| validateProduct | validateProduct() | 수동으로 유효성 검사 트리거 |
| cloneItems | cloneItems() | 트랜잭션 항목 복제 |
| toggleCompactLayout | setLayoutModeOnToggle() | 토글 레이아웃 모드 |
| contextDefinitionChanged | setContextDefinition() | 컨텍스트 정의 업데이트 |
| saveFavConfiguration | handleSaveConfiguration() | 구성을 즐겨찾기로 저장 |
| loadFavorite | handleLoadFavorite() | 즐겨찾기 구성 로드 |
유선 어댑터는 Salesforce Platform에서 데이터 변경 사항을 자동으로 듣고 데이터 변경 사항을 데이터 관리자에게 전달합니다. 이 표는 Data Manager가 수신하는 유선 어댑터 이벤트를 보여줍니다.
| 선 어댑터 | 소스 | 수신 내용 | 핸들러 방법 | 목적 |
|---|---|---|---|---|
MessageContext |
lightning/messageService | LMS의 메시지 컨텍스트 | 해당되지 않음(컨텍스트 제공) |
LMS 통신 활성화 |
getContextServiceDefinition |
lightning/industriesContextApi | 컨텍스트 정의 변경 사항 | gotContextDefinition() |
컨텍스트 정의 데이터를 수신 |
getObjectInfos (2nd) |
lightning/uiObjectInfoApi | 트랜잭션 항목 개체 정보 | getObjectInfos() | 트랜잭션 항목 메타데이터를 수신 |
이벤트 데이터 관리자 Fire
데이터 관리자는 사용자 정의 이벤트, 토스트 이벤트, 플로 특성 변경 이벤트를 실행합니다.
이 표는 거품 및 작성된 이벤트를 포함하여 사용자 정의 이벤트 데이터 관리자 실행을 보여줍니다.
| 이벤트 이름: | 풍선 | 구성 | 발생 시점 | 목적 |
|---|---|---|---|---|
| 로드 | 예 | 예 | 초기 로드 중 | 로딩 상태 상위에 알림 |
| 진행 | 예 | 예 | 루트 시 취소 OR 닫기 창 | 저장하지 않고 구성기 닫기 |
| 저장 | 예 | 예 | 탐색 저장 및 종료 | 구성 저장 및 종료 |
| close_modal | 예 | 예 | 미리 보기 닫기 | 미리 보기 창 닫기 |
| showConflictToast | 예 | 예 | 차단되지 않는 API 충돌이 감지됨 | 충돌 경고 토스트 표시 |
다음 표는 토스트 이벤트 데이터 관리자 시작을 보여줍니다.
| 이벤트 이름: | 해고 시기 | 목적 |
|---|---|---|
| ShowToastEvent | 즐겨찾기를 성공적으로 로드한 후 | 사용자에게 즐겨찾기에 성공한 로드 알림 |
데이터 관리자는 모든 UI 업데이트에서 모든 반응형 속성에 대한 FlowAttributeChange 이벤트를 발송합니다.
