:DEFINE

Script Statement: Defines a variable and declares the data type of the variable.

Syntax 

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

Syntax

Description/Format

Script variable

The name of the script variable that is created together with a data type.

You must always use an ampersand symbol (&) that precedes the script variable's name, and it is recommended that you use a hash (#) symbol to signal the end of the variable's name.

The length of a script variable's name is limited to 32 characters. All characters of the alphabet, the numbers 0-9, and the following special characters can be used:"$", "_", "@", "ยง" and "#". German Umlauts are not allowed. The first character after the leading "&", which is not part of the 32-character limit, must neither be a number nor a "$" symbol.

For more details about the syntax, see Syntax.

Format: script variable

Data type

The data type of the defined script variable.

Allowed values: "unsigned", "string", "float" or "signed"

unsigned: positive integers without signs
signed: integers with signs
float: floating point number
string: string, text

Array size

If this script variable should be generated as an array, you use this parameter to define its size.
Format: number without inverted commas

Allowed values:
1 to 99999

Comments

You can directly create script variables by using the script element :SET and assign the required value when you use the data types "string" or "unsigned". In this case, the data type is automatically retrieved via the specified value. A scripting error occurs if a floating point number or a negative number has been specified.

Important!

The following value ranges are available for the different data types:

Data Type Value Range
unsigned 0 to +9 999 999 999 999 999
signed -9 999 999 999 999 999 to +9 999 999 999 999 999
string Alphanumeric string with arbitrary length.
float -9 999 999 999 999 999.9999999999999999 to +9 999 999 999 999 999.9999999999999999

The following value ranges are different for Sun Solaris operating system. They are: 

Data Type Value Range
unsigned

0 to +9 999 999 999 999 998

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

Use the parameter Array size to have the script variable generated as an array with a defined length. The size must not exceed the value 99999. No square brackets [] are required for the array declaration. For further details, see Arrays .

Use the script statement :FILL to fill script arrays with several different values.

Examples

Declaration of several variables with different data types and subsequent value assignment:

: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"

The following example converts the data type of the variable's value automatically:

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

The following example shows a valid assignment because the variable "&unsigned#" is converted to the correct data type via the function CONVERT:

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

A direct value assignment with the data types "unsigned" and "string" is possible if a script variable is created by using the script element :SET.

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

The last example shows how to create and fill an array.

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

The following example rounds the result of the arithmetic operation 3.0 - 0.1 into a string, using the script function FORMAT while taking a common arithmetical error Epsilon = 0.0000005 and one decimal place into account.

: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#

For details concerning the problem of representing floating-point numbers, see Floating-point numbers in the Automation Engine

See also:

Script Elements Description

:SET

Stores a value in a script variable.