Beispiel: Überprüfen, ob ein Pfad existiert

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

Startseite >  Beispiele zur Konfiguration von Aufträgen >

Beispiel: Überprüfen, ob ein Pfad existiert

In diesem Beispiel wird gezeigt, wie Sie einen Auftrag erstellen, mit dem Sie informiert werden, ob ein Pfad (zu einer Datei oder einem Verzeichnis) auf dem Betriebssystem existiert. Zu diesem Zweck werden wir eine Kombination aus vordefinierten Funktionen und Ausdrucksfunktionen verwenden. Der Auftrag wird als Web-Dienst definiert, damit Sie Ihn bei Bedarf durch Zugriff auf eine URL über Ihren Browser starten können. Im Auftrag wird der Pfad als Argument bereitgestellt. Das Ergebnis ist ein String, der Sie darüber informiert, ob der als Argument angegebene Pfad auf dem Betriebssystem, auf dem FlowForce Server ausgeführt wird, existiert.

 

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)
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).

 

Erstellen des Auftrags

1.Melden Sie sich bei FlowForce Server an und navigieren Sie zu einem Container, für den Sie die Berechtigung zur Erstellung neuer Aufträge haben (Wir verwenden in diesem Beispiel /public).
2.Klicken Sie auf Erstellen und wählen Sie Auftrag erstellen.
3.Fügen Sie einen Auftragsnamen (in diesem Beispiel CheckPath) und optional eine Auftragsbeschreibung hinzu.

ExamplePathExists01

4.Klicken Sie unter Auftrags-Input-Parameter auf add und fügen Sie den Parameter path, wie unten gezeigt, hinzu.

ExamplePathExists02

5.Fügen Sie einen neuen Ausführungsschritt hinzu, der die Funktion builtin_function/system/shell/commandline aufruft, und geben Sie den Shell-Befehl, der überprüft, ob die Datei vorhanden ist, ein. Das Ergebnis dieses Schritts muss, wie unten gezeigt, deklariert werden (in diesem Beispiel haben wir es output genannt).

ExamplePathExists03

In Windows gibt der Shell-Befehl "1" aus, wenn der Pfad existiert und "0", wenn er nicht existiert. Wenn FlowForce Server auf einem Unix-System ausgeführt wird, passen Sie den Befehl entsprechend an. Beachten Sie, dass der FlowForce-Ausdruck {path} in den Befehl eingebettet wird. Dieser Ausdruck referenziert den im vorherigen Schritt definierten Input-Parameter.

6.Klicken Sie unter "Ausführungsschritte" auf die add-Schaltfläche und wählen Sie anschließend die Option Neuer Auswahlschritt aus. Geben Sie anschließend den Ausdruck trim(content(stdout(output))) == '1' als Bedingung ein. Dieser Ausdruck besteht aus drei verschachtelten Funktionen: stdout, content und trim. Die stdout-Funktion ruft zuerst die Standardausgabe des vom vorherigen Schritt zurückgegebenen Ergebnisses auf. Danach konvertiert die Funktion content die Standardausgabe in einen String. Schließlich werden mit der Funktion trim alle voran- oder nachgestellten Leerzeichen, Wagenrücklaufzeichen oder Zeilenvorschubzeichen aus der Standardausgabe entfernt. Anschließend wird das Ergebnis mit Hilfe des Gleichheitszeichens mit "1" verglichen. Wenn beide Werte gleich sind, ist der Pfad vorhanden. Andernfalls ist der Pfad nicht vorhanden.
7.Fügen Sie, wie unten gezeigt, unterhalb der Wenn-Klausel einen Ausführungsschritt hinzu. Dieser Ausführungsschritt ruft die Funktion builtin_function/system/compute-string auf, um den String-Wert zu erzeugen, der zurückgegeben werden soll, wenn der Pfad existiert. Beachten Sie, dass der FlowForce-Ausdruck {path} in den Wert eingebettet ist. Dieser Ausdruck referenziert den im vorigen Schritt definierten Input-Parameter.

ExamplePathExists04

8.Fügen Sie, wie unten gezeigt, unterhalb der Andernfalls-Klausel einen Ausführungsschritt hinzu. Dieser Ausführungsschritt ruft die Funktion builtin_function/system/compute-string auf, um den String-Wert zu erzeugen, der zurückgegeben werden soll, wenn der Pfad nicht existiert. Beachten Sie, dass der FlowForce-Ausdruck {path} in den Wert eingebettet ist. Dieser Ausdruck referenziert den in einem vorherigen Schritt definierten Input-Parameter.

ExamplePathExists05

9.Deklarieren Sie unter "Ausführungsergebnis" den Rückgabetyp als String.

helloworld04

10.Aktivieren Sie unter "Dienst" das Kontrollkästchen Diesen Auftrag unter HTTP zur Verfügung stellen und geben Sie als Namen des Dienstes CheckPath ein (siehe Bereitstellen von Aufträgen als Web-Dienste ).
11.Wählen Sie unter "Anmeldeinformationen" einen vorhandenen Eintrag aus oder definieren Sie lokale Anmeldeinformationen (siehe Anmeldeinformationen).
12.Klicken Sie auf Speichern.

 

Ausführen des Auftrags

Um den Auftrag zu testen, geben Sie in die Adressleiste des Browsers http://127.0.0.1:4646/service/CheckPath ein, vorausgesetzt, FlowForce Server wird unter dem Standard-Host- und Port-Namen ausgeführt. Wenn Sie auf der Konfigurationsseite andere Host- und Port-Einstellungen definiert haben (siehe Einstellen der Netzwerkadresse und des Ports), dann ändern Sie die Adresse entsprechend. 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.

 

Wenn Sie als Web-Dienste bereitgestellte FlowForce Server-Aufträge mit Internet Explorer testen, müssen Sie eventuell  auf dem Register "Erweitert" die Option "Kurze HTTP-Fehlermeldungen anzeigen" deaktivieren.

 

Da dieser Auftrag Argumente hat, werden Sie aufgefordert, diese anzugeben, wenn Sie den Web-Dienst im Browser aufrufen:

ExamplePathExists06

Wenn der Auftrag erfolgreich ausgeführt wird, wird das Ergebnis des Auftrags im Browser angezeigt, z.B.:

 

Pfad C:\ ist vorhanden.

 

Wenn der Auftrag fehlschlägt, wird die Meldung "Dienstausführung fehlgeschlagen" zurückgegeben. Überprüfen Sie in diesem Fall das Auftrags-Log in FlowForce Server, um den Fehler zu identifizieren (siehe Anzeige des Auftrags-Logs).


© 2019 Altova GmbH