Automation Engine Script-Leitfaden > Einführung > Grundlagen > Script-Variable

Script-Variable

In den Scripts von der AE können Sie Script-Variablen verwenden, um darin Werte zu speichern. Sie können sowohl Zahlen, Zeichenfolgen als auch Datums- und Zeitformate enthalten.

Die Deklaration einer Script-Variablen mit einem bestimmten Datentyp erfolgt mit dem Scriptsprachmittel :DEFINE. Der Datentyp legt dabei fest, welche Werte die Variable enthalten soll.Die Wertzuweisung und -änderung innerhalb des Scripts erfolgt mit der :SET-Anweisung.

:DEFINE &FILE#, string
:
SET &FILE# = "temp.txt"

Es ist auch möglich Script-Variablen direkt mit :SET zu erstellen (ohne voriges :DEFINE). Die Variable besitzt in diesem Fall keinen spezifischen Datentyp, kann jedoch nur Zeichenketten und positive Ganzzahlen speichern.
Beispiel:
 

:SET &VAR# = 10
:
SET &VAR# = "string"

Die Gültigkeit einer Script-Variable endet mit der Abarbeitung des Scripts.

Datentypen

Für die Verwendung von Script-Variablen gibt es vier verschiedene Datentypen mit unterschiedlichen Wertebereichen. Die Festlegung des Datentyps ist bei der Variablendeklaration mit der Script-Anweisung :DEFINE durchzuführen.

Datentyp Beschreibung Wertebereich
unsigned Positive Ganzzahlen ohne Vorzeichen 0 bis +9 999 999 999 999 999
signed Ganzzahlen mit Vorzeichen -9 999 999 999 999 999 bis +9 999 999 999 999 999
string Zeichenkette Alphanumerische Zeichenkette mit beliebiger Länge.
float Gleitkommazahlen mit Vorzeichen -9 999 999 999 999 999.9999999999999999 bis +9 999 999 999 999 999.9999999999999999

Führen Sie zuerst die Variablendeklaration durch und nehmen Sie anschließend die passende Wertzuweisung vor.

:DEFINE &STRING#, string
:DEFINE &SIGNED#, signed
:
DEFINE &UNSIGNED#, unsigned

:DEFINE &FLOAT#, float

:SET &STRING#= "1234abc"
:SET &SIGNED#= -5
:
SET &UNSIGNED#= 24
:SET &FLOAT#= -0.50

Der Datentyp "float" umfasst auch positive und negative Ganzzahlen. Weiters ist es möglich, positive Ganzzahlen für den Datentyp "signed" zu verwenden.

Bereits verwendete Variablen können nicht erneut deklariert werden. Der Datentyp einer Variable ist nicht änderbar.

Beachten Sie, dass es bei Rechenoperationen mit Gleitkommazahlen zu einem ungenauen Ergebnis kommen kann!

Syntax

Der Name einer Script-Variablen besteht aus maximal 32 alphanumerischen Zeichen einschließlich der Sonderzeichen "$", "_", "@", "§" und "#". Umlaute sind nicht erlaubt. Das erste Zeichen des Namens darf keine Zahl sein. Im Script sind Variablen immer mit dem Kennzeichen "&" vor dem Namen anzugeben!

Die Script-Anweisungen :PSET and :RSET bilden eine Ausnahme, da sie auf 31 alphanumerische Zeichen beschränkt sind.

Beachten Sie, dass sich der Name der Script-Variablen von vordefinierte Variablen unterscheiden muss. Es wird generell empfohlen '$' nicht an erster Stelle (direkt nach dem Zeichen '&') im Variablennamen zu verwenden. 

Namen von Script-Variablen sind case-insensitiv, das heißt, es wird nicht auf die Groß- und Kleinschreibung der enthaltenen Buchstaben geachtet. Script-Variablen werden ohne führendes und abschließendes Hochkomma angegeben.

Der Name einer Script-Variablen darf nicht dem Beginn des Namens einer anderen Script-Variable entsprechen. Derartige Benennungen sind nur dann möglich, wenn am Ende des Namens beispielsweise ein Sonderzeichen eingefügt wird. Im folgenden Beispiel wird die Bezeichnung "Abschlussdatum" im Aktivierungsprotokoll ausgegeben.

:SET &ACTIVITY# = "End"
:
SET &ACTIVITY_DATE# = SYS_DATE()

:
PRINT "&ACTIVITY#date"

Nicht zulässig sind "&AKTIVITAET_DATUM" und "&AKTIVITAET", da letztere Bezeichnung nicht eindeutig ist. Variablennamen und auszugebende Zeichen können direkt aneinander gereiht werden, daher könnte in diesem Beispiel sowohl die Bezeichnung "Abschlussdatum" als auch "040101" gemeint sein.

:SET &ACTIVITY = "End"
:
SET &ACTIVITYdate = SYS_DATE()

