Loading
Gestionnaire de données

Gestionnaire de données

Le Gestionnaire de données est le composant de gestion d'état et d'orchestration du Configurateur de produit. Ce composant stocke les données de produits et utilise des événements de flux pour propager les données à d'autres composants de l'écran de flux.

Éditions requises

Disponible avec : Lightning Experience
Disponible avec : les éditions Enterprise, Unlimited et Developer de Gestion du revenu (anciennement Revenue Cloud) avec la licence Revenue Cloud Growth ou Revenue Cloud Advanced

Responsabilités du gestionnaire de données

  • Maintenir le contexte de la transaction et l'état de configuration
  • Invoquer l'API Configurator et traiter les réponses
  • Traiter les événements LMS (Lightning Message Service) à partir de composants de l'interface utilisateur
  • Fournir des données à l'interface utilisateur et exposer les propriétés réactives aux composants enfants
  • Prendre en charge l'enregistrement et le chargement des configurations favorites

Nom d'API du gestionnaire de données

S01_DataManager

Propriétés d'entrée du Gestionnaire de données

Le Gestionnaire de données accepte les données des propriétés du composant parent ou de flux définies par les utilisateurs.

Propriété Type Obligatoire Description
transactionLineId Chaîne Oui ID de ligne de produit ou de transaction racine
currentTransactionLineId Chaîne Oui Ligne actuelle visualisée
transactionId Chaîne Oui ID de transaction commerciale (devis, commande, etc.)
parentName Chaîne Oui Nom ou titre de la transaction parente à laquelle la configuration se rapporte.
origine Chaîne Oui Nom de l'objet parent de l'enregistrement de transaction. Exemple : 'Opportunité', 'Devis', 'Commande', 'Actif', etc. Cela identifie le type d'objet Salesforce qui lance la configuration. Utilisé pour la navigation, l'étiquette de l'interface utilisateur, etc.
addedNodes Groupe Non Ressource de flux qui contient une collection d'enregistrements Apex ProductConfig__SalesTransactionItem associés à la transaction de l'enregistrement parent.
isNonBlockingEnabled Booléen Non Activez le mode non bloquant. Lorsqu'elle est activée, elle permet aux utilisateurs de continuer à interagir avec l'interface utilisateur pendant que les appels d'API sont traités en arrière-plan. Les modifications sont mises en file d'attente et traitées de façon asynchrone sans bloquer l'interface utilisateur. Lorsqu'elle est désactivée, l'interface utilisateur est verrouillée pendant les appels d'API.
areMessagesFixed Booléen Non Indique si le composant messages a une position fixe. Si true, le composant messages reste fixe en haut de l'écran et reste visible pendant le défilement (positionnement collant). Si false, le composant messages fait défiler le contenu de la page (positionnement relatif). Utile pour garder les erreurs/avertissements de validation toujours visibles pendant la configuration
contextId Chaîne Non ID du contexte de transaction spécifié pour le Configurateur de produit
enableARCValidation Booléen Non Indique si la validation ARC (Configuration du renouvellement des actifs) est exécutée pendant la configuration du produit
transactionLineGroupId Chaîne Non ID du groupe qui contient la ligne de transaction actuelle configurée. Pour les devis, il correspond à l'ID de groupe de lignes de devis. Pour les commandes, il correspond à l'ID de groupe d'articles de commande.
explicabilitéActivé Booléen Non Lorsque l'explicabilité est activée, le configurateur de produits fournit des explications détaillées sur les raisons pour lesquelles les produits sont masqués, désactivés ou recommandés. Affiche les détails d'exécution des règles et le raisonnement logique métier pour aider les utilisateurs à comprendre les contraintes de configuration.
userContext Objet Non

Nom d'API d'une variable de flux qui contient des données de qualification utilisateur. Cette variable est de type ProductConfig__UserContext et détermine l'éligibilité du produit en fonction d'attributs spécifiques à l'utilisateur.

