Variablen sind die grundlegenden Ressourcen im R-S. Es handelt sich dabei um einfache  Platzhalter für benutzerdefinierte Werte. Das Symbol für Variablen im R-S ist .

Der Wert einer Variablen im R-S wird als STRING (schlicht eine Zeichenkette) eingegeben. Je nach Form des STRINGs wird aber zwischen verschiedenen Datentypen unterschieden. Enthält die Variable z. B.  nur Ziffern, kann Sie als INTEGER (Zahl), NUMBER (Zahl), REAL  (Kommazahl) oder auch BOOLEAN(Wahrheitswert) behandelt werden.  Eine Variable ist grundsätzlich immer eine Textvariable. Speichern Sie allerdings in einer Variablen nur Ziffern,  können Sie mit der Variablen auch als Wert weiterarbeiten  und sie beispielsweise in Rechenoperationen verwenden.  Speichern Sie in einer Variablen nur eine 1 oder 0, können Sie die Variable als boolsche Variable verwenden. Die verschiedenen Datentypen im R-S zeichnen sich durch ihre Form aus. Sinnvolle Datentypen für Variablen sind:


Abbildung A


Datentyp Beschreibung Wertebereich

STRING


Zeichenfolge (Text). Der Inhalt einer Variable ist immer auch ein String.Beliebe viele beliebige Zeichen

INTEGER / NUMBER


Ganzzahliger numerischer Wert mit positivem oder negativem Vorzeichen. 
Das Vorzeichen kann vor oder nach dem ganzzahligen numerischen Wert stehen.
-2147483648  bis +2147483648

FLOAT


Numerischer Wert mit Nachkommastellen mit positivem oder negativem Vorzeichen. 
Das Vorzeichen kann vor oder nach dem ganzzahligen Wert stehen.

-3,4E-4932 bis +3,4E-4932

BOOLEAN


Schaltvariable zum Speichern von 2 Werten: Wahr oder Falschtrue / false bzw. yes / no bzw. 1 / 0

DATETIME


Datumsformat nach ISO 8601

Datum der Form yyyy-mm-dd, z. B.: 2013-04-08

RESOURCE NAME


Name einer R-S Ressource, z. B. einer anderen VariableName einer zulässigen und verfügbaren R-S Ressource

OBJECT NAME


Name eines R-S Objekts, z. B. eines physikalischen BeilegerName eines verfügbaren R-S Objekts


Neben den Typen in der Tabelle existieren im R-S noch weitere Datentypen. Weitere Informationen darüber finden Sie hier.


Sie können den Text in Variablen auch formatieren, indem Sie Inline-Sequenzen verwenden. Variablen sollten jedoch in erster Linie zur Speicherung von Werten dienen, nicht zur Darstellung größerer Texte. Verwenden Sie RichTexte, um einfacher formatierten Text zu erstellen.


Enthalten Variablen gemischte Datentypen, z. B. Ziffern und Buchstaben, werden Sie einfach als STRING (Text) behandelt.


EVAL-Anweisungen und dynamische Einbindung innerhalb von Variablen  

Neben der Möglichkeit, den Inhalt einer Variable statisch durch einen festen Wert zu definieren, können Sie innerhalb von Variablen auch EVAL-Anweisung verwenden. Mit Hilfe von EVAL-Anweisungen können Sie andere Ressourcen und dynamische Werte in eine Ressource einbinden. EVAL-Anweisungen werden immer mit ${ eingeleitet und durch } geschlossen. In den nachfolgenden Abschnitten über die anderen Ressource-Typen lernen Sie noch detaillierter, wie man mit EVAL-Anweisungen arbeitet. Lesen Sie aber unbedingt auch den Abschnitt über EVAL-Anweisungen.




Einbinden anderer Ressourcen


Abbildung B


In Abb. B  wird gezeigt, dass in Variablen auch die dynamische Einbindung anderer Ressourcen erlaubt ist. Der Wert der Variablen MyVariable ist  ${pf_logo} . Durch diese dynamische Einbindung enthält die Variable einen Verweis auf die Ressource pf_logo (Binäre Ressourcen werden in einem späteren Abschnitt vorgestellt, hier enthält die Ressource ein Bild) Wird die Variable dann in das Dokument eingefügt, führt das R-S die EVAL-Anweisung aus und fügt automatisch die Ressource, auf die verwiesen wurde, ein Abb. B (3) .


Die Variable MyVariable enthält nicht die Ressource pf_logo, sondern einen Verweis auf die Ressource: ${pf_logo}. Bei Aufruf der Variablen wird dann der Verweis zurückgegeben.

Beachten Sie bitte, dass in einer Variable vor einer EVAL-Anweisung, die eine binäre Ressource dynamisch einbindet, kein Text (auch keine Leerzeichen oder Zeilenumbrüche) stehen darf. Text nach der Anweisung wird ignoriert. Dies gilt jedoch nicht für die dynamische Einbindung von z. B. anderen Variablen oder für andere EVAL-Anweisungen. Diese können mit Text kombiniert werden.

Sollen Variablen bei der Ausgabe von Dokumenten verwendet werden (z. B. als Feldinhalte von Dokumenten), so ist darauf zu achten, dass Variablen bei ihrer Verwendung aufgelöst werden und damit eine Typ-Prüfung der Variablen stattfindet. Verweist der Inhalt einer Variable zum Beispiel auf eine binäre Ressource (z. B. Logo) und kann der Feld-Typ auf dem Dokument nur Texte aufnehmen, so wird auf dem Dokument keine binäre Ressource ausgegeben, sondern im o.g. Beispiel der Name der binären Ressource.

Bitte verwenden Sie insbesondere Ressourcen vom Typ RichText nicht innerhalb von Variablen zur Ausgabe auf Dokumenten.



Dynamische Werte
 

Neben der dynamischen Einbindung von Ressourcen können Sie in einer Variable (und auch in anderen Ressourcen) mit Hilfe von EVAL-Anweisungen auch Werte dynamisch berechnen. Der Wert wird dann erst berechnet, wenn die Variable verwendet wird.


Abbildung C


Der Wert von VariableB hängt von VariableA ab. In diesem Beispiel wird VariableB immer den Wert 1 annehmen, da VariableA den statischen Wert 0 hat.  Würde VariableB allerdings in der EVAL-Anweisung z. B. eine Regel oder eine Datenstrom-Variable verwenden,  so wäre auch der Wert von VariableB volatil, da der Eingangswert aus einer Regel oder einer Datenstrom-Variablen sich  von Dokument zu Dokument ändern kann. Sie benutzen hier übrigens auch wieder dynamische Einbindung,  indem Sie die Variable VariableA einbinden. S ie betten diese Ressource dann in eine  EVAL-Anweisung ein,  um einen Wert dynamisch (abhängig von VariableA ) berechnen zu lassen bzw. eine Operation mit dieser Ressource durchzuführen. IsNullI() ist eine vorgefertige Funktion. Im R-S gibt es eine Reihe dieser vordefinierten Funktionen. Eine Liste der Funktionen finden Sie hier. Grundsätzlich können Sie dynamische Einbindungen und EVAL-Funktionen unbegrenzt tief verschachteln. Achten Sie aber darauf, dass die Ressource, die Sie verwenden, den erwarteten Datentyp hat: ${IsNullI("01.01.2013")} ist kein gültiger Ausdruck.