Verketten mehrerer Szenarios
Sie können Szenarien miteinander verketten, sodass ein Szenario ein Trigger zum anderen durchführt, und die vom zweiten Szenario ausgegebenen Daten an das erste zurückgeben. Dies ermöglicht eine modularere Szenarioerstellung, bei der Sie Szenarioabschnitte in mehreren Szenarien nicht duplizieren müssen.
Sie können mehrere untergeordnete Szenarien aus einem übergeordneten Szenario aufrufen und Sie können ein untergeordnetes Szenario aus mehreren übergeordneten Szenarien aufrufen. Sie können auch untergeordnete Szenarien verschachteln und eines von einem anderen aufrufen.
Wenn ein übergeordnetes Szenario darauf wartet, dass ein untergeordnetes Szenario Daten zurückgibt, wird diese Zeit nicht mit der maximalen Wartezeit des übergeordneten Szenarios verrechnet. Ein übergeordnetes Szenario ruft beispielsweise fünf untergeordnete Szenarien auf, deren Ausführung jeweils 10 Minuten dauert, d. h. insgesamt 50 Minuten. Die Ausführung der Module im übergeordneten Szenario selbst dauert 15 Minuten. Das übergeordnete Szenario überschreitet keine Zeitüberschreitung, obwohl insgesamt 65 Minuten vergangen sind. Dies ist die Zeitüberschreitung von 40 Minuten.
Weitere Informationen zu den Leistungs-Schutzmechanismen von Fusion, einschließlich Zeitüberschreitungen, finden Sie unter Leistungs-Schutzmechanismen von Fusion.
Anweisungen zum Konfigurieren von Kettenmodulen finden Sie unter Kettenmodule.
Übergeordnete und untergeordnete Szenarien
- Das übergeordnete Szenario ruft mithilfe des Moduls Kette > Untergeordnetes Szenario aufrufen ein anderes Szenario auf. Sie erhält die Ausgabe des untergeordneten Szenarios, das sie in späteren Szenario-Modulen verarbeiten kann.
- Das untergeordnete Szenario wird vom übergeordneten Szenario aufgerufen. Ihr Trigger-Modul empfängt Daten aus dem übergeordneten Szenario und gibt die Ausgabe an das übergeordnete Szenario zurück.
Das übergeordnete Szenario erfordert eine Antwort vom untergeordneten Szenario. Untergeordnete Szenarien, die keine Daten zurückgeben, werden derzeit nicht unterstützt.
Datenstrukturen in verketteten Szenarien
Workfront Fusion verwendet Datenstrukturen, um Informationen vom übergeordneten Szenario zum untergeordneten Szenario zu übertragen. Die Datenstruktur wird im untergeordneten Szenario konfiguriert. Wenn das untergeordnete Szenario aus dem übergeordneten Szenario ausgewählt wird, werden die Felder für die Datenstruktur, die als Eingabe für das untergeordnete Szenario verwendet wird, im übergeordneten Szenario angezeigt. Sie können diesen Feldern Werte zuordnen, die beim Auslösen an das untergeordnete Szenario übergeben werden.
Informationen zu den Modulen, die in den übergeordneten und untergeordneten Szenarien konfiguriert werden müssen, finden Sie unter Kettenmodule.
Informationen zu Datenstrukturen finden Sie unter Datenstrukturen.
Datenfluss
- Daten fließen durch das übergeordnete Szenario.
- Daten erreichen das Modul Untergeordnetes Szenario aufrufen . Daten werden den Feldern im Szenario „Untergeordnetes Aufrufen“ zugeordnet, die mit den Feldern in der Datenstruktur übereinstimmen, die im Trigger-Modul des untergeordneten Szenarios verwendet wird.
- Daten aus dem Szenario Untergeordnetes Element aufrufen werden an das untergeordnete Szenario übergeben.
- Das untergeordnete Szenario verarbeitet Daten und führt Aktionen durch.
- Das untergeordnete Szenario endet mit der Antwort an das übergeordnete Modul zurückgeben.
- Die Ausgabe der Rückgabeantwort an das übergeordnete Modul wird an das übergeordnete Szenario übergeben.
- Die Ausgabe des Szenarios „Untergeordnetes Element aufrufen“ ist die Ausgabe des untergeordneten Szenarios. Diese Ausgabe kann später im übergeordneten Szenario verarbeitet werden.
Anwendungsszenarien
Betrachten Sie die folgenden Beispielanwendungsfälle für Verkettungsszenarien:
-
Wiederverwendbare Logik: Sie können ein Szenario für wiederholte Aktionen verketten, die in mehreren Szenarien verwendet werden. Wenn Sie beispielsweise über mehrere Szenarien zur Archivierung von Inhalten verfügen, können Sie ein einziges untergeordnetes Szenario mit dem Namen „Inhalt archivieren“ erstellen, das Sie dann als untergeordnetes Szenario für alle Workflows verwenden können, die Inhalte archivieren.
-
Fehlerbehandlung: Unternehmen nutzen häufig dieselben Aktionen zur Fehlerbehandlung in mehreren Szenarien, z. B. eine Route zur Fehlerbehandlung, die ein Fehlerprotokoll an einen Datenspeicher sendet und eine Slack-Benachrichtigung erstellt. Sie können mit diesen Aktionen ein untergeordnetes Szenario erstellen und dieses Szenario in Fehlerbehandlungsrouten in mehreren Szenarien verketten.
-
Verlängerungszeit: Sie können die Verkettung für große Batch-Vorgänge verwenden, bei denen die Gesamtverarbeitungszeit die 40-minütige Ausführungsgrenze eines einzelnen Szenarios überschreiten würde. Gehen Sie jedoch mit diesem Muster vorsichtig vor: Ein übergeordnetes Szenario, das mit mehreren untergeordneten Szenarien mit langer Laufzeit verkettet ist, hat keine allgemeine Zeitüberschreitungsgrenze. Wenn ein untergeordnetes Szenario hängt oder ein Platform-Problem auftritt, wartet das übergeordnete Element unbegrenzt, ohne dass ein Fehler angezeigt wird.
Bevor Sie die Verkettung zur Verlängerung der Ausführungszeit verwenden, überlegen Sie, ob die Batch-Größe reduziert, die Häufigkeit erhöht oder das Design neu strukturiert werden kann, um lange sequenzielle Ketten zu vermeiden. Siehe Best Practices unten.
-
Ersetzen von Iteratoren Durch Ersetzen von Iteratoren durch untergeordnete Szenarien kann die Speichernutzung reduziert werden, z. B. bei komplexen Vorgängen in einer Iteration, die zu einem Fehler wegen zu wenig Arbeitsspeicher führt. Sie können ein separates Szenario für den komplexen Vorgang erstellen und den Iterator durch das Modul Untergeordnetes Szenario aufrufen ersetzen
-
Datensatz suchen und erstellen: Sie können beispielsweise ein Szenario erstellen, in dem nach einem Benutzer gesucht wird. Wenn sie vorhanden sind, werden sie als genehmigende Person hinzugefügt, deren Zugriff überprüft und genehmigt werden muss. Wenn sie nicht vorhanden sind, erstellt das Szenario eine Anfrage, in die der Administrator einen neuen Benutzer aufnehmen kann.
Anzeigen des Ausführungsverlaufs für verkettete Szenarien
Sie können den Ausführungsverlauf für verkettete Szenarien anzeigen, indem Sie den Verlauf jedes Szenarios in der Kette anzeigen. Beispielsweise würde der Ausführungsverlauf des übergeordneten Szenarios Informationen über Module und Daten enthalten, die direkt im übergeordneten Szenario verarbeitet werden. Um den Ausführungsverlauf für Module und Daten, die in einem untergeordneten Szenario verarbeitet werden, anzuzeigen, öffnen Sie das untergeordnete Szenario und zeigen Sie dort den Ausführungsverlauf an.
Es wird empfohlen, die Schaltfläche Zum untergeordneten Szenario wechseln im Modul Untergeordnetes Szenario aufrufen zu verwenden, um schnell zum untergeordneten Szenario zu wechseln, in dem Sie den Ausführungsverlauf anzeigen können. Das untergeordnete Szenario wird in einem anderen Browser-Fenster geöffnet, sodass übergeordnete und untergeordnete Szenarien gleichzeitig angezeigt werden.
Fehler und unvollständige Ausführungen
Umgang mit Fehlern
Wenn das untergeordnete Szenario einen Fehler aufweist, kann dies dazu führen, dass Daten an das übergeordnete Element zurückgegeben werden.
Es wird empfohlen, die Fehlerbehandlung im untergeordneten Szenario zu konfigurieren, um sicherzustellen, dass das übergeordnete Szenario nicht auf die Antwort des untergeordneten Szenarios wartet, wenn im untergeordneten Szenario ein Fehler auftritt.
Best Practices
Beachten Sie beim Verketten eines Szenarios die folgenden Best Practices.
Vermeiden von Rekursionen bei der Verkettung von Szenarien
Rekursionen treten auf, wenn ein Szenario sich selbst neu auslöst, wodurch eine neue Ausführung in einer Endlosschleife ausgelöst wird.
Rekursionen können Leistungsprobleme sowohl für die Organisation, der das rekursive Szenario gehört, als auch für andere Organisationen verursachen.
Gehen Sie beim Verketten von Szenarien wie folgt vor, um Rekursionen zu vermeiden:
- Stellen Sie sicher dass das übergeordnete Szenario nicht durch untergeordnete Szenarien Trigger werden kann. Wenn beispielsweise ein übergeordnetes Szenario ausgelöst wird, wenn eine Anfrage erstellt wird, stellen Sie sicher, dass die untergeordneten Szenarien keine Anfragen erstellen.
- Stellen Sie sicher dass sich untergeordnete Szenarien nicht gegenseitig. Wenn beispielsweise untergeordnetes Szenario A untergeordnetes Szenario B aufruft, stellen Sie sicher, dass untergeordnetes Szenario B nicht untergeordnetes Szenario A aufruft.
- Stellen Sie sicher dass ein Szenario sich nicht selbst aufrufen. Beispielsweise wird ein Szenario ausgelöst, wenn eine Aufgabe erstellt wird und dieses Szenario zwei Aufgaben erstellt. Bei den neu erstellten Aufgaben wird das Szenario erneut ausgelöst, sodass vier neue Aufgaben erstellt werden. Bei jeder Erstellung einer Aufgabe wird das Szenario ausgelöst und bei jeder Ausführung des Szenarios verdoppelt sich die Anzahl der Aufgaben. Die Anzahl der Aufgaben steigt exponentiell.
- Wenn ein Szenario eine Rekursion verursacht, wird es vom Fusion-Engineering-Team deaktiviert, um weitere Leistungsprobleme zu verhindern.
- Da die Rekursion ein Ergebnis des Szenario-Designs ist, müssen Sie Ihre Szenarios so entwerfen, dass das Szenario keine Aktionen umfasst, die das Szenario auslösen.
- Sie können ein Diagramm der Beziehungen zwischen übergeordneten und untergeordneten Szenarien anzeigen.
Anweisungen finden Sie unter Anzeigen verketteter Szenariobeziehungen.
Verwenden der Fehlerbehandlung, um eine Antwort sicherzustellen
Da das übergeordnete Szenario auf eine Antwort des untergeordneten Szenarios wartet, bevor es fortgesetzt werden kann, müssen Sie sicherstellen, dass das untergeordnete Szenario so aufgebaut ist, dass es eine Antwort bereitstellt, selbst wenn ein Fehler auftritt.
Verwenden Sie nicht die Einstellung „Commit Trigger Last (CTL)“
Es wird nicht empfohlen, die Szenarioeinstellung "Trigger zuletzt übertragen (CTL)“ mit verketteten Szenarien zu verwenden. Wenn Sie ein Wiederholungsverhalten für ein Szenario benötigen, das eine Verkettung verwendet, implementieren Sie es explizit mithilfe einer Fehlerbehandlungsroute mit einer definierten maximalen Wiederholungsanzahl.
Schachtelungstiefe begrenzen
Verkettete Szenario-Netzwerke auf zwei Tiefenebenen beschränken (übergeordnet → untergeordnet). Szenarien, die drei oder mehr Ebenen tief verschachtelt sind (Eltern → Kind → Enkel), erhöhen die Komplexität erheblich, reduzieren die Beobachtbarkeit und erschweren die Diagnose von Fehlern ohne technischen Support.
Wenn Ihr Design eine tiefere Verschachtelung erfordert, dokumentieren Sie die vollständige Kettenzuordnung und stellen Sie sicher, dass die Überwachung vor der Bereitstellung in der Produktion eingerichtet ist.
Verwenden Sie Feuer und vergessen Sie sorgfältig
Wenn Auslösen und Vergessen im Modul Untergeordnetes Szenario aufrufen aktiviert ist, sendet das übergeordnete Szenario das untergeordnete Szenario und fährt sofort fort, ohne auf eine Antwort zu warten. Das übergeordnete Element hat keine Sicht darauf, ob das untergeordnete Szenario ausgeführt wurde, erfolgreich war oder fehlgeschlagen ist.
Verwenden Sie Fire and Forget nur, wenn:
- Das untergeordnete Szenario führt Protokollierungen, Benachrichtigungen oder Überwachungsschreibvorgänge durch, die sich nicht auf die Logik des übergeordneten Szenarios auswirken
- Sie verfügen über eine unabhängige Überwachung, um Fehler bei untergeordneten Elementen im Hintergrund zu erkennen
Verwenden Sie nicht Fire and Forget, wenn:
- Das untergeordnete Szenario schreibt, von denen das übergeordnete Element abhängig ist
- Sie müssen wissen, ob das untergeordnete Szenario erfolgreich war, bevor das übergeordnete Element fortgesetzt wird
- Der Workflow ist transaktional oder erfordert genau einmalige Verarbeitungsgarantien
Vermeiden Sie den Aufruf untergeordneter Szenarien in Iteratoren mit hohem Volumen
Durch das Aufrufen eines untergeordneten Szenariomoduls in einem BasicFeeder oder einem anderen Iterator wird für jedes verarbeitete Element ein untergeordnetes Szenario gesendet. Bei hoher Artikelanzahl (Hunderte oder mehr pro Ausführung) führt dies zu einem erheblichen Dispatch-Overhead und erhöht die Anfälligkeit für Probleme mit der Plattformzuverlässigkeit.
Bevor Sie dieses Muster verwenden:
- Erwägen, ob die Logik des untergeordneten Szenarios als Module direkt in das übergeordnete Szenario eingebunden werden kann
- Führen Sie eine Vorberechnung aller Suchen durch, die für jede Iteration außerhalb des Iterators denselben Wert zurückgeben, anstatt pro Element einen Kettenaufruf zu senden
- Überprüfen Sie die realistische maximale Elementanzahl und wenden Sie sich an Ihren Administrator, bevor Sie sie in der Produktion bereitstellen