Altova FlowForce Server 2024 Advanced Edition

Validieren von XML mit Fehlerprotokollierung

Zur Startseite Zurück Nach oben Weiter

In diesem Beispiel wird gezeigt, wie Sie einen Auftrag zum Validieren einer XML- Datei anhand eines Schemas erstellen. Wenn der Auftrag aus irgendeinem Grund fehlschlägt, werden die Fehlerdetails in eine Log-Datei geschrieben. Zur Validierung werden wir unter Verwaltung von FlowForce Server die Funktion valxml-withxsd von RaptorXML Server verwenden. 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.

 

Anmerkung:Die RaptorXML Server-Funktionen stehen in FlowForce Server nach Installation von RaptorXML Server zur Verfügung.

 

Der Auftrag in diesem Beispiel wird als Webservice definiert, so dass Sie diesen bei Bedarf durch Aufrufen einer URL von einem Browser aus starten können. Sie können 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

Der FlowForce Web Server- und der FlowForce Server-Dienst werden an der konfigurierten Netzwerkadresse und am konfigurierten Port ausgeführt und sind dort empfangsbereit.

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:\FlowForceExamples\ValidateXml 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\RaptorXMLServer2024\examples\NanonullOrg.xml.

 

Auf einem 64-Bit-Windows-System, auf dem eine 32-Bit-Version von RaptorXML Server ausgeführt wird, würde der Pfad lauten C:\Programme (x86)\Altova\RaptorXMLServer2024\examples\NanonullOrg.xml, es sei denn, Sie haben RaptorXML Server in einem anderen Ordner installiert.

 

Sie könnten auch jede beliebige andere XML-Datei zur Validierung verwenden.

 

Erstellen des Auftrags

1.Melden Sie sich bei der FlowForce Server Web-Verwaltungsschnittstelle an und öffnen Sie den Container /public/Examples. Der Container public/Examples sollte bereits vorhanden sein, wenn Sie die vorherigen Beispiele durchgearbeitet haben; erstellen Sie ihn andernfalls mit dem Befehl Erstellen | Container erstellen.

2.Klicken Sie auf Auftrag erstellen. Geben Sie als nächstes einen Namen und optional eine Beschreibung für den Auftrag ein. In diesem Beispiel wird als Auftragsname "ValidateXml" verwendet.

fs_valxml_example_01

3.Klicken Sie unter "Auftrags-Input-Parameter" auf die Schaltfläche add und erstellen Sie einen neuen Parameter vom Typ "String als Datei" hinzu.

fs_valxml_example_02

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

fs_valxml_example_03

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

Navigieren Sie zur Funktion /RaptorXML/valxml-withxsd.

Parameter

Klicken Sie neben dem Parameter XML-Datei auf ff-setTo und wählen Sie den zuvor deklarierten Auftragsinputparameter inputFile aus.

 

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

Navigieren Sie zur Funktion /system/compute.

Parameter

Definieren Sie als Wert von Ausdruck:

 

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

 

Die Teile zwischen den geschweiften Klammern sind zwei FlowForce-Ausdrücke. Mit diesem Ausdruck wird die Ausgabe abgerufen, in einen Stream konvertiert und anschließend in eine Datei auf der Festplatte geschrieben:

 

Die Funktion failed-step gibt das Ergebnis result des fehlerhaften Schritts zurück. Es handelt sich hierbei um einen abstrakten FlowForce-Typ, der am besten als Argument an die Funktionen exitcode, stderr oder error-message bereitgestellt wird, siehe unten.

Die Funktion stdout ruft die Standardausgabe des Ergebnisses result als Stream ab, vorausgesetzt, es gibt eine Standardausgabe.

Die Funktion as-file erstellt anhand des Streams eine Datei. Der Pfad wird in einem späteren Schritt definiert.

Das Ergebnis dieses Schritts zuweisen an

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

 

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

 

Funktion ausführen

