Loading
Менеджер данных

Менеджер данных

Диспетчер данных - это компонент управления состоянием и оркестрации для конфигуратора продуктов. Этот компонент сохраняет данные о продукте и использует события потока для распространения данных на другие компоненты в окне потока.

Требуемые версии

Доступно в версиях: Lightning Experience
Доступно в версиях: Enterprise, Unlimited и Developer Edition of Revenue Management (ранее Revenue Cloud) с лицензией Revenue Cloud Growth или Revenue Cloud Advanced

Обязанности менеджера данных

  • Сохранение контекста транзакции и состояния конфигурации
  • Вызов API конфигуратора и обработка ответов
  • Обработка событий службы сообщений Lightning (LMS) из компонентов пользовательского интерфейса
  • Предоставление данных пользовательскому интерфейсу и предоставление доступа к реактивным свойствам дочерним компонентам
  • Поддержка сохранения и загрузки избранных конфигураций

API-имя менеджера данных

S01_DataManager

Свойства ввода диспетчера данных

Диспетчер данных принимает данные из свойств родительского компонента или компонента потока, заданных пользователями.

Свойство Тип Обязательно Описание
transactionLineId Строка Да Код корневого продукта или строки транзакции
currentTransactionLineId Строка Да Просматриваемая текущая строка
transactionId Строка Да Код транзакции продажи (смета, заказ и прочие)
parentName Строка Да Имя или название родительской транзакции, к которой относится конфигурация.
происхождение Строка Да Имя родительского объекта записи транзакции. Пример: 'Opportunity', 'Quote', 'Order', 'Asset' и т. д. Таким образом определяется тип объекта Salesforce, запускающий конфигурацию. Используется для навигации, метки пользовательского интерфейса и т. д.
addedNodes Массив Нет Ресурс потока, содержащий коллекцию записей Apex ProductConfig__SalesTransactionItem, связанных с транзакцией родительской записи.
isNonBlockingEnabled Логическое значение Нет Включите режим неблокировки. При включении, это позволяет пользователям продолжать взаимодействие с пользовательским интерфейсом, пока вызовы API обрабатываются в фоновом режиме. Изменения ставятся в очередь и обрабатываются асинхронно без блокировки пользовательского интерфейса. При выключении пользовательский интерфейс блокируется во время вызовов API.
areMessagesFixed Логическое значение Нет Имеет ли компонент сообщений фиксированное положение. При истинности компонент сообщений остается фиксированным вверху экрана и остается видимым во время прокрутки (прилипание). При ложном компонент сообщений прокручивается вместе с содержимым страницы (относительное расположение). Рекомендуем использовать ошибки/предупреждения проверки, которые всегда отображаются во время настройки
contextId Строка Нет Код контекста транзакции, указанного для конфигуратора продуктов
enableARCValidation Логическое значение Нет Указывает, выполняется ли проверка ARC (конфигурация продления актива) во время конфигурации продукта
transactionLineGroupId Строка Нет Код группы, содержащей настраиваемую текущую строку транзакции. В сметах это код группы строк сметы. В заказах это код группы элементов заказа.
объяснимостьВключено Логическое значение Нет При включении объясняемости конфигуратор продуктов предоставляет подробные объяснения, почему продукты скрыты, отключены или рекомендованы. Отображает сведения о выполнении правил и аргументацию бизнес-логики, чтобы помочь пользователям понять ограничения конфигурации.
userContext Объект Нет

API-имя переменной потока, содержащей квалификационные данные пользователя. Эта переменная имеет тип ProductConfig__UserContext и определяет право продукта на основе пользовательских атрибутов.

1. В Flow Builder создайте API-имя переменной, например userContextData.

2. Используйте элемент «Назначение» или «Получение записей» для заполнения переменной и установки полей, например, роль, регион, 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()
сводка Объект Сводка конфигурации (дерево объединенных транзакций) mergeContexts()
navigationRoute Массив Текущий путь навигации или пути пути buildNavigationInfo()
searchInfo Массив Данные поиска каталога продуктов buildSearchInfo()
вкладки Массив Доступные вкладки для многокорневых пакетов buildTabs()
currencyCode Строка Код валюты для ценообразования Ответ API
transactionRecord Объект Сведения о записи транзакции populateTransactionRecord()
headerTitle Строка Текст заголовка GeneHeaderTitle()
isInstantPricingToggleEnabled Логическое значение Отображается ли переключатель мгновенного ценообразования setToggleStates()
isInstantPricingEnabled Логическое значение Текущее состояние мгновенного ценообразования Переключатель/API
isProductValidationEnabled Логическое значение Текущее состояние проверки Переключатель/API
showPrices Логическое значение Отображать ли цены Логика состояния
showSummaryTotalSection Логическое значение Отображать ли сводный общий раздел Страховое переопределение
избранноеДанные

Строка (JSON)

Данные конфигурации для избранных getFavoriteData()
isConfiguratorDisabled Логическое значение Отключен ли конфигуратор Состояние пользовательского интерфейса
isApiInProgress Логическое значение Выполняется ли вызов API Жизненный цикл API
isPriceRampEnabled Логическое значение Включены ли ценовые рампы Проверка контекста
isGroupRampEnabled Логическое значение Включены ли групповые пандусы Вычисление группы
salesTransactionItems Массив Все элементы транзакции Ответ API
layoutMode Строка Режим макета (стандартный или компактный) Переключатель
searchResultOptionId Строка Код выбранного варианта результата поиска Навигация поиска
rootProductId Строка Код корневого продукта Данные каталога
currentGroupName Строка Текущее имя группы getCurrentGroupName()
contextMetadata Объект Контекстные метаданные для настраиваемых атрибутов элемента транзакции продажи. Содержит определения полей (метки, типы данных, значения раскрывающегося списка) для настраиваемых атрибутов, которые могут отображаться в пользовательском интерфейсе. Анализ контекста
rightPromotions Массив Список подходящих рекламных акций API рекламной акции

События, прослушиваемые диспетчером данных

Диспетчер данных прослушивает события службы сообщений Lightning (LMS) и проводные адаптеры.

Чтобы прослушать события LMS, диспетчер данных подписывается на канал сообщений и получает события LMS, опубликованные другими компонентами. Данная таблица отображает действия события LMS, методы их обработки и действия.

Действие события Метод обработчика Что он делает
valueChange setState() Обновляет состояние конфигурации (выборки, количества, атрибуты)
переход navigate() Навигация по иерархии пакетов
closePreview closePreview() Закрытие окна предварительного просмотра
toggleInstantPricing setInstantPricing() Переключение мгновенного ценообразования
toggleОбъясняемость 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 После успешной загрузки избранного Уведомление пользователя об успешной загрузке избранного

Диспетчер данных отправляет события FlowAttributeChange для всех реактивных свойств при каждом обновлении пользовательского интерфейса.

 
Загрузка
Salesforce Help | Article