Manuel des Scripts Automation Engine > Introduction > Principes de base > Variable de Script

Variable de Script

Dans les Scripts AE, vous pouvez enregistrer des valeurs dans des Variables de Script. Celles-ci peuvent aussi bien comporter des chiffres, des suites de caractères et des données de date et d'heure.

La déclaration d'une Variable de Script grâce à un type de données particulier s'effectue avec le Script :DEFINE. Le type de données détermine quelles valeurs doit contenir la Variable. L'attribution et la modification de valeurs au sein du Script s'effectuent avec l'instruction :SET.

:DEFINE &FICHIER#, chaîne
:
SET &FICHIER# = "temp.txt"

Il est également possible de créer directement les Variables de Script avec :SET (sans être précédé de :DEFINE). Dans ce cas, la variable n'est pas limitée à un type de données spécifique et peut être modifiée ultérieurement en une valeur quelconque. Exemple :

:SET &VAR# = -1
:
SET &VAR# = "chaîne"

La validité d'une Variable de Script prend fin après le traitement du Script.

 

Type de données :

Il existe quatre types différents de données avec différents domaines de valeurs pour l'utilisation de Variables de Script. La définition du type de données s'effectue avec l'instruction de Script :DEFINE lors de la déclaration de la Variable.

Type de données Description Domaine de valeur
unsigned Nombres entiers positifs sans signes 0 à +9 999 999 999 999 999
signed Nombres entiers avec signes -9 999 999 999 999 999 à +9 999 999 999 999 999
string Chaîne de caractères de 1 à 1024 caractères
flottant Nombres variables avec signes -9999999999999999.9999999999999999 à +9999999999999999.9999999999999999

Premièrement, exécutez la déclaration de Variables puis attribuez la valeur adéquate.

:DEFINE &CHAINE#, chaîne
:DEFINE &SIGNED#, signed
:
DEFINE &UNSIGNED#, unsigned

:DEFINE &FLOAT#, flottant

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

Le type de données "flottant" comprend également des nombres entiers positifs et négatifs. Il est également possible, d'utiliser des nombres entiers positifs pour le type de données "signed".

Les Variables déjà utilisées ne peuvent pas être déclarées à nouveau. Le type de données d'une Variable n'est pas modifiable.

Attention : lors d'opérations de calcul avec des nombres variables, le résultat peut être imprécis !

 

Syntaxe

Le nom des Variables de Script est constitué de 31 caractères alphanumériques au maximum, caractères spéciaux compris ("$", "_", "@", "§" et "#"). Les signes diacritiques ne sont pas autorisés. Le premier caractère du nom ne peut pas être un chiffre. Dans le Script, les Variables sont toujours indiquées avec le signe "&" précédent le nom !

Attention : le nom de la Variable de Script doit être différent des Variables prédéfinies. Il est généralement recommandé de ne pas utiliser '$' dans les noms de Variable.

La casse des lettres utilisées dans les noms des Variables de Script n'a pas d'importance. Les Variables de Script ne sont pas encadrées par des guillemets ouvrants et fermants.

Le nom d'une Variable de Script ne doit pas correspondre au début du nom d'une autre Variable.

Les dénominations similaires ne sont possibles que si un caractère spécial, par exemple, est ajouté à la fin du nom. Dans l'exemple suivant, la désignation "Fin_Date" est affichée dans le protocole d'activation.

:SET &ACTIVITE# = "Fin"
:
SET &ACTIVITE_DATE#= SYS_DATE()

:
PRINT "&ACTIVITE#date"

Les Variables "&ACTIVITE_DATE" et "&ACTIVITE" ne sont pas autorisées,, car cette dernière désignation n'est pas unique. Le nom des Variables et les caractères à afficher peuvent directement être disposés les uns à la suite des autres. Ainsi, dans cet exemple, il est possible d'indiquer "Date de fin" et "040101".

:SET &ACTIVITE = "Fin"
:
SET &ACTIVITEdate =SYS_DATE()

:
PRINT "&ACTIVITEdate"

 

Tableaux

Il est possible de créer des Tableaux en relation de Variables de Script. Ainsi, plusieurs valeurs différentes peuvent être enregistrées dans une Variable. L'accès aux différentes valeurs s'effectue par l'index. Celui-ci est indiqué sous forme d'un numéro entre parenthèses [] après le nom de la Variable. Les Tableaux ne peuvent être créés que lors de la déclaration de Variable à l'aide de :DEFINE. Le troisième paramètre renseigne sur le nombre de valeurs (domaine de l'index).

Le nom des Tableaux doit comporter un maximum de 24 caractères alphanumériques, contrairement aux Variables de Script normales.

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

La taille maximale des Tableaux est 99999. L'index est toujours indiqué sous la forme d'une nombre positif sans guillemet. L'accès au premier élément s'effectue par l'index 1.

Attention : de la mémoire doit être réservée pour tous les éléments lors de la création de Tableaux. C'est pourquoi les Tableaux ne doivent pas être créés avec plus d'éléments que nécessaire afin de réduire les problèmes de performance.

Les champs des tableaux qui ne sont pas encore installés contiennent la valeur standard "" (Type de données : chaîne) ou 0 (pour les types de données numériques).

Pour enregistrer directement plusieurs valeurs dans un tableau, il faut utiliser le Script :FILL. Aucun index n'est alors indiqué. Cela est par exemple utile pour lire plusieurs colonnes des objets Variables :

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

 

Attributions de valeurs

Les attributions de valeurs de Variables de Script sont exécutées avec le Script :SET. La valeur affectée peut être indiquée avec ou sans guillemets (littéral de Script) (peut importe le type de données), ou peut également être le code retour d'une fonction de Script.

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

Les Variables de Script peuvent être créées soit par un type de données spécifique (:DEFINE) ou bien directement par l'attribution de valeur.
Les Variables créées avec :SET ne possèdent pas de type de données spécifiques. Cela peut être alors toute attribution de valeur (dans la mesure où les valeurs supérieures ne sont pas dépassées).
Pour les Variable de Script qui comportent un type de données, les particularités suivantes doivent être respectées :

Si la valeur attribuée ne correspond pas au type de données de la Variable de Script, le système tente de la transformer et de l'adapter . Si cela n'est pas possible, une erreur de durée se produit. Il s'agit alors concrètement des 2 cas suivants :

Erreur, Cas 1 : Un nombre négatif est affecté à une Variable de Script avec le type de données "unsigned".
Exemple :

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

Erreur, Cas 2 : Une Chaîne de caractères est affectée à une Variable de Script avec un type de données chiffres qui ne contient aucun chiffre.
Exemple :

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

Si la chaîne de caractères correspond à un chiffre, l'attribution fonctionne de la sorte.
Exemple :

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

Si un nombre en virgule flottante est affecté à une Variable, bien que le type de données ne prenne pas cela en charge (concerne : "signed et "unsigned"), les chiffres après une virgule sont supprimés. Il n'y a pas d'arrondi !
Exemple : Dans ce cas, le résultat de l'attribution est -10.

:DEFINE &NUMERO#, signed
:SET &NUMERO# = -10.654
:P &NUMERO#

Rapport :

-0000000000000010

 

Les chiffres possèdent de manière standard le format par défaut à 16 caractères. Les nombres variables (type de données : nombre réel) possèdent également 16 caractères après la virgule. Les emplacements qui ne sont pas utilisés, sont remplis avec des zéros. Pour supprimer des zéros en tête ou à la fin, utilisez la fonction Script FORMAT.