Navigieren Sie zur Funktion /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:\FlowForceExamples\ValidateXml\error.log).

 

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.

 

Setzen Sie den Parameter Arbeitsverzeichnis auf C:\FlowForceExamples\ValidateXml.

 

Die "Bei Fehler"-Verzweigung des Auftrag sollte nun folgendermaßen aussehen:

fs_valxml_example_04

8.Aktivieren Sie unter "Dienst" das Kontrollkästchen Diesen Auftrag über HTTP zur Verfügung stellen und geben Sie als Namen des Diensts ValidateXmlService ein.

9.Wählen Sie unter "Anmeldeinformationen" einen vorhandenen Eintrag aus oder definieren Sie lokale Anmeldeinformationen. Nähere Informationen dazu finden Sie unter Anmeldeinformationen.

10.Klicken Sie auf Speichern.

 

Ausführung des Auftrags

Um den Auftrag auszuführen, wählen Sie eine der folgenden Methoden:

 

Gehen Sie zur Startseite und klicken Sie anschließend auf Alle aktiven Trigger und Dienste anzeigen. Klicken Sie anschließend auf die in der Spalte "Info" angezeigte URL des Auftrags.

Geben Sie in die Adressleiste des Browsers http://127.0.0.1:4646/service/ValidateXmlService ein. Beachten Sie, dass diese URL nur funktioniert, wenn der FlowForce Server-Dienst an der Standard-Host-Adresse und am Standard-Port-Namen empfangsbereit ist. Wenn Sie auf der Konfigurationsseite andere Host- und Port-Einstellungen definiert haben, dann ändern Sie die Adresse entsprechend.

Wenn Sie das optionale Feld Host-Name von FlowForce Server über die Setup-Seite definieren, können Sie den Webservice-Aufruf direkt über die Auftragskonfigurationsseite ausführen, indem Sie neben dem Kontrollkästchen Diesen Auftrag über HTTP...zur Verfügung stellen auf die Schaltfläche fs_ic_call_ws klicken. Andernfalls wird diese Schaltfläche nicht angezeigt.

 

Wenn Sie aufgefordert werden, beim Aufrufen des Web-Diensts Anmeldeinformationen anzugeben, so geben Sie dieselben Anmeldeinformationen ein, mit denen Sie sich auch bei FlowForce Server angemeldet haben.

 

Für die HTTP-Authentifizierung sollten Sie Ihre FlowForce Server-Anmeldeinformationen nur zu Testzwecken eingeben. Für Produktionszwecke wird empfohlen, einen neuen FlowForce-Benutzer zu erstellen, diesem Benutzer im Container, in dem sich der Auftrag befindet, die Berechtigung Dienst - Verwenden einzuräumen und den Web-Dienst anschließend über das entsprechende Benutzerkonto aufzurufen. Um die HTTP-Authentifizierung zu deaktivieren, und den Web-Dienst öffentlich zugänglich zu machen, weisen Sie dem Benutzer Anonymous die Berechtigung Dienst - Verwenden zu, siehe Funktionsweise von Berechtigungen.

 

Da in diesem Auftrag laut Konfiguration als Input ein Parameter erwartet wird, wird im Browser ein Formular angezeigt, in das Sie den Pfad der zu validierenden XML-Datei eingeben können.

fs_valxml_example_05

Geben Sie einen XML-Dateipfad in das Textfeld ein (z.B. C:\Programme\Altova\RaptorXMLServer2024\examples\NanonullOrg.xml) und klicken Sie auf Submit.

 

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/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:\FlowForceExamples\ValidateXml\error.log geschrieben. Falls die Log-Datei nicht generiert wurde, überprüfen Sie das Auftrags-Log, um den Fehler ausfindig zu machen. Möglicherweise konnte die Funktion /system/filesystem/copy nicht ausgeführt werden, weil Sie keine Schreibrechte für den Zielpfad haben.

© 2017-2023 Altova GmbH