Validieren von XML mit Fehlerprotokollierung

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

Startseite >  Beispiele zur Konfiguration von Aufträgen >

Validieren von XML mit Fehlerprotokollierung

In diesem Beispiel wird gezeigt, wie Sie einen Auftrag erstellen, der eine XML-Datei anhand eines Schemas validiert. Wenn der Auftrag aus irgendeinem Grund nicht ausgeführt werden kann, werden die Fehlerdetails in eine Log-Datei geschrieben. Zur Validierung werden wird die Funktion valxml-withxsd von RaptorXML Server verwenden. (Die RaptorXML Server-Funktionen stehen in FlowForce Server zur Verfügung, wenn RaptorXML Server lizenziert ist.) Beachten Sie, dass das in diesem Beispiel verwendete Verfahren zum Protokollieren von Fehlern nicht von RaptorXML Server abhängt und auch für andere Auftragsarten verwendet werden kann.

 

Der Auftrag in diesem Beispiel wird als Webservice definiert, so dass Sie diesen bei Bedarf durch Zugriff auf eine URL von einem Browser aus starten können. Bei Bedarf können Sie jedoch auch ähnlich wie in anderen Beispielen einen Timer-Trigger (oder einen Dateisystem-Trigger) zum Auftrag hinzufügen. Sie könnten auch eine Kombination aus einem Trigger und einem Webservice zum selben Auftrag hinzufügen. Auf diese Art kann der Auftrag nicht nur nach den für den Trigger definierten Regeln, sondern auch bei Bedarf, durch Aufruf des Webservice ausgeführt werden.

 

Voraussetzungen

Benötigte Lizenzen: FlowForce Server, RaptorXML (oder RaptorXML+XBRL) Server
FlowForce Server wird an der konfigurierten Netzwerkadresse und am konfigurierten Port ausgeführt (siehe Einstellen der Netzwerkadresse und des Ports)
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).
Von dem in diesem Beispiel erstellten Auftrag wird bei jeder Ausführung eine Log-Datei erstellt. Sie benötigen daher auf dem Betriebssystem, auf dem FlowForce Server ausgeführt wird, Schreibrechte für ein Verzeichnis (in diesem Beispiel wird das Verzeichnis C:\FlowForce verwendet).

 

Verwendete Demo-Dateien

Die in diesem Beispiel validierte XML-Datei steht unter dem folgenden Pfad im RaptorXML Server-Installationsordner zur Verfügung: C:\Programme\Altova\RaptorXMLServer2019\examples\NanonullOrg.xml. Auf einem Windows 64-Bit-System, auf dem eine 32-Bit-Version von FlowForce Server ausgeführt wird, würde der Pfad lauten C:\Programme (x86)\Altova\RaptorXMLServer2019\examples\NanonullOrg.xml, es sei denn Sie haben RaptorXML Server in einem anderen Ordner installiert.

 

Erstellen des Auftrags

1.Melden Sie sich bei FlowForce Server an und navigieren Sie zu einem Container, bei dem Sie die Berechtigung haben, neue Aufträge zu erstellen (Wir verwenden in diesem Beispiel den Container /public).
2.Klicken Sie auf Erstellen und wählen Sie anschließend Auftrag erstellen.
3.Fügen Sie einen Auftragsnamen (in diesem Beispiel ValidateFile) sowie optional eine Auftragsbeschreibung hinzu.

ex-raptor-01-01

4.Klicken Sie unter "Ausführungsschritte" auf die add-Schaltfläche und anschließend auf neuer Error/Success Handler.

ex-raptor-01-02

5.Klicken Sie unter "Ausführen mit Error/Success Handler" auf die add-Schaltfläche und fügen Sie einen neuen Ausführungsschritt mit den folgenden Einstellungen hinzu:

 

Funktion ausführen

Setzen Sie den Wert auf /RaptorXML/valxml-withxsd. Sie finden diese Funktion auch in jedem Container für eine bestimmte RaptorXML Release, z.B. /RaptorXML/2019/valxml-withxsd.

Parameter

Definieren Sie als Wert für den XML-Dateiparameter:

 

