Hinzufügen von Error Handlern zu einem Auftrag

www.altova.com Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  Beispiele zur Konfiguration von Aufträgen >

Hinzufügen von Error Handlern zu einem Auftrag

In diesem Beispiel wird gezeigt, wie Sie eine Fehlerbehandlung zu einem einfachen Auftrag, mit dem der Inhalt eines Verzeichnisses aufgelistet wird, hinzugefügt wird. Dabei wird v.a. die Konfiguration der folgenden FlowForce Server-Schritte gezeigt.:

 

Sende immer, wenn der Auftrag aus irgendeinem Grund nicht ausgeführt werden konnte, eine E-Mail-Nachricht an den genannten Empfänger.
Schreibe immer, wenn der Auftrag - unabhängig vom Ausführungsstatus - fertig ausgeführt wurde, die interne Auftrags-ID in eine Datei im lokalen System.

 

In FlowForce Server erstellen Sie einen so genannten geschützten Block mit zwei Error Handler-Bedingungen: "Bei Fehler" und "Immer" (jede dieser Bedingungen behandelt eines der obigen Szenarien).

 

Voraussetzungen

Benötigte Lizenzen: FlowForce Server
FlowForce Server wird an der konfigurierten Netzwerkadresse und am konfigurierten Port ausgeführt (siehe Einstellen der Netzwerkadresse und des Ports).
Die FlowForce Server Mail-Einstellungen wurden konfiguriert (siehe Definieren der Mail-Parameter).
Sie haben ein FlowForce Server-Benutzerkonto mit Berechtigungen für einen der Container (standardmäßig hat jeder authentifizierte Benutzer Zugriff auf den in diesem Beispiel verwendeten Container /public).

 

Tipps

In diesem Beispiel werden zur Behandlung der Auftragsrückgabewerte FlowForce-Ausdrücke verwendet. Nähere Informationen zu den Ausdrucksfunktionen instance-id, stderr, stdout und failed-step finden Sie unter Schrittergebnisfunktionen.
In diesem Beispiel werden zwar Windows-Pfade und -Befehle verwendet, wenn Sie aber die Pfade und Befehle entsprechend ändern, können Sie es auch auf anderen Betriebssystemen testen.

 

Erstellen des Auftrags

1.Erstellen Sie auf dem Rechner, auf dem FlowForce Server ausgeführt wird, eine Datei namens JobLog.txt (diese Datei wird in den nachfolgenden Schritten verwendet).
2.Loggen Sie sich bei FlowForce Server ein und navigieren Sie zu dem Container, für den Sie die Berechtigung zum Erstellen neuer Aufträge haben (in diesem Beispiel wird /public verwendet).
3.Klicken Sie auf Erstellen und anschließend auf Auftrag erstellen.
4.Klicken Sie unter "Ausführungsschritte" auf die Schaltfläche add und wählen Sie dann Neuer Error/Success Handler-Schritt.
5.Klicken Sie unter "Ausführen mit  Error/Success Handler" auf die Schaltfläche add und fügen Sie einen neuen Ausführungsschritt mit den folgenden Einstellungen hinzu:

 

Funktion ausführen

Navigieren Sie zur Funktion /system/shell/commandline.

Befehl

Geben Sie den folgenden Shell-Befehl ein:

dir /s

Auf Windows-Systemen listet dieser Befehl den Inhalt des Arbeitsverzeichnisses rekursiv auf (siehe nächste Einstellung).

Arbeitsverzeichnis

Setzen Sie den Wert auf ein vorhandenes Verzeichnis auf dem Rechner, auf dem FlowForce Server ausgeführt wird, z.B.:

c:\

 

6.Klicken Sie unter der Bedingung "Bei Fehler" auf die Schaltfläche add und fügen Sie mit einen neuen Ausführungsschritt mit den folgenden Einstellungen hinzu:

 

Funktion ausführen

Navigieren Sie zur Funktion builtin_function/system/mail/send.

Von

Geben Sie die E-Mail-Adresse des Absenders ein. Lassen Sie das Feld leer, wenn Sie die Mail-Einstellungen über die Seite "Verwaltung" konfiguriert haben.

An

Geben Sie Ihre E-Mail-Adresse ein.

Betreff

Geben Sie den folgenden Betreff für die Benachrichtigungs-E-Mail ein:

Auftrag {instance-id()} ist fehlgeschlagen.

Nachrichtentext

Geben Sie den folgenden FlowForce Server-Ausdruck ein:

Exit Code: {string(exitcode(failed-step()))}

Standard Error: {content(stderr(failed-step()))}

Standard Output: {content(stdout(failed-step()))}

Nähere Informationen zur Aufgabe der einzelnen hier verwendeten Funktionen finden Sie unter Schrittergebnisfunktionen.

 

7.Klicken Sie auf Neuer Error/Success Handler und wählen Sie "Immer".
8.Klicken Sie unter der Bedingung "Immer" auf die Schaltfläche add und fügen Sie einen neuen Ausführungsschritt mit den folgenden Einstellungen hinzu:

 

Funktion ausführen

Navigieren Sie zur Funktion /system/shell/commandline.

Befehl

Geben Sie den folgenden Shell-Befehl ein:

echo {instance-id()} >> JobLog.txt

Auf Windows-Systemen schreibt dieser Befehl die Auftrags-ID in eine Datei namens JobLog.txt. Wenn die Datei Daten enthält, wird der neue Text hinter den vorhandenen Daten hinzugefügt.

Arbeitsverzeichnis

Setzen Sie den Wert auf das Verzeichnis, in dem sich die in den vorherigen Schritten erstellte Datei JobLog.txt befindet. Es muss sich hierbei um ein vorhandenes Verzeichnis auf dem Rechner, auf dem FlowForce Server ausgeführt wird, handeln. z.B.:

c:\

 

Zu diesem Zeitpunkt sollte der Auftrag folgendermaßen aussehen (vorausgesetzt, Sie haben keine anderen Pfade oder Shell-Befehle verwendet).

 

ExxampleErrorHandling1

 

9.Fügen Sie unter "Trigger" einen Timer-Trigger hinzu, der alle N Minuten (z.B. alle 5 Minuten) ausgeführt wird.

 

ExxampleErrorHandling2

 

10.Wählen Sie unter "Anmeldeinformationen" einen vorhandenen Eintrag aus oder definieren Sie lokale Anmeldeinformationen (siehe Anmeldeinformationen).
11.Klicken Sie auf Speichern.

 

 

Sie haben nun die Auftragskonfiguration abgeschlossen und haben nun folgende Möglichkeiten:

 

Um die Bedingung "Immer" zu testen, warten Sie, bis die Trigger-Bedingung erfüllt wird. Immer, wenn die Trigger-Bedingung erfüllt wird, wird eine neue Auftrags-ID an den Inhalt der Datei JobLog.txt angehängt.
Um die Bedingung "Bei Fehler" zu testen, ändern Sie die Parameter des ersten Schritts absichtlich in einen falschen Wert um (z.B. durch Angabe eines nicht vorhandenen Pfads). In diesem Fall sendet FlowForce Server eine E-Mail an die im Handler "Bei Fehler" im Feld "Empfänger" definierte Adresse. Außerdem wird die Auftrags-ID in der Datei JobLog.txt protokolliert, da dies unter der Bedingung "Immer" so konfiguriert wurde.
Im Auftrags-Log können Sie kontrollieren, ob der Auftrag erfolgreich ausgeführt wurde (siehe Anzeige des Auftrags-Logs).

© 2019 Altova GmbH