:
PRINT "&ACTIVITYdate"

Arrays 

Es besteht die Möglichkeit Arrays im Zusammenhang mit Script-Variablen zu erstellen. Dadurch können mehrere verschiedene Werte in eine Variable gespeichert werden. Der Zugriff auf die einzelnen Werte erfolgt über den Index. Dieser wird als Nummer in []-Klammern nach dem Variablennamen angegeben. Arrays können nur bei der Variablendeklaration mit :DEFINE erstellt werden. Der dritte Parameter gibt dabei die Anzahl der Werte an (Index-Bereich).

Der Name von Arrays darf im Gegensatz zu normalen Script-Variablen maximal 24 alphanumerische Zeichen lang sein.

:DEFINE &ARR#, unsigned, 10
:SET &ARR#[5] = 20 

Die maximale Größe von Arrays ist 99999. Der Index wird immer als positive Zahl ohne Hochkomma angegeben. Der Zugriff auf das erste Element erfolgt mit dem Index 1.

Beachten Sie, dass bei der Erstellung von Arrays, Speicher für alle Elemente reserviert werden. Daher sollten Arrays nicht mit mehr Elementen angelegt werden als benötigt werden, um Performanceprobleme zu vermeiden.

Felder von Arrays, die noch nicht initialisiert wurden, besitzen als Standardwert "" (Datentyp: string) oder 0 (bei numerischen Datentypen).

Um mehrere Werte direkt in ein Array zu speichern ist das Script-Sprachmittel :FILL zu verwenden. Dabei wird kein Index angegeben. Dies ist beispielsweise hilfreich, um mehrere Spalten eines Variablen-Objektes auszulesen:

:FILL &ARR#[] = GET_VAR("VARA","JOBS") 

Wertzuweisungen 

Wertzuweisungen von Script-Variablen werden mit dem Sprachmittel :SET durchgeführt. Der zugewiesene Wert kann mit oder ohne Hochkommata (Script-Literal) angegeben werden (unabhängig vom Datentyp), oder auch der Rückgabewert einer Script-Funktion sein. 

:DEFINE &NUM#, unsigned
:
SET &NUM# = 1234
:SET &NUM# = "1234"
:SET &NUM# = ADD(1,2)

Script-Variablen können entweder mit einem bestimmten Datentyp (:DEFINE) oder erst direkt bei der Wertzuweisung erstellt werden.
Variablen, die mit :SET erzeugt werden, besitzen keinen bestimmten Datentyp, können allerdings nur positive Ganzzahlen oder Zeichenketten speichern. Wird einer solchen Variable ein negativer Wert oder eine positive Gleitkommazahl zugewiesen, wird in die Variable immer der Wert "0" gespeichert. Es kommt zu keinem Fehler.

Bei Script-Variablen, die einen Datentyp aufweisen, sind folgende Besonderheiten zu beachten:

Entspricht der zugewiesene Wert nicht dem Datentyp der Script-Variable, so wird versucht diesen umzuwandeln bzw. anzupassen. Ist dies nicht möglich, so kommt es zu einem Laufzeitfehler. Dabei handelt es sich konkret um folgende 2 Fälle:

Fehler-Fall 1:
Einer Script-Variable mit dem Datentyp "unsigned" wird eine negative Zahl zugewiesen.
Beispiel:

:DEFINE &NUM#, unsigned
:SET &NUM# = -1

Fehler-Fall 2: 
Einer Script-Variable mit einem Zahlen-Datentyp (unsigned, signed oder float) wird eine Zeichenkette zugewiesen, die sie keiner Zahl entspricht.

Beispiel:

:DEFINE &NUM#, signed
:SET &NUM#"abc123"

Entspricht die Zeichenkette einer Zahl, so funktioniert die Zuweisung.
Beispiel:

:DEFINE &NUM#, signed
:SET &NUM#"-123"

Wird einer Variable eine Gleitkommazahl zugewiesen, obwohl deren Datentyp dies nicht unterstützt (betrifft: "signed" und "unsigned"), so werden die Nachkommastellen abgeschnitten. Es wird nicht gerundet!
Beispiel: Das Ergebnis der Zuweisung ist in diesem Fall -10.

:DEFINE &NUM#, signed
:SET &NUM# = -10.654
:&NUM#

Report:

-0000000000000010

 

Zahlen besitzen standardmäßig das 16-stellige Standard-Format. Bei Gleitkommazahlen (Datentyp: float) sind auch 16 Nachkommastellen vorhanden. Stellen die nicht verwendet werden, werden mit Nullen aufgefüllt. Um führende oder abschließende Nullen zu entfernen, verwenden Sie die Script-Funktion FORMAT.

 


Automic Documentation - Tutorials - Automic Blog - Resources - Training & Services - Automic YouTube Channel - Download Center - Support

Copyright © 2016 Automic Software GmbH