Datentypen, Variablen und Literale
In einem Makroausdruck können Variablen in der Syntax @Variablenname verwendet werden. Informationen zu den Arten verfügbarer Variablen finden Sie unter Variablen.
In der Praxis werden meist Feldvariablen verwendet. Dies sind Variablen, die sich auf Felder aus dem Feldkatalog eines Dokumentes beziehen. Die möglichen Datentypen für Variablen entsprechen daher genau den Datentypen, die unter Feldkatalog für die Deklaration von Feldern aufgeführt sind (siehe Eigenschaft FieldCatalog[].Field[].InitType):
Text: StringNumber: numerischer Wert ohne oder mit NachkommastellenDate: Datum/UhrzeitBool: Wahrheitswert
Eine explizite Unterscheidung zwischen Zahlen mit und ohne Nachkommastellen sowie von Datumswerten mit und ohne Uhrzeit findet nicht statt. Programmintern verfügen diese Datentypen immer auch über einen Dezimalstellen-Anteil oder einen Uhrzeit-Anteil, der dann möglicherweise keine Nutzdaten enthält. Der Datentyp einer Variable kann zur Laufzeit variieren. Dies ist abhängig davon, welcher Wert der Variable als Initialwert, als eingelesener Indexfeldwert oder als Rückgabewert einer Makroausführung zugewiesen wird.
In einem Makroausdruck können konstante Werten (Literale) verwendet werden. Die Syntax dieser konstanten Werte ist für die verschiedenen Datentypen wie folgt:
Datentyp | Syntax für Literale |
|---|---|
Text | String-Werte sind in doppelte Anführungszeichen einzubetten. Alternativ können auch einfache Anführungszeichen verwendet werden, um das notwendige Maskieren beim Einbetten von doppelten Anführungszeichen in einen JSON-String zu umgehen: Anführungszeichen desselben Typs innerhalb des Wertes müssen doppelt angegeben werden, d.h. für Innerhalb einer Konfiguration ist der gesamte Makroausdruck wiederum als String-Wert in doppelten Anführungszeichen zu definieren. In der JSON-Syntax dient ein |
Number | Numerische Werte können aus den Ziffern 0 bis 9, einem vorangestellten Minuszeichen und einem Punkt als Dezimaltrennzeichen bestehen, z. B. |
Date | Datumswerte ohne Uhrzeit haben die Syntax Datumswerte mit Uhrzeit haben die Syntax |
Bool | Wahrheitswerte haben die beiden Ausprägungen |
Hinweis
Der Wert NULL wird vom Makrointerpreter nicht unterstützt. Makrofunktionen liefern keine NULL-Werte als Ausführungsergebnis zurück und sind nicht explizit auf den Umgang mit NULL-Werten als Aufrufparameter ausgelegt. Leere Werte werden stattdessen abhängig vom Datentyp als leere Zeichenfolge ("", 0, 0001-01-01) oder als FALSE dargestellt. Wenn der konkrete Datentyp nicht bekannt ist, wird standardmäßig die leere Zeichenfolge genutzt.
Ein Ausnahmefall sind Werte, die über eine externe Datenbankabfrage eingelesen wurden. Diese Werte können den originalen NULL-Wert behalten. Vor der Weiterverarbeitung eines potentiellen NULL-Wertes mit einer Makrofunktion, die mit diesem Wert möglicherweise nicht korrekt umgehen kann, sollte eine Prüfung mit der Funktion IsNull() ausgeführt werden.