evaluate term (a, b, c, d, e, [f])
Gruppe |
Mit dieser Funktion kann ein logischer Ausdruck a ausgewertet werden. Bei negativem Auswertungsergebnis (false) können Meldungen c verschiedenen Typs b (warning, info, error) in einer internen Liste geloggt werden. Diese Liste kann z. B. mit der Funktion dump validation data (a, b) ausgegeben werden.
Wird dabei mindestens eine Meldung des Typs error erzeugt, dann bricht das Profil am Ende mit einem Fehler ab, falls nicht an irgendeiner Stelle im Profil die Funktion dump validation data (a, b) ausgeführt wurde und Meldungen des Typs error nicht in User-Errors umgewandelt wurden. Der optionale Parameter f kann den Namen des Quellfeldes enthalten - dadurch wird das Feld in der Fehlerbearbeitung besser dargestellt bzw. gefunden.
Der Rückgabewert der Funktion ist das Ergebnis der Auswertung in a.
Parameterbeschreibung
Parameter |
Beschreibung |
a |
Auszuwertender logischer Ausdruck. Siehe Abschnitt unten für erlaubte Operatoren und Beispiele. |
b |
Typ der Meldung, die erzeugt wird, wenn der Ausdruck in a zu false ausgewertet wird. W, I oder E für warning, info, error. Hinweis: Ist die System-Variable VAR_SYS_VALIDATION_ERRORS angelegt, wird, immer wenn ein Fehler (error) angelegt wird, die Anzahl der bisher erzeugten Fehler in diese Variable gespeichert. |
c |
Text der Meldung. Siehe auch Parameter e. |
d |
Wird später in der Funktion dump validation data (a, b) die Option verwendet User-Errors zu erzeugen, dann kann in d der zu markierende Wert angegeben werden. Details sind in der Dokumentation zur Funktion log user error(a,b,[c]) zu finden. |
e |
Optionale Properties-Datei. Falls hier ein Wert angegeben ist, dann wird Parameter c als Schlüssel für die Properties-Datei interpretiert und der Wert für den Schlüssel wird als Meldungstext verwendet. |
f |
(optional) Wird später in der Funktion dump validation data (a, b) die Option verwendet User-Errors zu erzeugen, dann kann in f das zu markierende Quellfeld angegeben werden. Details sind in der Dokumentation zur Funktion log user error(a,b,[c]) zu finden. |
Erlaubte Operatoren in Parameter a
Numerische Operatoren
Operator |
Erklärung |
< |
Numerisch kleiner. |
<= |
Numerisch kleiner gleich. |
> |
Numerisch größer. |
>= |
Numerisch größer gleich. |
== |
Numerisch gleich. |
String-Operatoren
Operator |
Erklärung |
.equals |
String-Gleichheit. |
.substring(a,b) |
Substring von Index a bis b. |
Logische Operatoren
Operator |
Erklärung |
! |
Logisches NICHT. |
AND |
Logisches UND. |
OR |
Logisches ODER. |
true |
Wahr. |
false |
Falsch. |
Referenz auf Funktionsposition in Funktionskette
Operator |
Erklärung |
#<n> |
Ergebnis der Funktion mit Positionsummer <n> in der Funktionskette. Wichtiger Hinweis: Wenn der referenzierte Wert ein String ist, denken Sie bitte daran den Wert in Anführungszeichen zu setzten, wie Sie das auch bei anderen String-Werten tun müssen. Siehe Beispiele unten. |
Klammerung
Operator |
Erklärung |
() |
Klammern um einen beliebigen Term, z. B. (1<2) Es gelten hierbei die in der Logik üblichen Klammerregeln. |
Hinweis: Es können zwar prinzipiell alle zur Verfügung stehenden Java-Funktionen verwendet werden in Parameter a, allerdings werden nur die vorhin angeführten durch unseren Support abgedeckt. Beispiel: "Hans".concat(" im Glück").equals("Hans im Glück")
Beispiele
Ein Grundverständnis für logische Ausdrücke muss hier vorausgesetzt werden. Zu beachten ist, dass Sie als Ergebnis immer einen logischen Wert bekommen wollen. D. h. wenn Sie große Terme aus Teiltermen erstellen (ein nummerischer Teilterm wäre z. B. 1<2), dann müssen diese Teilterme mit logische Operatoren verbunden werden. Die Teilterme selbst können logisch oder nummerisch sein oder auch String-Vergleiche durchführen.
Term |
Ergebnis |
2<1 |
false |
33==33 |
true |
true AND false |
false |
true AND true |
true |
(1<2) OR (true AND false) |
true |
!((1<2) OR (true AND false)) |
false |
"Hans".equals("Hans") |
true |
("Hans".equals("Hans")) AND false |
false |
"Hans".equals("Flo") |
false |
#1==22 |
Hat die Funktion auf Position 1 in der Funktionskette den Rückgabewert 22, dann true. |
#1 AND true |
Hat die Funktion auf Position 1 in der Funktionskette den logischen Rückgabewert true, dann true. Hinweis: Der Rückgabewert der Funktion muss also z. B. von einer logischen Funktion kommen, es darf nicht der bloße String true sein. |
!(#1) |
Hat die Funktion auf Position 1 in der Funktionskette den logischen Rückgabewert true, dann false. |
"#1".equals("Hans") |
Hat die Funktion auf Position 1 in der Funktionskette den String-Rückgabewert Hans, dann true. |