Dieses Dokument wurde von KI übersetzt. Für genaue Informationen lesen Sie bitte die englische Version.
Beendet den aktuellen Workflow und alle nachfolgenden Workflows, die in derselben Ereignis-Verteilung (Event Dispatch) ausgelöst wurden. Dies wird häufig verwendet, wenn aufgrund eines globalen Fehlers oder einer fehlgeschlagenen Berechtigungsprüfung alle Workflows unter dem aktuellen Ereignis sofort abgebrochen werden müssen.
ctx.exitAll() wird im Allgemeinen in Kontexten verwendet, in denen JavaScript ausgeführt werden kann und gleichzeitig der aktuelle Workflow sowie alle durch dieses Ereignis ausgelösten nachfolgenden Workflows abgebrochen werden müssen:
| Szenario | Beschreibung |
|---|---|
| Workflow | Die Validierung des Haupt-Workflows schlägt fehl (z. B. unzureichende Berechtigungen), was den Abbruch des Haupt-Workflows und aller noch nicht ausgeführten nachfolgenden Workflows unter demselben Ereignis erfordert. |
| Verknüpfungsregeln | Wenn die Validierung einer Verknüpfung fehlschlägt, müssen die aktuelle Verknüpfung und die durch dasselbe Ereignis ausgelösten nachfolgenden Verknüpfungen beendet werden. |
| Aktionsereignisse | Die Vorab-Validierung einer Aktion schlägt fehl (z. B. Berechtigungsprüfung vor dem Löschen), wodurch die Hauptaktion und die folgenden Schritte verhindert werden müssen. |
Unterschied zu
ctx.exit():ctx.exit()beendet nur den aktuellen Workflow;ctx.exitAll()beendet den aktuellen Workflow und alle noch nicht ausgeführten nachfolgenden Workflows in derselben Ereignis-Verteilung.
Der Aufruf von ctx.exitAll() wirft eine interne FlowExitAllException aus, die von der Workflow-Engine abgefangen wird, um die aktuelle Workflow-Instanz und nachfolgende Workflows unter demselben Ereignis zu stoppen. Sobald die Funktion aufgerufen wird, werden die verbleibenden Anweisungen im aktuellen JS-Code nicht mehr ausgeführt.
| Methode | Wirkungsbereich |
|---|---|
ctx.exit() | Beendet nur den aktuellen Workflow; nachfolgende Workflows bleiben unberührt. |
ctx.exitAll() | Beendet den aktuellen Workflow und bricht nachfolgende Workflows ab, die sequenziell unter demselben Ereignis ausgeführt werden. |
ctx.exitAll() aufruft, werden die nachfolgenden Workflows nicht mehr ausgeführt.ctx.exitAll() in einem Workflow unterbricht andere bereits laufende Workflows nicht (da diese unabhängig sind).ctx.exitAll() wird der nachfolgende Code im aktuellen JS nicht mehr ausgeführt. Es wird empfohlen, dem Benutzer den Grund vor dem Aufruf über ctx.message, ctx.notification oder ein Modal zu erklären.FlowExitAllException abzufangen; überlassen Sie dies der Workflow-Engine.ctx.exit().ctx.exitAll() nur den aktuellen Workflow und unterbricht keine anderen bereits laufenden Workflows.