資料管理員
「資料管理員」是「產品設定程式」的狀態管理和協調流程元件。此元件會儲存產品資料,並使用流程事件將資料移入流程畫面上的其他元件。
必要版本
| 適用於:Lightning Experience |
| 提供版本:具有 Revenue Cloud Growth 授權或 Revenue Cloud Advanced 授權的 Revenue Management (先前稱為 Revenue Cloud) 的 Enterprise、Unlimited 及 Developer Edition |
資料管理員責任
- 維護交易內容與組態狀態
- 叫用 Configurator API 和流程回應
- 從 UI 元件處理 Lightning 訊息服務 (LMS) 事件
- 將資料提供給 UI,並將反應性內容公開給子系元件
- 支援儲存和載入我的最愛組態
資料管理員 API 名稱
S01_DataManager
資料管理員輸入內容
資料管理員接受使用者所設定父系或流程元件內容的資料。
| 內容 | 類型 | 必要 | 描述 |
|---|---|---|---|
| transactionLineId | 字串 | 是 | 根產品或交易條列識別碼 |
| currentTransactionLineId | 字串 | 是 | 正在檢視的目前線條 |
| transactionId | 字串 | 是 | 銷售交易識別碼 (報價、訂單等) |
| ParentName | 字串 | 是 | 組態所屬父系交易的名稱或標題。 |
| 來源 | 字串 | 是 | 交易記錄父系物件的名稱。範例:「機會」、「報價」、「訂單」、「資產」等等。這會識別啟動組態的 Salesforce 物件類型。用於瀏覽、UI 標籤等。 |
| addedNodes | 陣列 | 否 | 包含與父系記錄交易相關聯之 Apex ProductConfig__SalesTransactionItem 記錄集合的流程資源。 |
| isNonBlockingEnabled | 布林值 | 否 | 開啟非封鎖模式。開啟時,這可讓使用者在 API 呼叫在背景中處理時,繼續與 UI 互動。變更會以非同步方式進行排入和處理,而不會封鎖 UI。當關閉時,UI 會在 API 呼叫期間鎖定。 |
| areMessagesFixed | 布林值 | 否 | 訊息元件是否有固定位置。若為 true,則訊息元件會固定在畫面頂端,且在捲動時保持可見 (固定定位)。若為 false,則訊息元件會捲動頁面內容 (相對位置)。在組態期間讓驗證錯誤/警告永遠可見時很實用 |
| contextId | 字串 | 否 | 針對「產品設定程式」指定的交易內容識別碼 |
| enableARCValidation | 布林值 | 否 | 表示是否在產品組態期間執行 ARC (資產續約組態) 驗證 |
| transactionLineGroupId | 字串 | 否 | 包含正在設定的目前交易條列之群組的識別碼。針對「報價」,這是「報價條列群組識別碼」。針對「訂單」,這是「訂單項目群組識別碼」。 |
| 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 |
| showPrices | 布林值 | 是否顯示價格 | 州/省邏輯 |
| showSummaryTotalSection | 布林值 | 是否顯示摘要總計區段 | 保險覆寫 |
| favoriteData | 字串 (JSON) |
我的最愛組態資料 | getFavoriteData() |
| isConfiguratorDisabled | 布林值 | 設定程式是否已停用 | UI 狀態 |
| isApiInProgress | 布林值 | API 呼叫是否正在進行中 | API 生命週期 |
| isPriceRampEnabled | 布林值 | 是否啟用價格橫幅 | 內容檢查 |
| isGroupRampEnabled | 布林值 | 是否已啟用群組 ramp | 群組計算 |
| salesTransactionItems | 陣列 | 所有交易項目 | API 回應 |
| layoutMode | 字串 | 版面配置模式 (標準或精簡) | 切換 |
| searchResultOptionId | 字串 | 選取的搜尋結果選項識別碼 | 搜尋瀏覽 |
| rootProductId | 字串 | 根產品識別碼 | 目錄資料 |
| currentGroupName | 字串 | 目前群組名稱 | getCurrentGroupName() |
| contextMetadata | 物件 | 可自訂「銷售交易項目」屬性的內容中繼資料。包含可在 UI 中顯示之自訂屬性的欄位定義 (標籤、資料類型、選項清單值)。 | 內容剖析 |
| eligiblePromotions | 陣列 | 符合資格的促銷清單 | 促銷 API |
事件資料管理員接聽
資料管理員會聆聽 Lightning Message Service (LMS) 事件和電線轉接器。
若要聆聽 LMS 事件,資料管理員會訂閱訊息管道,並接收其他元件在此發佈的 LMS 事件。此表格顯示 LMS 事件動作、其處理常式方法,以及動作的功能。
| 事件動作 | 處理常式方法 | 功能 |
|---|---|---|
| valueChange | setState() | 更新組態狀態 (選擇項目、數量、屬性) |
| 瀏覽 | navigate() | 瀏覽整個配套階層 |
| closePreview | closePreview() | 關閉預覽視窗 |
| toggleInstantPricing | setInstantPricing() | 開啟/關閉立即定價 |
| toggleExplainability | setExplainability() | 開關可說明性開啟/關閉 |
| toggleRulesValidation | setProductValidation() | 開關驗證開啟/關閉 |
| updatePrices | updatePrices() | 手動觸發定價 |
| validateProduct | validateProduct() | 手動觸發驗證 |
| cloneItems | cloneItems() | 複製交易項目 |
| toggleCompactLayout | setLayoutModeOnToggle() | 切換版面配置模式 |
| contextDefinitionChanged | setContextDefinition() | 更新內容定義 |
| saveFavConfiguration | handleSaveConfiguration() | 將組態儲存為我的最愛 |
| loadFavorite | handleLoadFavorite() | 載入我的最愛組態 |
電線轉接器會自動從 Salesforce Platform 聆聽資料變更,並將資料變更傳送至資料管理員。此表格顯示「資料管理員」接聽的電線轉接器事件。
| 電線轉接器 | 來源 | 其傾聽的對象 | 處理常式方法 | 目的 |
|---|---|---|---|---|
MessageContext |
Lightning/messageService | LMS 的訊息內容 | 不適用 (提供內容) |
啟用 LMS 通訊 |
getContextServiceDefinition |
Lightning/industriesContextApi | 內容定義變更 | gotContextDefinition() |
聆聽內容定義資料 |
getObjectInfos (2nd) |
Lightning/uiObjectInfoApi | 交易項目物件資訊 | getObjectInfos() | 聆聽交易項目中繼資料 |
事件資料管理員觸發
資料管理員會觸發自訂事件、快顯事件和流程屬性變更事件。
此表格顯示「資料管理員」觸發的自訂事件,包括泡泡和複製的事件。
| 事件名稱 | 泡泡 | 已組成 | 觸發時 | 目的 |
|---|---|---|---|---|
| 載入 | 是 | 是 | 初始載入期間 | 通知載入狀態的父系 |
| 繼續 | 是 | 是 | 根目錄取消或關閉視窗 | 無須儲存即可關閉設定程式 |
| 儲存 | 是 | 是 | 儲存並結束瀏覽 | 儲存組態並結束 |
| close_modal | 是 | 是 | 關閉預覽 | 關閉預覽視窗 |
| showConflictToast | 是 | 是 | 已偵測非封鎖 API 衝突 | 顯示衝突警告快顯 |
此表格顯示快顯事件「資料管理員」觸發。
| 事件名稱 | 何時觸發 | 目的 |
|---|---|---|
| ShowToastEvent | 成功載入我的最愛後 | 通知使用者成功載入我的最愛 |
資料管理員會為每個 UI 更新的所有反應性內容分派 FlowAttributeChange 事件。
