Automation Engine Script-Leitfaden > Funktionelle Gliederung > Script-Aufbau und -Prozessierung > :DEFINE

:DEFINE

Script-Anweisung: Erstellung einer Script-Variable mit einem bestimmten Datentyp.

Syntax 

:D[EFINE] Script variable, data type, [Array size]

Syntax

Beschreibung/Format

Script-Variable

Name der Script-Variable, die mit Angabe eines Datentyps neu erstellt wird.

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!

Format: Script-Variable

Datentyp

Datentyp der deklarierten Variable.

Erlaubte Werte: "unsigned", "string", "float" oder "signed"

unsigned: Positive Ganzzahlen ohne Vorzeichen
signed: Ganzzahlen mit Vorzeichen
float: Gleitkommazahlen
string: Zeichenkette, Text

Array-Größe

Wenn die Script-Variable als Array erzeugt werden soll, wird mit diesem Parameter die Größe festgelegt.
Format: Zahl ohne Hochkommata

Erlaubte Werte:
1 bis 99999

Kommentare

Script-Variablen können direkt mit dem Scriptsprachmittel :SET erstellt werden. Dies ist jedoch nur zulässig, wenn die angegebenen Werte den Datentypen "string" oder "unsigned" entsprechen! In diesem Fall wird der Datentyp automatisch über den angegebenen Wert abgerufen. Wird der Variable eine Gleitkommazahl oder eine negative Zahl zugewiesen, kommt es zu einem Scriptfehler.

Eine Deklaration von Variablen, die bereits verwendet wurden, ist nicht möglich! Dies gilt für Script- und Objekt-Variablen, inklusive Definitionen in der Registerkarte Variablen & Prompts!

Die direkte Wertzuweisung eines anderen Datentyps funktioniert nur bei Script-Variablen, die mit :SET erstellt wurden, und nur mit positiven Ganzzahlen und Strings!

Wird einer Script-Variable ein Wert zugewiesen, der außerhalb des erlaubten Bereichs des definierten Datentyps liegt, wird der Wert automatisch in den Zieltyp konvertiert.

Wird bei der Verwendung des Script-Sprachmittels :DEFINE kein oder ein ungültiger Datentyp angegeben, kommt es zu einem Scriptfehler.

Variablen, die bereits mit :SET festgelegt wurden, können mit :DEFINE nachträglich geändert werden.

Die verschiedenen Datentypen besitzen folgende Wertebereiche:

Datentyp Wertebereich
unsigned 0 bis +9 999 999 999 999 999
signed -9 999 999 999 999 999 bis +9 999 999 999 999 999
string Alphanumerische Zeichenkette mit beliebiger Länge.
float -9 999 999 999 999 999.9999999999999999 bis +9 999 999 999 999 999.9999999999999999

Die folgenden Wertebereiche sind beim Sun Solaris Betriebssystem anders. Diese sind: 

Datentyp Wertebereich
unsigned

0 bis +9 999 999 999 999 998

signed -9 999 999 999 999 998 bis +9 999 999 999 999 998
float -9 999 999 999 999 998.9999999999999999 bis +9 999 999 999 999 998.9999999999999999

Bei Angabe des Parameters Array-Größe wird die Script-Variable als Array mit der festgelegten Länge erzeugt. Die Größe darf dabei den Wert 99999 nicht überschreiten. Beachten Sie die Besonderheiten im Umgang mit Script-Arrays. Die Indexklammern [] werden bei der Array-Deklaration nicht benötigt.

Verwenden Sie die Script-Anweisung :FILL, um Script-Arrays mit mehreren verschiedenen Werten zu befüllen.

Beispiele

Deklaration von mehreren Variablen mit verschiedenen Datentypen und anschließender Wertzuweisung:

:DEFINE &a#, unsigned
:DEFINE &b#, signed
:DEFINE &c#, float
:DEFINE &d#, string
:SET &a# = 12
:SET &b# = -5
:SET &c# = 0.50
:SET &d# = "string"

In diesem Beispiel wird der Datentyp des Variablenwertes automatisch in den Zieltyp konvertiert:

:DEFINE &unsigned#, unsigned
:DEFINE &string#, signed
:SET &unsigned# = 12
:SET &string# = &unsigned#

In folgendem Beispiel ist die Zuweisung gültig, da die Variable "&unsigned#" mit der Script-Funktion CONVERT in den richtigen Datentyp umgewandelt wird:

:DEFINE &unsigned#, unsigned
:DEFINE &string#, signed
:SET &unsigned# = 12
:SET &string# = CONVERT(string,&unsigned#)

Wird eine Script-Variable mit dem Scriptsprachmittel :SET erstellt, ist eine direkte Wertzuweisung der Datentypen "unsigned" und "string" möglich.

:SET &setvar#= 12
:SET &setvar2#="string"
:SET &setvar# = &setvar2#

Dieses Beispiel zeigt die Erstellung und Befüllung eines Arrays mit Werten aus einem Variablen-Objekt.

:DEFINE &array#, unsigned, 5
:FILL &array#[] = GET_VAR(VARA1, ARRAY)

Folgendes Beispiel rundet das Ergebnis der Rechenoperation 3.0 - 0.1 in einen String unter Berücksichtigung einer Nachkommastelle mit Hilfe der Script-Funktion FORMAT und eines allgemeinen Rechenfehlers Epsilon = 0.0000005.

:DEFINE &SCRIPT_VERSION_ORIG#, float
:DEFINE &SCRIPT_VERSION_ORIG1#, float
:DEFINE &EPSILON#, float

:SET &SCRIPT_VERSION_ORIG# = 3.0
:SET &EPSILON# = 0.0000005
:P &SCRIPT_VERSION_ORIG#
:SET &SCRIPT_VERSION_ORIG# = &SCRIPT_VERSION_ORIG# - 0.1
:P BEFORE FORMAT: &SCRIPT_VERSION_ORIG#
:SET &SCRIPT_VERSION_ORIG# = &SCRIPT_VERSION_ORIG# + &EPSILON#
:SET &SCRIPT_VERSION_ORIG# = FORMAT(&SCRIPT_VERSION_ORIG#, "0.0")
:P AFTER FORMAT: &SCRIPT_VERSION_ORIG#

Sie finden detaillierte Ausführungen zum Problem der Darstellung von Gleitkommazahlen und deren Format im Kapitel "Gleitkommazahlen in der Automation Engine".

 

Siehe auch:

Script-Sprachmittel Beschreibung

:SET

Weist einer Script-Variablen einen Wert zu.

 


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

Copyright © 2016 Automic Software GmbH