EVAL-Anweisungen (EVAL steht für Evaluierung) sind eine Möglichkeit, dem R-S dynamisch Befehle zur Berechnung und Einbindung von Objekten zu übergeben. Eine EVAL-Anweisung wird immer mit der Zeichenfolge ${ eingeleitet und mit der Zeichenfolge } abgeschlossen.

Es gibt 2 Hauptgründe, um EVAL-Anweisungen zu verwenden:

1. Einbinden einer Ressource

Mit EVAL-Anweisungen können Sie Ressourcen ansprechen. Als Identifikator dient der Name der Ressource.

Syntax

${Meine_Ressource}


Hier wird dann die Ressource "Meine Ressource" dynamisch verlinkt. Wenn Sie z.B. in einem RichText schreiben:

"Sehr geehrter Herr ${DS.CUST_NAME}"

wird, wenn der RichText verwendet wird, dynamisch die Datenstrom-Variable DS.CUST_NAME eingefügt und das Resultat ist z.B.:

"Sehr geehrter Herr Max Mustermann"


2. Funktionen und Bedingungen

Sie können innerhalb von EVAL-Anweisungen vorgefertigte Funktionen verwenden, die dann dynamisch einen Wert liefern. Eine Liste der vorhandenen Funktionen finden Sie hier.

Syntax

${NameDerFunktion(Parameter1, Parameter2,...)}


${ IsNullI(0) } hat z.B. als Resultat 1.

EVAL-Anweisungen führen also die eingebettete(n) Funktion(en) aus und liefern den Ergebniswert zurück.

1. Umgang mit Ressourcen in Texten

Wie oben beschrieben ist es möglich, mit EVAL-Anweisungen Ressourcen in Texte einzubinden. So ist es z.B. möglich, Variablen oder Regeln in andere Textressourcen einzubinden. Eine Ausnahme gilt für binäre Ressourcen. Da sie nicht zusammen mit anderem Text evaluiert werden können, ist es nur möglich, binäre Ressourcen in Variablen einzubinden, wenn außer der einbindenden EVAL-Anweisung sonst kein Text in der Variable enthalten ist. Ansonsten interpretiert das R-S den kompletten Inhalt als Text. Außerdem ist es grundsätzlich nicht möglich, binäre Ressourcen in RichTexte einzubinden.


2. Operatoren

Das R-S unterstützt auch boolsche Operationen, die Sie z.B. in einer Regel anwenden können. Boolsche Operationen sind Vergleiche, die entweder wahr oder falsch sind. Folgende Operatoren sind im R-S definiert:

OperatorBedeutungBeschreibung
* ALWAYSTRUE

Ist immer wahr.

!= NOTEQUAL Ist wahr, wenn die Objekte nicht gleich sind.
<= EQUALLESS Ist wahr, wenn Objekt1 kleiner als Objekt2 ist oder die Objekte gleich sind.
>= EQUALGREATER Ist wahr, wenn Objekt1 größer als Objekt2 ist oder die Objekte gleich sind.
< LESS Ist wahr, wenn Objekt1 kleiner als Objekt2 ist.
> GREATER Ist wahr, wenn Objekt1 größer als Objekt2 ist.
[VAL1,VAL2,VALn] INLIST Ist wahr, wenn das zu vergleichende Objekt in der Liste vorhanden ist.
[VAL1,...,VAL2] INRANGE (3 Argumente, das mittlere Argument ist "...")Ist wahr, wenn das zu vergleichende Objekt zwischen VAL1 und VAL2 liegt.
![VAL1, VAL2, VALn] NOTINLIST Ist wahr, wenn das zu vergleichende Objekt nicht in der Liste vorhanden ist.
![VAL1,...,VAL2] NOTINRANGE Ist wahr, wenn das zu vergleichende Objekt nicht zwischen VAL1 und VAL2 liegt.


Wird kein Operator angegeben, wird EQUAL (=) verwendet. Der Vergleich ist also dann wahr, wenn die Objekte gleich sind. Alle Operatoren wurden für alle Datentypen umgesetzt. Praktische Beispiele finden Sie in der Regeldefinition.

3. Datentypen

Das R-S unterstützt verschiedene Datentypen:

DatentypBeschreibungWertebereichBeispiel
STRINGSpeichert eine ZeichenketteAlle Unicode-Zeichen"Hallo Welt!"
NUMBERSpeichert eine Ganzzahl

−2.147.483.648 bis +2.147.483.648 bzw.

0 bis 4.294.967.295

+706512, -59102
REAL

Speichert eine Gleitkommazahl

Trennzeichen ist '.'

(Achtung keine localisierten Schreibweisen erlaubt

und damit auch kein 1000-der Punkt)

3.4E-4932 1.1E+4932+5481.4390156, -98042.4168640
BOOLEANSpeichert einen Wahrheitswert (0/1)0/false/no und 1/true/yestrue, false, 1, 0, yes, no
DATETIMESpeichert ein Datum nach ISO 8601

Datum ohne Unterstützung von Wochen,

Wochentagen und Tagen im Jahr

2011-12-31, 2011-12-31T16:47Z

4. Entities

Es werden alle HTML-Entities aufgelöst, die RW kennt. Zusätzliche ESCAPE-Zeichen sind:

ESCAPE-Sequenz Bedeutung
\"Doppeltes Anführungszeichen
\nZeilenvorschub (neue Zeile)


Da in RichTexten die interne Darstellung durch XML erfolgt, werden XML-Sonderzeichen im Text implizit umgewandelt, damit sie innerhalb des Codes gespeichert werden können. Sie können mit den folgenden Escape-Sequenzen aber auch eine explizite Umwandlung erzwingen:

ESCAPE-Sequenz Stellt dar
\!
\=
\<<
\>>
\[
\]]

EVAL-Anweisungen werden NICHT durch das Redaktions-System auf syntaktische und semantische Korrektheit geprüft! Fehlt zum Beispiel eine schließende Klammer oder ist eine Funktionsbezeichnung falsch geschrieben, so wird dies erst durch die Output Management Produkte geprüft, welche die Funktionen bei der Dokument-Generierung nutzen (Late Binding). So können diese Art von Fehlern erst bei der Ausführung der Preview-Funktion im Redaktions-System evaluiert werden.