Altova FlowForce Server 2024 Advanced Edition

Überprüfen, ob ein Pfad existiert

Zur Startseite Zurück Nach oben Weiter

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

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

 

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. In diesem Tutorial wird aus Gründen der Einheitlichkeit der Container /public/Examples verwendet. Wenn Sie diesen Container noch nicht eingerichtet haben, erstellen Sie ihn mit dem Befehl Erstellen | Container erstellen.

2.Klicken Sie im Container /public/Examples auf Erstellen und wählen Sie den Befehl 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 in einem vorherigen 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 über HTTP zur Verfügung stellen und geben Sie als Namen des Diensts CheckPathService ein. Nähere Informationen dazu finden Sie unter Bereitstellen von Aufträgen als Web-Dienste.

fs_ex_checkpath_07

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

12.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/CheckPathService 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 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.

© 2018-2024 Altova GmbH