1. Dans Flow Builder, créez un nom d'API de variable, par exemple userContextData.

2. Utilisez un élément Attribution ou Obtenir des enregistrements pour remplir la variable, puis définissez des champs tels que role, region, accountType, etc. Par exemple, {!userContextData.role} = {!$User.UserRole.Name}

3. Dans le Gestionnaire de données, sélectionnez {!userContextData} dans Contexte de l'utilisateur. L'API Configurator utilise ces données pour évaluer les règles de qualification et filtrer les produits disponibles. Par exemple, si vous avez des règles telles que « Afficher les produits Enterprise uniquement aux commerciaux Enterprise », l'API vérifie le rôle de l'utilisateur dans ce contexte.

Sélectionnez un contexte utilisateur uniquement si vous avez des règles de qualification produit qui dépendent d'attributs spécifiques à l'utilisateur, tels que rôle, territoire, etc. Si tous les produits sont disponibles pour tous les utilisateurs, laissez ce champ vide.

Propriétés de sortie du Gestionnaire de données

Le Gestionnaire de données écrit les propriétés de sortie que les clients peuvent lire. Une méthode interne génère des données et le FlowAttributeChangeEvent les répartit vers la propriété appropriée, comme indiqué dans cet exemple.

this.dispatchEvent(
   new FlowAttributeChangeEvent(FLOW_REACTIVITY_MESSAGES, messages)
);

Le tableau ci-dessous montre les données que le Gestionnaire de données fournit aux autres composants. La colonne Source de données identifie le processus interne qui génère les données.

Propriété Type de données Description Source de données
en-tête Objet Informations sur l'en-tête du produit actuel mergeContexts()
messages Groupe Messages de validation/erreur Réponse d'API + règles
optionGroups Groupe Groupes de composants de produit (options) mergeContexts()
attributeCategories Groupe Catégories d'attributs de produit mergeContexts()
résumé Objet Résumé de configuration (arborescence des transactions fusionnées) mergeContexts()
navigationRoute Groupe Chemin de navigation actuel, ou chemins de navigation buildNavigationInfo()
searchInfo Groupe Données de recherche du catalogue de produits buildSearchInfo()
tabulations Groupe Onglets disponibles pour les paquets multiracines buildTabs()
currencyCode Chaîne Code de devise pour la tarification Réponse d'API
transactionRecord Objet Détails de l'enregistrement de transaction populateTransactionRecord()
headerTitle Chaîne Texte du titre de l'en-tête generateHeaderTitle()
isInstantPricingToggleEnabled Booléen Indique si le commutateur de tarification instantanée est affiché setToggleStates()
isInstantPricingEnabled Booléen État de tarification instantané actuel Bascule/API
isProductValidationEnabled Booléen État de validation actuel Bascule/API
showPrices Booléen Indique si les prix doivent être affichés Logique d'état
showSummaryTotalSection Booléen Indique si la section Total récapitulatif doit être affichée Remplacement d'assurance
favoriteData

Chaîne (JSON)

Données de configuration des favoris getFavoriteData()
isConfiguratorDisabled Booléen Si le configurateur est désactivé État de l'interface utilisateur
isApiInProgress Booléen Indique si l'appel d'API est en cours Cycle de vie de l'API
isPriceRampEnabled Booléen Si les rampes de prix sont activées Vérification du contexte
isGroupRampEnabled Booléen Si les rampes de groupe sont activées Calcul de groupe
salesTransactionItems Groupe Tous les éléments de transaction Réponse d'API
layoutMode Chaîne Mode de présentation (standard ou compact) Commutateur
searchResultOptionId Chaîne ID d'option de résultat de recherche sélectionné Navigation dans la recherche
rootProductId Chaîne ID de produit racine Données du catalogue
currentGroupName Chaîne Nom du groupe actuel getCurrentGroupName()
contextMetadata Objet Métadonnées de contexte des attributs Élément de transaction commerciale personnalisables. Contient des définitions de champ (étiquettes, types de données, valeurs de liste de sélection) pour des attributs personnalisés qui peuvent être affichés dans l'interface utilisateur. Analyse du contexte
eligiblePromotions Groupe Liste des promotions éligibles API Promotion

