Gegevensbeheer
Gegevensbeheer is de component voor statusbeheer en doeltreffende combinatie voor Productconfigurator. Deze component slaat productgegevens op en gebruikt stroomevents om de gegevens door te geven aan andere componenten op het stroomscherm.
Vereiste editions
| Beschikbaar in: Lightning Experience |
| Beschikbaar in: Enterprise, Unlimited en Developer Edition van Revenue Management (voorheen Revenue Cloud) met de Revenue Cloud Growth-licentie of de Revenue Cloud Advanced-licentie |
Verantwoordelijkheden van gegevensmanager
- De transactiecontext en configuratiestatus onderhouden
- De Configurator-API aanroepen en responsen verwerken
- Lightning Message Service-events (LMS) verwerken vanuit UI-componenten
- Gegevens aanleveren aan UI en reactieve eigenschappen zichtbaar maken aan onderliggende componenten
- Ondersteuning voor het opslaan en laden van favoriete configuraties
API-naam van Gegevensbeheer
S01_DataManager
Invoereigenschappen van Gegevensbeheer
Gegevensbeheer accepteert gegevens van bovenliggende of door gebruikers ingestelde eigenschappen van stroomcomponenten.
| Eigenschap | Type | Verplicht | Beschrijving |
|---|---|---|---|
| transactionLineId | Tekenreeks | Ja | Rootproduct- of transactieregel-ID |
| currentTransactionLineId | Tekenreeks | Ja | Huidige regel die wordt weergegeven |
| transactionId | Tekenreeks | Ja | Verkooptransactie-ID (offerte, order, enzovoort) |
| bovenliggendeNaam | Tekenreeks | Ja | Naam of titel van de bovenliggende transactie waarop de configuratie betrekking heeft. |
| herkomst | Tekenreeks | Ja | Naam van het bovenliggende object van de transactierecord. Voorbeeld: 'Opportunity', 'Offerte', 'Order', 'Activum', enzovoort. Dit geeft aan welk Salesforce-objecttype de configuratie start. Gebruikt voor navigatie, UI-label enzovoort. |
| addedNodes | Array | Nee | Stroomresource die een verzameling Apex ProductConfig__SalesTransactionItem-records bevat die zijn gekoppeld aan de bovenliggende recordtransactie. |
| isNonBlockingEnabled | Booleaans | Nee | Schakel de niet-blokkeringsmodus in. Indien ingeschakeld, kunnen gebruikers blijven werken met de UI terwijl API-aanroepen op de achtergrond worden verwerkt. Wijzigingen worden asynchroon in de wachtrij geplaatst en verwerkt zonder de UI te blokkeren. Indien uitgeschakeld, wordt de UI vergrendeld tijdens API-aanroepen. |
| areMessagesFixed | Booleaans | Nee | Of berichtencomponent een vaste positie heeft. Indien true (waar), blijft de berichtencomponent boven aan het scherm vast en blijft deze zichtbaar tijdens scrollen (sticky positionering). Indien false (onwaar), scrolt de berichtencomponent met de pagina-inhoud mee (relatieve positionering). Handig om validatiefouten/waarschuwingen altijd zichtbaar te houden tijdens configuratie |
| contextId | Tekenreeks | Nee | ID van de transactiecontext die is opgegeven voor Productconfigurator |
| enableARCValidation | Booleaans | Nee | Geeft aan of de ARC-validatie (Asset Renewal Configuration) wordt uitgevoerd tijdens de productconfiguratie |
| transactionLineGroupId | Tekenreeks | Nee | ID van de groep die de huidige transactielijn bevat die wordt geconfigureerd. Voor offertes is dit de ID van de offerteregelgroep. Voor orders is dit de ID van de orderitemgroep. |
| explainabilityEnabled | Booleaans | Nee | Wanneer Uitlegbaarheid is ingeschakeld, geeft de Productconfigurator gedetailleerde uitleg over waarom producten verborgen, uitgeschakeld of aanbevolen zijn. Toont details van de uitvoering van regels en bedrijfslogicaredeneringen om gebruikers te helpen configuratiebeperkingen te begrijpen. |
| userContext | Object | Nee | API-naam van een stroomvariabele die gebruikerskwalificatiegegevens bevat. Deze variabele is van het type ProductConfig__UserContext en bepaalt de aanspraak op producten op basis van gebruikersspecifieke kenmerken. 1. Maak in Flow Builder een API-naam voor variabelen, bijvoorbeeld userContextData. 2. Gebruik een element Toewijzing of Records ophalen om de variabele in te vullen en velden in te stellen zoals rol, regio, accountType, enzovoort. Bijvoorbeeld {!userContextData.role} = {!$User.UserRole.Name} 3. Selecteer in Gegevensbeheer bij Gebruikerscontext {!userContextData}. De Configurator-API gebruikt deze gegevens om kwalificatieregels te evalueren en te filteren welke producten beschikbaar zijn. Als u bijvoorbeeld regels hebt zoals "Ondernemingsproducten alleen tonen aan verkoopvertegenwoordigers voor de onderneming", controleert de API de rol van de gebruiker vanuit deze context. Selecteer alleen een gebruikerscontext als u productkwalificatieregels hebt die afhankelijk zijn van gebruikersspecifieke kenmerken zoals rol, territorium, enzovoort. Als alle producten beschikbaar zijn voor alle gebruikers, laat u dit veld leeg. |
Gegevensbeheer-uitvoereigenschappen
Gegevensbeheer schrijft uitvoereigenschappen die klanten kunnen lezen. Een interne methode genereert gegevens en de FlowAttributeChangeEvent verzendt de gegevens naar de relevante eigenschap, zoals getoond in dit voorbeeld.
this.dispatchEvent(
new FlowAttributeChangeEvent(FLOW_REACTIVITY_MESSAGES, messages)
);
Deze tabel toont welke gegevens Gegevensbeheer aan andere componenten levert. De kolom Gegevensbron identificeert het interne proces dat de gegevens genereert.
| Eigenschap | Gegevenstype | Beschrijving | Gegevensbron |
|---|---|---|---|
| header | Object | Actuele productkoptekstinformatie | mergeContexts() |
| berichten | Array | Validatie-/foutberichten | API-respons + regels |
| optionGroups | Array | Productcomponentgroepen (opties) | mergeContexts() |
| attributeCategories | Array | Productkenmerkcategorieën | mergeContexts() |
| summary | Object | Configuratiesamenvatting (samengevoegde transactiestructuur) | mergeContexts() |
| navigationRoute | Array | Huidig navigatiepad of kruimels | buildNavigationInfo() |
| searchInfo | Array | Gegevens zoeken voor productcatalogus | buildSearchInfo() |
| tabbladen | Array | Beschikbare tabbladen voor bundels met meerdere wortels | buildTabs() |
| currencyCode | Tekenreeks | Valutacode voor prijsstelling | API-respons |
| transactionRecord | Object | Details van transactierecord | populateTransactionRecord() |
| headerTitel | Tekenreeks | Titeltekst van koptekst | generateHeaderTitle() |
| isInstantPricingToggleIngeschakeld | Booleaans | Of de aan-/uitfunctie voor onmiddellijke prijzen wordt getoond | setToggleStates() |
| isInstantPricingEnabled | Booleaans | Huidige status voor onmiddellijke prijzen | Aan/uit |
| isProductValidationEnabled | Booleaans | Huidige validatiestatus | Aan/uit |
| showPrices | Booleaans | Of prijzen moeten worden getoond | Statuslogica |
| showSummaryTotalSection | Booleaans | Of de sectie Overzichtstotaal moet worden getoond | Verzekeringsoverschrijving |
| favouriteData | Tekenreeks (JSON) |
Configuratiegegevens voor favorieten | getFavoriteData() |
| isConfiguratorUitgeschakeld | Booleaans | Of configurator is uitgeschakeld | UI-status |
| isApiInProgress | Booleaans | Of API-aanroep gaande is | API-levenscyclus |
| isPriceRampEnabled | Booleaans | Of prijsverhogingen zijn ingeschakeld | Contextcontrole |
| isGroupRampEnabled | Booleaans | Of groepshellingen zijn ingeschakeld | Groepsberekening |
| salesTransactionItems | Array | Alle transactie-items | API-respons |
| lay-outMode | Tekenreeks | Lay-outmodus (standaard of compact) | Aan/uit |
| searchResultOptionId | Tekenreeks | ID van geselecteerde zoekresultaatoptie | Zoeknavigatie |
| rootProductId | Tekenreeks | Rootproduct-ID | Catalogusgegevens |
| currentGroupName | Tekenreeks | Huidige groepsnaam | getCurrentGroupName() |
| contextMetadata | Object | Contextmetagegevens voor aanpasbare kenmerken van Verkooptransactie-item. Bevat velddefinities (labels, gegevenstypen, keuzelijstwaarden) voor aangepaste kenmerken die kunnen worden weergegeven in de UI. | Context parseren |
| eligiblePromotions | Array | Lijst van in aanmerking komende speciale acties | Speciale actie-API |
Events waarnaar Gegevensbeheer luistert
Gegevensbeheer luistert naar Lightning Message Service-events (LMS) en draadadapters.
Als u naar LMS-events wilt luisteren, abonneert Gegevensbeheer zich op het berichtenkanaal en ontvangt LMS-events die andere componenten daar hebben gepubliceerd. Deze tabel toont LMS-eventacties, hun handlermethoden en wat de acties doen.
| Actie van event | Handlermethode | Wat het doet |
|---|---|---|
| valueChange | setState() | Werkt configuratiestatus bij (selecties, hoeveelheden, kenmerken) |
| navigeren | navigate() | Navigeert door bundelhiërarchie |
| closePreview | closePreview() | Sluit voorbeeldvenster |
| toggleInstantPricing | setInstantPricing() | Schakelt onmiddellijke prijzen aan/uit |
| toggleExplainability | setExplainability() | Verklaarbaarheid aan/uit |
| toggleRulesValidation | setProductValidation() | Schakelt validatie aan/uit |
| updatePrijzen | updatePrices() | Activeert handmatig prijsstelling |
| validateProduct | validateProduct() | Activeert handmatig validatie |
| kloonitems | cloneItems() | Kloont transactie-items |
| toggleCompactLay-out | setLayoutModeOnToggle() | Lay-outmodus aan/uit |
| contextDefinitionChanged | setContextDefinition() | Werkt contextdefinitie bij |
| saveFavConfiguration | handleSaveConfiguration() | Slaat configuratie op als favoriet |
| loadFavoriet | handleLoadFavorite() | Laadt favoriete configuratie |
Wire-adapters luisteren automatisch naar gegevenswijzigingen van het Salesforce-platform en geven de gegevenswijzigingen door aan Gegevensbeheer. Deze tabel toont de wire adapter-events waarnaar Gegevensbeheer luistert.
| Draadadapter | Bron | Waar het naar luistert | Handlermethode | Doel |
|---|---|---|---|---|
MessageContext |
Lightning / messageService | Berichtcontext voor LMS | Niet van toepassing (geeft context) |
Schakelt LMS-communicatie in |
getContextServiceDefinition |
Lightning / IndustriesContextApi | Contextdefinitiewijzigingen | gotContextDefinition() |
Luistert naar contextdefinitiegegevens |
getObjectInfos (2nd) |
Lightning / uiObjectInfoApi | Objectinfo van transactie-item | getObjectInfos() | Luistert naar metagegevens van transactie-items |
Events Gegevensbeheer branden
Gegevensbeheer activeert aangepaste events, toastevents en wijzigingsevents van stroomkenmerken.
Deze tabel toont aangepaste events die Gegevensbeheer activeert, inclusief borrelende en samengestelde events.
| Eventnaam | Bubbels | Samengesteld | Wanneer het brandt | Doel |
|---|---|---|---|---|
| laden | Ja | Ja | Tijdens initieel laden | Bovenliggende status van laden informeren |
| doorgaan | Ja | Ja | Annuleren bij root OF venster sluiten | Configurator sluiten zonder op te slaan |
| opslaan | Ja | Ja | Navigatie opslaan en afsluiten | Configuratie opslaan en afsluiten |
| sluiten_modaal | Ja | Ja | Voorbeeld sluiten | Voorbeeldvenster sluiten |
| showConflictToast | Ja | Ja | Niet-blokkerende API-conflicten gedetecteerd | Toast voor conflictwaarschuwing tonen |
Deze tabel toont de "toast"-event die Gegevensbeheer activeert.
| Eventnaam | Wanneer wordt het afgevuurd | Doel |
|---|---|---|
| ShowToastEvent | Na het laden van favoriet met succes | Gebruiker op de hoogte brengen van geslaagde favoriete lading |
Gegevensbeheer verzendt FlowAttributeChange-events voor alle reactieve eigenschappen bij elke UI-update.
