Variablen
In vielen Eingabefeldern können Variablen verwendet werden, die dann zur Laufzeit durch spezifische Werte ersetzt werden.
Variablen sind zu unterscheiden von Konstanten.
Arten von Variablen
Es können zwei verschiedene Arten von Variablen unterschieden werden.
Typen von Variablen
Variablen können den Datentypen String, Integer, Double, Date, Boolean, Float, BigDecimal, BigInteger, TimeStamp oder Blob haben.
Namenskonventionen
Erlaubte Zeichen sind a-Z und 0-9 und die Sonderzeichen _ und #.
Keine Leerzeichen und keine Sonderzeichen außer _ und #.
Der Name darf nicht mit einer Zahl beginnen.
Wir empfehlen die Namenskonvention VAR_NAME.
Variablen anlegen/definieren
Variablen werden normalerweise im Profil angelegt. Zudem gibt es die folgende Möglichkeit Variablen in einer Datei ./etc/admin/datawizard/custom_variables.xml anzulegen. Folgend eine beispielhafte Konfigurationsdatei.
Hinweis: Siehe auch Abschnitt "Initialisierung von Variablen" für eine weitere Möglichkeit.
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
definition
>
<
variable
name
=
"var__internal_booking_id"
value
=
"33"
type
=
"int"
description
=
"booking account"
/>
<
variable
name
=
"var__internal_error_msg"
type
=
"string"
reset
=
"true"
client
=
"-1"
/>
</
definition
>
Verfügbare Attribute
Attribut |
Beschreibung |
name |
Der Name der Variable. |
type |
Der Typ der Variable. Erlaubte Werte sind: int(eger), float, double, string, date, |
value |
Der initiale Wert der Variable. |
description |
Der Beschreibungstext der Variable. |
reset |
Erlaubte Werte: true und false. Entspricht der Spalte Reset im Variablen-Dialog der GUI. |
client |
Der Mandant, für den die Variable-Erzeugung gültig ist (-1 ist der |
Zugriff auf Variablen
Der Zugriff auf Variablen erfolgt mit der Syntax @Variable@. Bei Textvorlagen kann eine Ersetzung auch mit der Syntax {--@variable@--} erfolgen. Darauf wird an entsprechenden Stellen in der Dokumentation hingewiesen. In Parametern von Funktionen können Variablen auch direkt ausgewählt werden.
Initialisierung von Variablen
Variablen mit Präfix MSG_CALL werden am Anfang von Phase 1 initialisiert.
System-Variablen werden am Anfang von Phase 2 initialisiert.
Profil-Variablen werden am Anfang von Phase 3 initialisiert. Eine Ausnahme finden Sie im eventgesteuerten Eingangsagenten HTTP.
Es gibt aber auch die Möglichkeit, Variablen mit einer Java-Klasse zu initialisieren. Die Klasse muss von der Klasse com.ebd.hub.datawizard.plugin.AbstractInitializeVariables abgeleitet sein. Es gibt eine Programmierschnittstelle (API), die es Ihnen auch erlaubt eigene Klassen in Java zu entwickeln. Hierzu bieten wir eine vertiefte Schulung an. Bei Interesse wenden Sie sich bitte an unsere Mitarbeiter im Support bzw. im Vertrieb. Es existiert als Default-Implementierung die Klasse com.ebd.hub.datawizard.plugin.ChangeVariables. Fügen Sie dazu folgenden Eintrag (ist auskommentiert bereits enthalten) in die Konfigurationsdatei ./etc/startup.xml ein, um die Klasse zu aktivieren.
<
Set
name
=
"initVariableClass"
>com.ebd.hub.datawizard.plugin.ChangeVariables</
Set
>
Die Klasse wird bei jedem Job-Start am Anfang der Phase 3 ausgeführt und initialisiert dabei die Variablen. Die Variablenwerte werden gesetzt in der Konfigurationsdatei ./conf/PredefinedVariables.properties. Die Properties-Datei sieht folgendermaßen aus. Zu beachten ist, dass die verwendete Variable im Profil definiert sein muss. Alternativ kann statt der Klasse ChangeVariables die Klasse AddOrChangeVariables verwendet werden, dann müssen die Variablen nicht definiert sein. Hinweis: Es wird auf den Typ 'gecasted', den die Variable im Profil hat. Haben wir also z. B. im Profil eine Variable var__TEST vom Typ Integer, ergibt die Properties-Datei-Angabe var__TEST=Hello für die Variable im Profil den Wert 0, wegen des dann stattfindenden impliziten Typcasts von String auf Integer. Wird die Klasse AddOrChangeVariables verwendet, haben die Variablen immer den Typ String.
#Zuweisung eines Werts durch <MYVAR>=<Wert>
#Zu beachten ist, dass die verwendete Variable im Profil definiert sein muss!
var__TEST=Hello
Hinweis: Wenn man Werte Job-übergreifend (oder auch Profil-übergreifend) speichern will, kann man dazu die Funktionen save permanent(a,b,c), get permanent(a, b) und delete permanent(a, b) verwenden.