Sie befinden sich hier:
Datenmanager
Der Datenmanager ist die Komponente für die Statusverwaltung und Orchestrierung des Produktkonfigurators. Diese Komponente speichert Produktdaten und verwendet Flow-Ereignisse, um die Daten in andere Komponenten auf dem Flow-Bildschirm zu übertragen.
Erforderliche Editionen
| Verfügbarkeit: Lightning Experience |
| Verfügbarkeit: Enterprise, Unlimited und Developer Edition der Umsatzverwaltung (ehemals Revenue Cloud) mit der Revenue Cloud Growth-Lizenz oder der Revenue Cloud Advanced-Lizenz |
Verantwortlichkeiten für Datenmanager
- Beibehalten des Transaktionskontexts und Konfigurationsstatus
- Aufrufen der Konfigurator-API und Verarbeiten von Antworten
- Verarbeiten von Lightning Message Service-Ereignissen über Benutzeroberflächenkomponenten
- Bereitstellen von Daten auf der Benutzeroberfläche und Bereitstellen reaktiver Eigenschaften für untergeordnete Komponenten
- Unterstützen des Speicherns und Ladens von bevorzugten Konfigurationen
API-Name des Datenmanagers
S01_DataManager
Datenmanager-Eingabeeigenschaften
Der Datenmanager akzeptiert Daten aus den Eigenschaften der übergeordneten oder Flow-Komponente, die von Benutzern festgelegt wurden.
| Eigenschaft | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| transactionLine-ID | Zeichenfolge | Ja | Stammprodukt- oder Transaktionsposten-ID |
| currentTransactionLineId | Zeichenfolge | Ja | Aktuelle Zeile, die angezeigt wird |
| Transaktions-ID | Zeichenfolge | Ja | Vertriebstransaktions-ID (Angebot, Auftrag usw.) |
| parentName | Zeichenfolge | Ja | Name oder Titel der übergeordneten Transaktion, auf die sich die Konfiguration bezieht. |
| Ursprung | Zeichenfolge | Ja | Name des übergeordneten Objekts des Transaktionsdatensatzes. Beispiel: "Opportunity", "Angebot", "Auftrag", "Vermögenswert" usw. Dadurch wird angegeben, welcher Salesforce-Objekttyp die Konfiguration startet. Wird für die Navigation, Benutzeroberflächenbezeichnung usw. verwendet. |
| addedNodes | Array | Nein | Flow-Ressource, die eine Sammlung von Apex ProductConfig__SalesTransactionItem-Datensätzen enthält, die der übergeordneten Datensatztransaktion zugeordnet sind. |
| isNonBlockingEnabled | Boolesch | Nein | Aktivieren Sie den Nicht-Blockierungsmodus. Wenn diese Option aktiviert ist, können Benutzer weiterhin mit der Benutzeroberfläche interagieren, während API-Aufrufe im Hintergrund verarbeitet werden. Änderungen werden asynchron in die Warteschlange gestellt und verarbeitet, ohne die Benutzeroberfläche zu blockieren. Wenn die Benutzeroberfläche deaktiviert ist, wird sie während API-Aufrufen gesperrt. |
| areMessagesFixed | Boolesch | Nein | Gibt an, ob die Nachrichtenkomponente eine feste Position aufweist. Wenn "true" (wahr) festgelegt ist, bleibt die Nachrichtenkomponente oben auf dem Bildschirm fixiert und bleibt beim Bildlauf sichtbar (klebrige Positionierung). Bei false blättert die Nachrichtenkomponente mit dem Seiteninhalt (relative Positionierung). Nützlich, damit Validierungsfehler/Warnungen während der Konfiguration immer sichtbar bleiben |
| contextId | Zeichenfolge | Nein | ID des für den Produktkonfigurator angegebenen Transaktionskontexts |
| enableARCValidierung | Boolesch | Nein | Gibt an, ob die ARC-Validierung (Asset Renewal Configuration) während der Produktkonfiguration ausgeführt wird |
| transactionLineGroup-ID | Zeichenfolge | Nein | ID der Gruppe, die den aktuellen Transaktionsposten enthält, der konfiguriert wird. Bei Angeboten ist dies die Angebotsbelegposten-Gruppen-ID. Bei Aufträgen ist dies die Auftragsposten-Gruppen-ID. |
| ErklärbarkeitAktiviert | Boolesch | Nein | Wenn "Erklärbarkeit" aktiviert ist, enthält der Produktkonfigurator detaillierte Erläuterungen dazu, warum Produkte ausgeblendet, deaktiviert oder empfohlen werden. Zeigt Details zur Regelausführung und Geschäftslogik an, damit Benutzer Konfigurationseinschränkungen besser verstehen. |
| userContext | Objekt | Nein | API-Name einer Flow-Variablen, die Benutzerqualifikationsdaten enthält. Diese Variable hat den Typ ProductConfig__UserContext und bestimmt die Produktberechtigung anhand benutzerspezifischer Attribute. 1. Erstellen Sie in Flow Builder einen API-Variablennamen, beispielsweise userContextData. 2. Verwenden Sie ein Element vom Typ "Zuweisung" oder "Datensätze abrufen", um die Variable auszufüllen, und legen Sie Felder wie "Rolle", "Region", "accountType" usw. fest. Beispiel: {!userContextData.role} = {!$User.UserRole.Name} 3. Wählen Sie im Datenmanager für "Benutzerkontext" die Option {!userContextData} aus. Die Konfigurator-API verwendet diese Daten, um Qualifikationsregeln auszuwerten und zu filtern, welche Produkte verfügbar sind. Wenn Sie beispielsweise über Regeln wie "Nur Enterprise-Produkte für Enterprise-Vertriebsmitarbeiter anzeigen" verfügen, überprüft die API die Rolle des Benutzers in diesem Kontext. Wählen Sie nur dann einen Benutzerkontext aus, wenn Sie über Produktqualifikationsregeln verfügen, die von benutzerspezifischen Attributen wie Rolle, Region usw. abhängen. Wenn alle Produkte für alle Benutzer verfügbar sind, lassen Sie dieses Feld leer. |
Datenmanager-Ausgabeeigenschaften
Der Datenmanager schreibt Ausgabeeigenschaften, die Kunden lesen können. Eine interne Methode generiert Daten und der FlowAttributeChangeEvent sendet die Daten an die entsprechende Eigenschaft, wie in diesem Beispiel gezeigt.
this.dispatchEvent(
new FlowAttributeChangeEvent(FLOW_REACTIVITY_MESSAGES, messages)
);
Diese Tabelle zeigt, welche Daten der Datenmanager für andere Komponenten bereitstellt. In der Spalte "Datenquelle" wird der interne Prozess angegeben, der die Daten generiert.
| Eigenschaft | Datentyp | Beschreibung | Datenquelle |
|---|---|---|---|
| Kopfzeile | Objekt | Aktuelle Informationen zur Produktkopfzeile | mergeContexts() |
| Nachrichten | Array | Validierungs-/Fehlermeldungen | API-Antwort + Regeln |
| optionGroups | Array | Produktkomponentengruppen (Optionen) | mergeContexts() |
| attributeCategories | Array | Produktattributkategorien | mergeContexts() |
| Übersicht | Objekt | Konfigurationszusammenfassung (zusammengeführte Transaktionsstruktur) | mergeContexts() |
| NavigationRoute | Array | Aktueller Navigationspfad oder Breadcrumbs | buildNavigationInfo() |
| searchInfo | Array | Suchdaten für Produktkatalog | buildSearchInfo() |
| Registerkarten | Array | Verfügbare Registerkarten für Pakete mit mehreren Wurzeln | buildTabs() |
| currencyCode | Zeichenfolge | Währungscode für die Preisgestaltung | API-Antwort |
| transactionRecord | Objekt | Transaktionsdatensatzdetails | populateTransactionRecord() |
| headerTitel | Zeichenfolge | Kopfzeilentiteltext | generateHeaderTitle() |
| isInstantPricingToggleEnabled | Boolean (Boolesch) | Gibt an, ob sofortiger Preisumschalter angezeigt wird | setToggleStates() |
| isInstantPricingEnabled | Boolean (Boolesch) | Aktueller Status der sofortigen Preisgestaltung | Umschalter/API |
| isProductValidationEnabled | Boolean (Boolesch) | Aktueller Validierungsstatus | Umschalter/API |
| showPrices | Boolean (Boolesch) | Ob Preise angezeigt werden sollen | Statuslogik |
| showSummaryTotalSection | Boolean (Boolesch) | Gibt an, ob der Abschnitt "Zusammenfassungsgesamtwert" angezeigt werden soll | Versicherungsüberschreibung |
| favoriteData | Zeichenfolge (JSON) |
Konfigurationsdaten für Favoriten | getFavoriteData() |
| isConfiguratorDisabled | Boolean (Boolesch) | Ob Konfigurator deaktiviert ist | Benutzeroberflächenstatus |
| isApiInProgress | Boolean (Boolesch) | Ob API-Aufruf ausgeführt wird | API-Lebenszyklus |
| isPriceRampEnabled | Boolean (Boolesch) | Ob Preisrampen aktiviert sind | Kontextprüfung |
| isGroupRampEnabled | Boolean (Boolesch) | Ob Gruppenrampen aktiviert sind | Gruppenberechnung |
| salesTransactionItems | Array | Alle Transaktionselemente | API-Antwort |
| layoutMode | Zeichenfolge | Layoutmodus (Standard oder kompakt) | Umschalter |
| searchResultOptionId | Zeichenfolge | ID der ausgewählten Suchergebnisoption | Suchnavigation |
| rootProductId | Zeichenfolge | Stammprodukt-ID | Katalogdaten |
| currentGroupName | Zeichenfolge | Aktueller Gruppenname | getCurrentGroupName() |
| contextMetadata | Objekt | Kontextmetadaten für anpassbare Attribute des Vertriebstransaktionselements. Enthält Felddefinitionen (Bezeichnungen, Datentypen, Auswahllistenwerte) für benutzerdefinierte Attribute, die auf der Benutzeroberfläche angezeigt werden können. | Kontextanalyse |
| eligiblePromotions | Array | Liste der zulässigen Sonderangebote | Sonderangebots-API |
Ereignisse, die der Datenmanager anhört
Der Datenmanager hört Lightning Message Service-Ereignisse und Wire-Adapter.
Zum Anhören von LMS-Ereignissen abonniert der Datenmanager den Nachrichtenkanal und empfängt LMS-Ereignisse, die von anderen Komponenten dort veröffentlicht wurden. In dieser Tabelle sind LMS-Ereignisaktionen, ihre Handler-Methoden und die Aktionen aufgeführt.
| Ereignisaktion | Handler-Methode | Was es bewirkt |
|---|---|---|
| valueChange | setState() | Aktualisiert den Konfigurationsstatus (Auswahlen, Mengen, Attribute) |
| Navigieren | naviate() | Navigiert durch die Pakethierarchie |
| closePreview | closePreview() | Fenster 'Vorschau schließen' |
| toggleInstantPricing | setInstantPricing() | Schaltet die sofortige Preisgestaltung ein/aus |
| toggleExplainability | setExplainability() | Schaltet die Erklärbarkeit ein/aus |
| toggleRulesValidierung | setProductValidation() | Schaltet die Validierung ein/aus |
| updatePrices | updatePrices() | Löst Preise manuell aus |
| validateProduct | validateProduct() | Validierung manuell auslösen |
| cloneItems | cloneItems() | Dupliziert Transaktionselemente |
| toggleCompactLayout | setLayoutModeOnToggle() | Schaltet den Layoutmodus um |
| contextDefinitionGeändert | setContextDefinition() | Kontextdefinition für Aktualisierungen |
| saveFavConfiguration | handleSaveConfiguration() | Speichert Konfiguration als Favorit |
| loadFavorite | handleLoadFavorite() | Lädt die bevorzugte Konfiguration |
Drahtadapter hören automatisch auf Datenänderungen von der Salesforce-Plattform und übergeben die Datenänderungen an den Datenmanager. Diese Tabelle zeigt die Wire-Adapter-Ereignisse, die der Datenmanager anhört.
| Kabeladapter | Quelle | Was es anhört | Handler-Methode | Zweck |
|---|---|---|---|---|
MessageContext |
Lightning / MessageService | Nachrichtenkontext für LMS | Nicht zutreffend (bietet Kontext) |
Aktiviert die LMS-Kommunikation |
getContextServiceDefinition |
Lightning / IndustriesContextApi | Kontextdefinitionsänderungen | gotContextDefinition() |
Hört auf Kontextdefinitionsdaten |
getObjectInfos (2nd) |
Lightning/uiObjectInfoApi | Objektinformationen für Transaktionselemente | getObjectInfos() | Hört auf Transaktionselement-Metadaten |
Datenmanager für Ereignisse wird ausgelöst
Der Datenmanager löst benutzerdefinierte Ereignisse, Toast-Ereignisse und Flow-Attributänderungsereignisse aus.
In dieser Tabelle werden benutzerdefinierte Ereignisse angezeigt, die vom Datenmanager ausgelöst werden, einschließlich brodelnder und zusammengesetzter Ereignisse.
| Ereignisname | Blasen | Zusammengesetzt | Wenn es brennt | Zweck |
|---|---|---|---|---|
| Laden | Ja | Ja | Während der ersten Last | Übergeordneten Ladestatus benachrichtigen |
| Fortfahren | Ja | Ja | Fenster "Stornieren" im Stamm ODER "Schließen" | Konfigurator schließen ohne zu speichern |
| Speichern | Ja | Ja | Navigation speichern und beenden | Konfiguration speichern und beenden |
| close_modal | Ja | Ja | Vorschau schließen | Vorschaufenster schließen |
| showConflictToast | Ja | Ja | Nicht blockierende API-Konflikte erkannt | Toast zur Konfliktwarnung anzeigen |
In dieser Tabelle wird das Toast-Ereignis "Data Manager fires" (Datenmanager für Toast-Ereignisse) angezeigt.
| Ereignisname | Wann wird es ausgelöst? | Zweck |
|---|---|---|
| ShowToastEvent | Nach dem erfolgreichen Laden des Favoriten | Benachrichtigen des Benutzers beim erfolgreichen Laden als Favorit |
Der Datenmanager disponiert FlowAttributeChange-Ereignisse für alle reaktiven Eigenschaften bei jeder Benutzeroberflächenaktualisierung.
