Sie befinden sich hier:
Kommunizieren über OmniScript mit einer Lightning Webkomponente
Senden Sie mithilfe der Eigenschaft "Veröffentlichen" und "Abonnieren" Daten aus OmniScript-Aktionen und -Schritten an andere Lightning Webkomponenten.
Lesen Sie zunächst die Dokumentation zur Verwendung von PubSub. Entsprechende Informationen finden Sie unter Kommunikation zwischen Komponenten.
pubsub-Modul funktioniert nicht, wenn die Standardlaufzeit aktiviert ist. Umgehen Sie diese Einschränkung, indem Sie window post message (wpm) oder session storage message (ssm) verwenden. Weitere Informationen finden Sie unter Nachricht mit Fensterpostnachrichten und Sitzungsspeichernachrichten.
Mit der Eigenschaft "Pub/Sub" können Aktions- und Schrittelemente Daten in Schlüsselwertpaaren an andere Lightning Webkomponenten senden. Lightning-Webkomponenten müssen den Ereignisnamen der OmniScript-Komponente registrieren und Code hinzufügen, um die vom Ereignis gesendeten Daten verarbeiten zu können.
- Wählen Sie in einer OmniScript-Aktion oder einem OmniScript-Schritt im Eigenschaftenbereich unter "Messaging-Framework" die Option Pub/Sub aus.
-
Konfigurieren Sie in den Feldern "Schlüssel" und "Wert", welche Daten an eine andere Lightning Webkomponente übergeben werden sollen.
- Geben Sie für "Schlüssel" einen Namen zum Speichern des Werts ein.
-
Geben Sie unter "Wert" Daten ein, die an die Lightning Webkomponente übergeben werden sollen. Das Feld akzeptiert die Briefvorlagensyntax.
Aktionsbeispiel
Schrittbeispiel
Übergeben Sie Daten aus der Antwort der Aktion im Feld "Wert" mithilfe der Briefvorlagensyntax. Wenn Sie beispielsweise den Antwortknoten "accountId" übergeben möchten, geben Sie %accountId% für den Wert ein.
Übergeben Sie Daten aus einem Element innerhalb des Schritts mithilfe der Briefvorlagensyntax. Wenn Sie beispielsweise ein Textelement mit dem Namen Text1 übergeben möchten, geben Sie %Text1% für den Wert ein.
- Aktivieren Sie das OmniScript.
-
Importieren Sie das Pubsub-Modul in eine Lightning Webkomponente, die Daten aus der Aktion oder dem Schritt empfängt.
import pubsub from 'namespace/pubsub'; -
Registrieren Sie das Pubsub-Ereignis in der Lightning Webkomponente mit diesem Code, ohne etwas zu ersetzen. Die Komponente even muss sich registrieren, nachdem sie gerendert wurde.
Aktion pubsub Event
Schritt pubsub Ereignis
pubsub.register('omniscript_action', { data: this.handleOmniAction.bind(this), });pubsub.register('omniscript_step', { data: this.handleOmniStepLoadData.bind(this), }); -
Erstellen Sie in der Lightning Webkomponente einen Pubsub-Ereignis-Handler.
Beispiel für Aktionsereignis-Handler
Beispiel für einen Schritt-Ereignis-Handler
handleOmniAction(data) { // perform logic to handle the Action's response data }handleOmniStepLoadData(data) { // perform logic to handle the pubsub data from the Step } -
(Optional) Wenn für verschiedene Aktionen oder Schritte unterschiedliche Logik erforderlich ist, verwenden Sie eine switch-Anweisung, um zu beschreiben, wie das Ereignis verarbeitet werden soll. Informationen zu Switch-Anweisungen finden Sie unter switch.
Aktionsbeispiel
Schrittbeispiel
Greifen Sie mithilfe von
data.nameauf den Elementnamen der Aktion zu.handleOmniAction(data) { switch(data.name) { case 'SomeNameForAction': this.handleSomeNameForAction(data); break; case 'SomeNameForAction2': this.handleSomeNameForAction2(data); break; default: // handle default case } } handleSomeNameForAction(data) { // perform some logic specific to SomeNameForAction action // that has element name = "SomeNameForAction" } handleSomeNameForAction2(data) { // perform some logic specific to SomeNameForAction2 action // that has element name = "SomeNameForAction2" }Greifen Sie mithilfe von
data.nameauf den Elementnamen des Schritts zu.handleOmniStepLoadData(data) { switch(data.name) { case 'FirstStep': this.handleOmniFirstStepLoadData(data); break; case 'SecondStep': this.handleOmniSecondStepLoadData(data); break; default: // handle default case } } handleOmniFirstStepLoadData(data) { // perform some logic specific when a Step element which name is // FirstStep is loaded } handleOmniSecondStepLoadData(data) { // perform some logic specific when a Step element which name is // SecondStep is loaded }Greifen Sie mithilfe von
data.typeauf den Elementtyp der Aktion zu.handleOmniAction(data) { switch(data.type) { case 'Integration Procedure Action': this.handleIPActionPubsubEvents(data); break; case 'Remote Action': this.handleRemoteActionPubsubEvents(data); break; default: // handle default case } } handleIPActionPubsubEvents(data) { // perform some logic specific to Integration Procedure Actions } handleRemoteActionPubsubEvents(data) { // perform some logic specific to Remote Actions }N/V

