Regeln der Ausdruckssprache
Um Fehler in FlowForce-Ausdrücken zu vermeiden, befolgen Sie die folgenden Regeln:
•Verwenden Sie nur zulässige oder deklarierte Werte.
•Um einen String als Literal zu verwenden, setzen Sie ihn in einfache Anführungszeichen.
•Um einen Ausdruck in ein String-Feld einzubetten, setzen Sie ihn in geschweifte Klammern, also in die Zeichen { und }.
•Der Ausdruck muss einen Datentyp erzeugen, der in dem Feld, in den der Ausdruck eingegeben wurde, sinnvoll ist.
Werfen wir nun einen Blick auf die Regeln im Detail:
Regel Nr. 1: Verwenden Sie nur zulässige oder deklariert Werte
In FlowForce-Ausdrücken sind die folgenden Konstrukte zulässig:
•FlowForce-Ausdrucksfunktionen (eine vollständige Liste finden Sie unter Ausdrucksfunktionen)
•FlowForce-Operatoren (siehe Operatoren)
•Numerische Werte
•String-Werte
•Zuvor deklarierte Variablen
Wenn Sie Text in ein Feld eingeben, in dem FlowForce-Ausdrücke zulässig sind, wird eine Syntaxüberprüfung in Echtzeit durchgeführt. Wenn die Syntax fehlerhaft ist, erscheinen die störenden Zeichen rot markiert. Unten sehen Sie ein Beispiel für einen Syntaxvalidierungsfehler:
Der Fehler tritt auf, weil im Auftrag weder die Quelle noch das Ziel deklariert wurde, sodass FlowForce den Ausdruck nicht interpretieren kann. Beheben Sie das Problem, indem Sie diese Werte deklarieren (z.B. als Auftrags-Input-Parameter):
Regel Nr. 2: Setzen Sie Strings in einfache Anführungszeichen
Wenn Sie einen String als Literal verwenden müssen, setzen Sie ihn in einfache Anführungszeichen, da mit dem Ausdruck sonst unerwünschte Ergebnisse erzeugt werden könnten oder die Validierung fehlschlagen könnte. Betrachten Sie die folgenden Beispiele:
Ausdruck | Wird ausgewertet zu... | Erklärung |
---|---|---|
2 | Der Datentyp des Werts ist numerisch. | |
1+1 | Der Datentyp des Werts ist String. | |
true | Der Datentyp des Werts ist Boolesch. |
Wenn Sie Werte von einem Datentyp in einen anderen konvertieren müssen, verwenden Sie die FlowForce-Ausdrucksfunktionen (siehe auch Regel Nr. 4).
Regel Nr. 3: Verwenden Sie geschweifte Klammern in String-Feldern
Wenn Sie einen Ausdruck in ein String-Feld einbetten möchten, setzen Sie den Ausdruck in geschweifte Klammern. Im Beispiel unten ist der Ausdruck instance-id() (eine FlowForce-Ausdrucksfunktion) durch geschweifte Klammern vom Rest des String getrennt.
Wenn das gesamte Feld den Typ "als Ausdruck" hat, verwenden Sie keine geschweiften Klammern. So hat z.B. der Ausdrucksparameter der vordefinierten Funktion system/compute diesen Typ. Unten sehen Sie ein Beispiel für einen korrekten Wert für dieses Feld (Beachten Sie, dass keine geschweiften Klammern verwendet werden):
Würden Sie geschweifte Klammern in dieses Ausdrucksfeld eingeben, würde dies einen Syntaxfehler verursachen:
Siehe auch Einbetten von Ausdrücken in String-Felder.
Regel Nr. 4: Verwenden Sie den richtigen Datentyp
Schließlich sollten Sie daran denken, dass FlowForce Datentypüberprüfungen durchführt, wenn Sie einen Auftrag speichern. Wenn ein in ein Feld eingegebener Ausdruck nicht mit dem im Feld erwarteten Datentyp übereinstimmt, tritt ein Fehler auf. Rechts vom jeweiligen Feld sehen Sie, welcher Datentyp in diesem Feld erwartet wird. Beispiel:
Daher ist ein Ausdruck wie 1+1 in einem String-Feld nicht gültig, da er implizit als numerischer Ausdruck ausgewertet wird. Der Ausdruck '1+1' hingegen ist in einem String-Feld gültig. Im Folgenden finden Sie weitere Beispiele:
Ausdruck | Wird ausgewertet als... | Erklärung |
---|---|---|
1/4 | 0,25 (als Zahl) | Der Datentyp des Werts ist numerisch.
Verwenden Sie diesen Ausdruck in einem Feld oder Kontext, in dem ein numerischer Wert erwartet wird; andernfalls würde die Validierung des Auftrags fehlschlagen. |
1+1==2 | true (als Boolescher Wert) | Der Datentyp des Werts ist Boolesch.
Verwenden Sie diesen Ausdruck in einem Feld oder Kontext, in dem ein Boolescher Wert erwartet wird; andernfalls würde die Validierung des Auftrags fehlschlagen. |
'apple' | apple (als String) | Der Datentyp des Werts ist String.
Verwenden Sie diesen Ausdruck in einem Feld oder Kontext, in dem ein String-Wert erwartet wird; andernfalls würde die Validierung des Auftrags fehlschlagen. |
concat('1','2','3') | 123 (als String) | Der Datentyp des Werts ist String.
Verwenden Sie diesen Ausdruck in einem Feld oder Kontext, in dem ein String-Wert erwartet wird; andernfalls würde die Validierung des Auftrags fehlschlagen. |
1+'apple' | - | Dieser Ausdruck ist nicht gültig. FlowForce gibt einen Fehler zurück, wenn Sie versuchen, den Auftrag zu speichern. Der Ausdruck kann nicht ausgewertet werden, da zwei unterschiedliche Datentypen (String und numerisch) miteinander verglichen werden. |
{content(stdout(result))} | [...] (als String)
| In diesem Ausdruck werden zwei verschachtelte Ausdrucksfunktionen verwendet:
•Die Funktion stdout erhält die Standardausgabe eines Shell-Befehls als Stream. •Die Funktion content konvertiert den Stream-Wert in einen String.
Obwohl der Ausdruck korrekt ist, ist die Validierung des Auftrags nur dann erfolgreiche, wenn folgende Dinge zutreffen:
•Der Wert "result" wurde zuvor deklariert. •Der Wert "result" enthält die Standard-Ausgabe eines Shell-Befehls. •Der Ausdruck ist in ein String-Feld eingebettet.
Siehe auch Aufrufen von Ausdrucksfunktionen. |