Événements que le Gestionnaire de données écoute

Le Gestionnaire de données écoute les événements Lightning Message Service (LMS) et les adaptateurs wire.

Pour écouter les événements LMS, le Gestionnaire de données s'abonne au canal de messagerie et reçoit les événements LMS que d'autres composants y ont publiés. Le tableau ci-dessous présente les actions d'événement LMS, leurs méthodes de gestionnaire et l'action exécutée.

Action d’événement Méthode Handler Ce qu'il fait
valueChange setState() Met à jour l'état de configuration (sélections, quantités, attributs)
Navigation navigate() Navigue à travers la hiérarchie des offres groupées
closePreview closePreview() Ferme la fenêtre d'aperçu
basculeInstantPricing setInstantPricing() Active/désactive la tarification instantanée
basculeExplicabilité setExplainability() Active/désactive l'explicabilité
toggleRulesValidation setProductValidation() Active/désactive la validation
updatePrices updatePrices() Déclenche manuellement la tarification
validateProduct validateProduct() Déclenche manuellement la validation
cloneItems cloneItems() Clone des éléments de transaction
basculeCompactLayout setLayoutModeOnToggle() Bascule le mode de présentation
contextDefinitionChanged setContextDefinition() Met à jour la définition du contexte
saveFavConfiguration handleSaveConfiguration() Enregistre la configuration comme favorite
loadFavorite handleLoadFavorite() Charge la configuration favorite

Les adaptateurs Wire écoutent automatiquement les modifications apportées aux données depuis la plate-forme de Salesforce, puis transmettent les modifications au Gestionnaire de données. Le tableau ci-dessous présente les événements de l'adaptateur wire que le Gestionnaire de données écoute.

Adaptateur wire Source Ce qu'il écoute Méthode Handler Objet
MessageContext Lightning/messageService Contexte du message pour LMS

Sans objet (fournit le contexte)

Active la communication LMS
getContextServiceDefinition Lightning/industriesContextApi Modifications de la définition du contexte

gotContextDefinition()

Écoute les données de définition du contexte
getObjectInfos (2nd) Lightning/uiObjectInfoApi Informations sur l'objet Élément de transaction getObjectInfos() Écoute les métadonnées des éléments de transaction

Déclenchements du Gestionnaire de données Événements

Le Gestionnaire de données déclenche des événements personnalisés, des événements flottants et des événements de changement d'attribut de flux.

Le tableau ci-dessous présente les événements personnalisés déclenchés par le Gestionnaire de données, y compris les événements bouillonnants et composés.

Nom de l'événement Bulles Composé Quand il se déclenche Objet
chargement Oui Oui Lors du chargement initial Notifier le parent de l'état de chargement
procéder Oui Oui Annuler à la racine OU Fermer la fenêtre Fermer le configurateur sans enregistrer
enregistrer Oui Oui Navigation Enregistrer et quitter Enregistrer la configuration et quitter
close_modal Oui Oui Fermer l'aperçu Fermer la fenêtre d'aperçu
showConflictToast Oui Oui Conflits d'API non bloquants détectés Afficher le message flottant d'avertissement de conflit

Le tableau ci-dessous montre l'événement flottant déclenché par le Gestionnaire de données.

Nom de l'événement Quand est-il déclenché Objet
ShowToastEvent Après avoir chargé le favori avec succès Notifier l'utilisateur d'un chargement de favori réussi

Le Gestionnaire de données répartit les événements FlowAttributeChange pour toutes les propriétés réactives à chaque mise à jour de l'interface utilisateur.

 
Chargement
Salesforce Help | Article