Usted está aquí:
Gestor de datos
El Gestor de datos es el componente de gestión de estado y orquestación para el Configurador de productos. Este componente almacena datos de productos y utiliza eventos de flujo para propagar los datos a otros componentes en la pantalla de flujo.
Ediciones necesarias
| Disponible en: Lightning Experience |
| Disponible en: Ediciones Enterprise, Unlimited y Developer de Gestión de ingresos (anteriormente Revenue Cloud) con la licencia Revenue Cloud Growth o la licencia Revenue Cloud Advanced |
Responsabilidades del gestor de datos
- Mantener el contexto de transacción y el estado de configuración
- Invocar la API del configurador y procesar respuestas
- Procesar eventos de Lightning Message Service (LMS) desde componentes de la interfaz de usuario
- Proporcionar datos a la interfaz de usuario y exponer propiedades reactivas a componentes secundarios
- Admite guardar y cargar configuraciones favoritas
Nombre de API del gestor de datos
S01_DataManager
Propiedades de entrada del Gestor de datos
El Gestor de datos acepta datos de propiedades de componente principal o de flujo establecidas por los usuarios.
| Propiedad | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| transactionLineId | Cadena | Sí | Id. de producto raíz o línea de transacción |
| currentTransactionLineId | Cadena | Sí | Línea actual que se está visualizando |
| transactionId | Cadena | Sí | Id. de transacción de ventas (Presupuesto, Pedido, etc.) |
| parentName | Cadena | Sí | Nombre o cargo de la transacción principal a la que pertenece la configuración. |
| origen | Cadena | Sí | Nombre del objeto principal del registro de transacción. Ejemplo: 'Oportunidad', 'Presupuesto', 'Pedido', 'Activo', etc. Esto identifica qué tipo de objeto de Salesforce inicia la configuración. Se utiliza para la navegación, la etiqueta de la interfaz de usuario, etc. |
| nodos añadidos | Matriz | No | Recurso de flujo que contiene una recopilación de registros Apex ProductConfig__SalesTransactionItem asociados con la transacción de registro principal. |
| isNonBlockingEnabled | Booleano | No | Active el modo de no bloqueo. Cuando se activa, esto permite a los usuarios continuar interactuando con la interfaz de usuario mientras las llamadas de API se procesan en segundo plano. Los cambios se ponen en cola y se procesan de forma asíncrona sin bloquear la interfaz de usuario. Cuando se desactiva, la interfaz de usuario se bloquea durante las llamadas de API. |
| areMessagesFixed | Booleano | No | Si el componente mensajes tiene una posición fija. Cuando es verdadero, el componente mensajes permanece fijo en la parte superior de la pantalla y permanece visible mientras se desplaza (posicionamiento fijo). Cuando es falso, el componente mensajes se desplaza con el contenido de la página (posicionamiento relativo). Útil para mantener los errores/advertencias de validación siempre visibles durante la configuración |
| contextId | Cadena | No | Id. del contexto de transacción especificado para Configurador de productos |
| enableARCValidation | Booleano | No | Indica si la validación de ARC (Configuración de renovación de activos) se ejecuta durante la configuración del producto |
| transactionLineGroupId | Cadena | No | Id. del grupo que contiene la línea de transacción actual que se está configurando. Para Presupuestos, este es el Id. de Grupo de partidas de presupuesto. Para Pedidos, este es el Id. de Grupo de artículos de pedido. |
| explicabilidadActivado | Booleano | No | Cuando la capacidad de explicación está activada, el Configurador de productos proporciona explicaciones detalladas de por qué los productos están ocultos, desactivados o recomendados. Muestra detalles de ejecución de reglas y razonamiento de lógica comercial para ayudar los usuarios a comprender las restricciones de configuración. |
| userContext | Objeto | No | Nombre de API de una variable de flujo que contiene datos de cualificación de usuario. Esta variable es del tipo ProductConfig__UserContext y determina la aptitud del producto basándose en atributos específicos del usuario. 1. En Flow Builder, cree un nombre de API de variable, por ejemplo, userContextData. 2. Utilice un elemento Asignación u Obtener registros para rellenar la variable y establecer campos como función, región, accountType, etc. Por ejemplo, {!userContextData.role} = {!$User.UserRole.Name} 3. En Gestor de datos, en Contexto de usuario, seleccione {!userContextData}. La API del configurador utiliza estos datos para evaluar reglas de cualificación y filtrar qué productos están disponibles. Por ejemplo, si tiene reglas como "Mostrar productos de empresa solo a representantes de ventas de empresa", la API comprueba la función del usuario desde este contexto. Seleccione un contexto de usuario solo si tiene reglas de cualificación de productos que dependen de atributos específicos del usuario como función, territorio, etc. Si todos los productos están disponibles para todos los usuarios, deje este campo vacío. |
Propiedades de salida del Gestor de datos
El Gestor de datos escribe propiedades de salida que los clientes pueden leer. Un método interno genera datos y el FlowAttributeChangeEvent despacha los datos a la propiedad relevante, como se muestra en este ejemplo.
this.dispatchEvent(
new FlowAttributeChangeEvent(FLOW_REACTIVITY_MESSAGES, messages)
);
Esta tabla muestra lo que el Gestor de datos proporciona a otros componentes. La columna Origen de datos identifica el proceso interno que genera los datos.
| Propiedad | Tipo de datos | Descripción | Origen de datos |
|---|---|---|---|
| encabezado | Objeto | Información de encabezado de producto actual | mergeContexts() |
| mensajes | Matriz | Mensajes de validación/error | Respuesta de API + reglas |
| optionGroups | Matriz | Grupos de componentes de productos (opciones) | mergeContexts() |
| attributeCategories | Matriz | Categorías de atributos de productos | mergeContexts() |
| resumen | Objeto | Resumen de configuración (árbol de transacciones combinadas) | mergeContexts() |
| navegaciónRuta | Matriz | Ruta de navegación actual o rutas de exploración | buildNavigationInfo() |
| searchInfo | Matriz | Buscar datos para catálogo de productos | buildSearchInfo() |
| fichas | Matriz | Fichas disponibles para paquetes de múltiples raíces | buildTabs() |
| currencyCode | Cadena | Código de divisa para precios | Respuesta de API |
| transactionRecord | Objeto | Detalles de registro de transacción | populateTransactionRecord() |
| encabezadoTítulo | Cadena | Texto del título del encabezado | generateHeaderTitle() |
| isInstantPricingToggleEnabled | Booleano | Si se muestra la alternancia de precios instantánea | setToggleStates() |
| isInstantPricingEnabled | Booleano | Estado de precios instantáneos actual | Conmutador/API |
| isProductValidationEnabled | Booleano | Estado de validación actual | Conmutador/API |
| showPrices | Booleano | Si mostrar precios | Lógica de estado |
| showSummaryTotalSection | Booleano | Si mostrar sección de resumen total | Sustitución de seguros |
| favoriteData | Cadena (JSON) |
Datos de configuración para favoritos | getFavoriteData() |
| isConfiguratorDisabled | Booleano | Si el configurador está desactivado | Estado de la interfaz de usuario |
| isApiInProgress | Booleano | Si la llamada de API está en curso | Ciclo de vida de API |
| isPriceRampEnabled | Booleano | Si las rampas de precios están activadas | Comprobación de contexto |
| isGroupRampEnabled | Booleano | Si las rampas de grupo están activadas | Cálculo de grupo |
| salesTransactionItems | Matriz | Todos los elementos de transacciones | Respuesta de API |
| layoutMode | Cadena | Modo de formato (estándar o compacto) | Cambiar |
| searchResultOptionId | Cadena | Id. de opción de resultado de búsqueda seleccionado | Navegación de búsqueda |
| rootProductId | Cadena | Id. de producto raíz | Datos de catálogo |
| currentGroupName | Cadena | Nombre de grupo actual | getCurrentGroupName() |
| contextMetadata | Objeto | Metadatos de contexto para atributos de Elemento de transacción de ventas personalizables. Contiene definiciones de campo (etiquetas, tipos de datos, valores de lista de selección) para atributos personalizados que se pueden mostrar en la interfaz de usuario. | Análisis de contexto |
| elegiblePromociones | Matriz | Lista de promociones aptas | API de promoción |
Eventos que escucha el Gestor de datos
El Gestor de datos escucha eventos del Servicio de mensajes Lightning (LMS) y adaptadores de cable.
Para escuchar eventos LMS, el Gestor de datos se suscribe al canal de mensajes y recibe eventos LMS que otros componentes publicaron allí. Esta tabla muestra acciones de eventos LMS, sus métodos de controlador y lo que hacen las acciones.
| Acción de evento | Método Handler | Lo que hace |
|---|---|---|
| valueChange | setState() | Actualiza el estado de configuración (selecciones, cantidades, atributos) |
| navegar | navegar() | Navega por la jerarquía de paquetes |
| closePreview | closePreview() | Cierra ventana de vista previa |
| toggleInstantPricing | setInstantPricing() | Activa/desactiva precios instantáneos |
| toggleExplicabilidad | setExplicabilidad() | Activa/desactiva la explicabilidad |
| toggleRulesValidation | setProductValidation() | Activa/desactiva la validación |
| updatePrices | updatePrices() | Desencadena precios manualmente |
| validarProducto | validarProducto() | Desencadena la validación manualmente |
| clonItems | clonItems() | Duplicar elementos de transacciones |
| toggleCompactLayout | setLayoutModeOnToggle() | Alterna el modo de formato |
| contextDefinitionChanged | setContextDefinition() | Actualiza la definición de contexto |
| saveFavConfiguration | handleSaveConfiguration() | Guarda la configuración como favorita |
| loadFavorite | handleLoadFavorite() | Carga la configuración favorita |
Los adaptadores de cable escuchan automáticamente los cambios de datos desde la plataforma de Salesforce y pasan los cambios de datos al Gestor de datos. Esta tabla muestra los eventos de adaptador de cable que escucha el Gestor de datos.
| Adaptador de cable | Origen | Para qué escucha | Método Handler | Objetivo |
|---|---|---|---|---|
MessageContext |
Lightning / servicio de mensajes | Contexto de mensajes para LMS | No aplicable (proporciona contexto) |
Activa la comunicación LMS |
getContextServiceDefinition |
Lightning / IndustriasContextoApi | Cambios de definición de contexto | gotContextDefinition() |
Escucha datos de definición de contexto |
getObjectInfos (2nd) |
Lightning / uiObjectInfoApi | Información de objeto de elemento de transacción | getObjectInfos() | Escucha metadatos de elementos de transacciones |
Eventos Desencadenamientos de gestor de datos
El Gestor de datos activa eventos personalizados, eventos de bienvenida y eventos de cambio de atributos de flujo.
Esta tabla muestra eventos personalizados que desencadena el Gestor de datos, incluyendo eventos compuestos y burbujeantes.
| Nombre del evento | Burbujas | Compuesta | Cuando se dispara | Objetivo |
|---|---|---|---|---|
| carga | Sí | Sí | Durante la carga inicial | Notificar al principal del estado de carga |
| continuar | Sí | Sí | Cancelar en la ventana raíz O cerrar | Cerrar el configurador sin guardar |
| guardar | Sí | Sí | Guardar y salir de navegación | Guardar configuración y salida |
| close_modal | Sí | Sí | Cerrar vista previa | Cerrar ventana de vista previa |
| showConflictToast | Sí | Sí | Conflictos de API no bloqueantes detectados | Mostrar brindis de advertencia de conflicto |
Esta tabla muestra los disparos del Gestor de datos de eventos de bienvenida.
| Nombre del evento | Cuándo se dispara | Objetivo |
|---|---|---|
| MostrarToastEvent | Después de cargar el favorito correctamente | Notificar al usuario de una carga de favoritos correcta |
El Gestor de datos despacha eventos FlowAttributeChange para todas las propiedades reactivas en cada actualización de la interfaz de usuario.