C:\Program Files (x86)\Altova\RaptorXMLServer2019\examples\NanonullOrg.xml

 

fs_valxml_job

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

 

Funktion ausführen

/system/compute

Parameter

Definieren Sie als Wert von Ausdruck:

 

as-file(stdout(failed-step()))

 

Das Ergebnis dieses Schritts zuweisen an

Geben Sie einen Wert ein, der des Ergebnis dieses Auftrags eindeutig identifiziert (z.B. MyResult ). Dadurch deklarieren Sie diesen Wert als Variable, die Sie in einem nachfolgenden Schritt verwenden können.

ex-raptor-01-04

7.Klicken Sie unterhalb des vorherigen Ausführungsschritts auf die add Schaltfläche und fügen Sie einen neuen Ausführungsschritt mit den folgenden Einstellungen hinzu:

 

Funktion ausführen

/system/filesystem/copy

Parameter

Klicken Sie neben dem Parameter Quelle auf ff-setTo und wählen Sie die zuvor deklarierte Variable MyResult aus.

 

Geben Sie neben dem Parameter Ziel den Pfad ein, unter dem die Log-Datei gespeichert werden soll (In diesem Beispiel lautet der Pfad C:\FlowForce\ValidateFile.log). Beachten Sie, dass das Verzeichnis C:\FlowForce auf dem Server, auf dem FlowForce Server ausgeführt wird, vorhanden sein muss und dass Sie dafür Schreibrechte benötigen.

 

Aktivieren Sie das Kontrollkästchen neben dem Parameter Überschreiben. Die Log-Datei wird bei jeder Ausführung des Auftrags generiert. Dadurch wird sichergestellt, dass der Auftrag nicht fehlschlägt, wenn die Log-Datei bereits vorhanden ist.

ex-raptor-01-05

 

8.Aktivieren Sie unter "Dienst" das Kontrollkästchen Diesen Auftrag über HTTP verfügbar machen und gebe Sie als Namen des Diensts ValidateFile ein.
9.Wählen Sie unter "Anmeldeinformationen" vorhandene Anmeldeinformationen aus oder definieren Sie lokale Anmeldeinformationen (siehe Anmeldeinformationen).
10.Klicken Sie auf Speichern.

 

Um den Auftrag zu testen, geben Sie in die Adressleiste des Browsers die Adresse http://127.0.0.1:4646/service/ValidateFile ein, vorausgesetzt dass FlowForce Server am Standard-Host und Port ausgeführt wird. Falls Sie auf der Konfigurationsseite andere Host- und Port-Einstellungen definiert haben (siehe Einstellen der Netzwerkadresse und des Ports), ändern Sie die Adresse entsprechend. Wenn Sie beim Aufruf der Website aufgefordert werden, Anmeldeinformationen einzugeben, geben Sie dieselben Anmeldeinformationen ein, die Sie auch für die Anmeldung auf FlowForce Server verwendet haben.

 

Wenn der Auftrag erfolgreich ausgeführt wurde (d.h. wenn der Exit-Code "0" zurückgegeben wird), so wird die Standardausgabe des Auftrags im Browser angezeigt, z.B.:

 

file:///C:/Program%20Files%20(x86)/Altova/RaptorXMLServer/examples/NanonullOrg.xml: runtime="16ms" result="OK"

 

Wenn nach der Ausführung des Auftrags (z.B. aufgrund eines falschen Pfads, eines Validierungsfehlers, usw.) ein anderer Exit-Code als "0" zurückgegeben wird, so wird im Browser die Meldung "Dienstausführung fehlgeschlagen" angezeigt und die Ausgabe wird in die Log-Datei C:\FlowForce\ValidateLog.log geschrieben. Falls die Log-Datei nicht generiert wurde, überprüfen Sie das Auftrags-Log in FlowForce Server, um herauszufinden, welcher Fehler aufgetreten ist (siehe Anzeige des Auftrags-Logs). Möglicherweise konnte die Funktion /system/filesystem/copy nicht ausgeführt werden, weil Sie keine Schreibrechte für den Zielpfad haben und die Log-Datei daher nicht generiert werden kann.


© 2019 Altova GmbH