Altova FlowForce Server 2024 Advanced Edition

Wenn ein Auftragsschritt fehlschlägt, wird auch der Auftrag als fehlgeschlagen betrachtet. Um einige Aufräumaktionen durchzuführen, bevor der Auftrag endgültig beendet wird (z.B. Erstellen eines Protokolls oder Senden von E-Mail-Benachrichtigungen), können Sie Schritte des Typs "Error/Success Handler-Schritt" durchführen. Mit Hilfe solcher Schritte können Sie die Ausführung eines oder mehrerer Schritte schützen (geschützte Schritte). Error/Success Handler und geschützte Schritte bilden Teil eines so genannten geschützten Blocks (siehe Struktur eines geschützten Blocks weiter unten).

 

Je nach Anforderung können Sie innerhalb eines geschützten Blocks Ausführungsschritte, Auswahlschritte, For-Each- und Verschobene Blöcke erstellen. Außerdem können innerhalb eines geschützten Blocks auch andere geschützte Blöcke verschachtelt werden.

 

Hinzufügen eines Error/Success Handlers

Um einen Error/Success Handler hinzuzufügen, erstellen Sie einen Auftrag oder öffnen Sie einen vorhandenen Auftrag und klicken Sie auf neuer Error/Success Handler-Schritt. Wählen Sie anschließen den entsprechenden Error/Success Handler-Schritt aus.

 

Struktur eines geschützten Blocks

Im Codefragment unten sehen Sie ein Beispiel für die Struktur eines geschützten Blocks. Der unten gezeigte geschützte Block besteht aus den geschützten Schritten (Schritt A und B) und den Fehler-/Erfolgsbehandlungsschritten (Schritt C, D, E und F). Nach jeder Ausführung der geschützten Sequenz (ob mit Erfolg oder einem Fehler) werden als nächstes die Handler-Blöcke ausgeführt.

 

Schritt A

Schritt B

 

Bei Fehler

  Schritt C

Bei Wiederholung

  Schritt D

Bei Erfolg

  Schritt E

Immer

  Schritt F

 

Arten von Handlern

Jeder Handler-Block hat eine bestimmte Bedingung. Wenn diese Bedingung "true" ergibt, werden die Schritte dieses Handlers ausgeführt. Es gibt folgende Arten von Error/Success Handlern:

 

Der Bei Fehler-Block wird ausgeführt, wenn innerhalb des Blocks ein Fehler aufgetreten ist.

Der Bei Erfolg-Block wird ausgeführt, wenn alle Schritte im geschützten Block erfolgreich ausgeführt wurden.

Der Bei Wiederholung-Handler wird ausgeführt, wenn einer der Schritte im geschützten Block fehlgeschlagen ist. Der Handler wird so oft ausgeführt, wie in der Option Option ...Mal erneut versuchen angegeben (siehe Option "Wiederholung" weiter unten). Standardmäßig ist diese Option auf 0 gesetzt.

Der Immer-Handler wird ausgeführt, unabhängig davon, ob die Schritte im geschützten Block erfolgreich ausgeführt wurden oder nicht.

 

Reihenfolge der Handler-Ausführung

Handler-Blöcke werden immer in der festgelegten Reihenfolge ausgeführt. Wenn z.B. ein Immer-Block, gefolgt von einem Bei Fehler-Block, wiederum gefolgt von einem weiteren Immer-Block definiert ist, werden die beiden Immer-Blöcke in der angegebenen Reihenfolge ausgeführt, sobald die geschützte Sequenz fertig ausgeführt wurde. Der Bei Fehler-Block nach dem ersten Immer-Block wird nur dann ausgeführt, wenn in der geschützten Sequenz ein Fehler aufgetreten ist.  

 

Wenn im Codefragment oben Schritt A oder B fehlschlägt, wird die geschützte Sequenz verlassen und es werden auf jeden Fall die Schritte C und F ausgeführt (weil Sie Bei Fehler- bzw. Immer-Schritte sind). Schritt D wird nur ausgeführt, wenn noch Wiederholungen übrig sind (siehe Unterabschnitt unten).

 

Die Option "Wiederholung"

Es gibt Fälle, in denen ein Schritt eventuell erneut ausgeführt werden soll, wenn seine Ausführung fehlgeschlagen ist. Zu diesem Zweck gibt es in FlowForce Server die Option zur Wiederholung. Normalerweise ist diese Option auf 0 gesetzt, d.h. der geschützte Block wird nur einmal ausgeführt. Es wird nicht versucht, den Block erneut auszuführen.

 

"Bei Wiederholung"-Blöcke werden nur ausgeführt, wenn für die geschützte Sequenz Wiederholungen übrig sind. Die Wiederholung wird erst gestartet, nachdem alle Handler-Blöcke erfolgreich ausgeführt wurden und nur, wenn die geschützte Sequenz aufgrund eines Fehlers verlassen wurde. Wenn keine Wiederholungen übrig sind, wird der Fehler außerhalb des geschützten Blocks erneut ausgegeben und eventuell von weiteren geschützten Blöcken berücksichtigt.

 

Um einen Ausführungsschritt hinzuzufügen, der eine bestimmte Anzahl von Malen wiederholt wird, gehen Sie folgendermaßen vor:

 

1.Klicken Sie auf der Auftragskonfigurationsseite auf neuer Error/Success Handler-Schritt.

2.Geben Sie die Anzahl der gewünschten Wiederholungen, z.B. 3 Mal, an (siehe Abbildung unten).

3.Klicken Sie unterhalb des Abschnitts Ausführen mit Error/Success Handler... auf die Schaltfläche add und fügen Sie einen oder mehrere Schritte hinzu, der/die im Fall eines Fehlers erneut ausgeführt werden soll(en).

 

Im unten gezeigten Beispiel wird ein Auftrag, in dem eine Datei auf einen FTP-Server hochgeladen wird, bei Fehler 3 Mal erneut versucht. Die Anzahl der Wiederholungen der jeweiligen Auftragsinstanz wird im Log protokolliert. Wenn Sie zusätzlich dazu die Anzahl der Wiederholungen zur Laufzeit abrufen und verarbeiten möchten, rufen Sie die retry-count-Ausdrucksfunktion auf.

fs_retry_on_error_03

 

Beispiel

In der Praxis ist es nicht notwendig, für jeden Auftrag alle drei Handler-Typen zu definieren. Meist werden nur Bei Fehler- und Immer-Handler definiert (Abbildung unten).

 

Im Beispielauftrag unten wird im ersten Schritt durch Aufruf der Funktion \system\shell\commandline ein Skript aus dem Verzeichnis C:\scripts ausgeführt. Die Ausführung dieses Schritts wird durch zwei Handler geschützt: Bei Fehler und Immer. Nur wenn die Ausführung des ersten Schritts fehlschlägt, sendet der Bei-Fehler-Handler eine E-Mail mit der ID der fehlgeschlagenen Auftragsinstanz in der Betreffszeile. Der Immer-Handler wird unabhängig davon, ob der erste Schritt erfolgreich war oder nicht, ausgeführt. Der Immer-Handler protokolliert durch Ausführung eines Skripts aus dem Verzeichnis C:\scripts eine Nachricht.

 

Weitere Beispiele finden Sie unter Hinzufügen von Error Handlern zu einem Auftrag.

fs_protected_block_01

 

© 2017-2023 Altova GmbH