Berechnen eines Ausdrucks

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

Startseite >  Die FlowForce-Ausdrücke >

Berechnen eines Ausdrucks

Eine einfache Methode, FlowForce-Ausdrücke zu testen, bevor man diese in Aufträge einbettet, ist, einen Ausführungsschritt zu erstellen, der die Funktion builtin_function/system/compute aufruft. Ein Beispiel mit einer schrittweisen Anleitung finden Sie unter Erstellen eines "Hello, World!"-Auftrages.

 

Die Funktion builtin_function/system/compute wertet den Wert des Ausdrucksparameters aus und gibt das berechnete Ergebnis zurück. Vor allem hat diese Funktion keinen definierten Rückgabetyp. Welcher Typ tatsächlich zurückgegeben wird, hängt vom berechneten Ausdruck ab. Wenn Sie z.B. den Ausdruck 1+1 an diese Funktion übergeben, so gibt die Funktion den numerischen Wert 2 zurück. Wenn Sie jedoch den Ausdruck '1+1' an diese Funktion übergeben, so gibt sie den String-Wert 1+1 zurück.

 

Erstellen Sie zum besseren Verständnis dieses Konzepts einen Schritt, der die Funktion builtin_function/system/compute aufruft und geben Sie in das Ausdrucksfeld "1+1" ein. Stellen Sie sicher, dass als Rückgabetyp des Auftrags "String" ausgewählt ist (siehe Abbildung unten).

expr_compute_error

Wenn Sie versuchen, den Auftrag zu speichern, zeigt FlowForce den Fehler "Die Typen String und Zahl stimmen nicht miteinander überein" an. Dieser Fehler tritt auf, weil es sich beim berechneten Ausdruck um eine Zahl handelt, während als Rückgabetyp des Auftrags ein String-Wert deklariert ist.

 

Um dieses Problem zu beheben, ändern Sie entweder den Rückgabetyp des Auftrags in "Zahl" oder konvertieren Sie die Zahl in einen String. Im Beispiel unten wird die FlowForce-Ausdrucksfunktion string aufgerufen, die die Zahl in einen String-Wert konvertiert.

expr_compute_error_fixed

Wenn Sie einen Ausdruck berechnen müssen und der Wert als String zurückgegeben werden soll, können Sie alternativ dazu auch die Funktion builtin_function/system/compute-string verwenden. Beachten Sie, dass der Ausdrucksteil in diesem Fall vom String durch geschweifte Klammern getrennt werden muss (siehe Einbetten von Ausdrücken in String-Felder).


© 2019 Altova GmbH