Manuel des Scripts Automation Engine > Organisation fonctionnelle > Elaboration et traitement des Scripts > :WHILE... :ENDWHILE

:WHILE... :ENDWHILE

Instruction de script : définit une boucle permettant de répéter l'exécution de parties du script.

Syntaxe

:WHILECondition
[Instructions]

:ENDWHILE

Syntaxe

Description/format

Condition

Une expression formulée au moyen d'un littéral de script, d'une variable de script, d'une fonction de script, d'expressions numériques ou d'opérateurs et qui fournit un résultat "Vrai" ou "Faux".

Instructions

Une ou plusieurs instructions qui sont exécutées lorsque la condition est "Vraie".
Format : instruction de script.

Commentaires

L'instruction :WHILE est une structure de contrôle qui peut être utilisée pour exécuter des parties du script plusieurs fois en fonction du résultat d'une condition. Une condition est une expression logique.

Les instructions sont exécutées si la condition est remplie (vraie). La condition est ensuite à nouveau évaluée et les instructions ré-exécutées si le résultat est vrai. Cela se répète jusqu'à ce que la condition ne soit plus remplie (fausse). Dans ce cas, le script par la ligne suivant l'instruction :ENDWHILE.

Notez qu'une condition d'interruption est requise pour ne pas créer une boucle sans fin.

Vous pouvez également emboîter des blocs WHILE, sans limitation de profondeur.

Une condition a la structure suivante :

Valeur Opérateur de comparaison Valeur de comparaison [OR Valeur de comparaison...]

For example:
:
WHILE &ABT# = "EDP" OR "AE"

Une condition peut contenir au maximum 13 OU.

Une condition contient l'un des opérateurs de comparaison suivants :

Opérateur

Code

Règle

=

EQ

L'expression est vraie lorsqu'au moins une valeur de comparaison est égale à la valeur.

<>

NE

L'expression est vraie lorsqu'aucune valeur de comparaison n'est égale à la valeur.

<

LT

L'expression est vraie lorsqu'une valeur de comparaison remplit la condition définie.

>

GT

<=

LE

>=

GE

Les variables de script n'ont pas de type de données explicite et peuvent donc contenir aussi bien des nombres que des chaînes de caractères, il faut donc respecter les points suivants :

La comparaison est numérique si le contenu des valeurs de comparaison est numérique. Le fait qu'une variable soit indiquée avec ou sans guillemets n'a aucune importance.

La condition suivante retourne "Vrai" :

:WHILE "0" = "0"

Une comparaison alphanumérique est réalisée si des valeurs non-numériques sont utilisées.

La condition suivante retourne "Faux" :

:WHILE "0" = "abc"

La longueur des chaînes de caractères n'est pas vérifiée lors de la comparaison. La condition suivante retourne "Vrai", car "S" précède "U" dans l'alphabet.

:WHILE "Smith" < "Wilson"

Exemples

Dans l'exemple suivant, le système demande un nom et un département à l'utilisateur. Cette requête est répétée jusqu'à ce que l'utilisateur indique un nom autre que le sien.

:SET &REPEAT# = "Y"

 

:WHILE &REPEAT# = "Y"

:SET &DEP# = SYS_USER_DEP()

:SET &NAME# = SYS_USER_NAME()

 

:BEGINREAD 

:   READ &DEP#, "08" ,"Please enter a department", &DEP#, "M" 

:   READ &NAME#, "08", "Please enter a name", &NAME#, "M" 

:ENDREAD

 

:IF SYS_LAST_ERR_NR() <> 0

:   STOP

:ELSE

:   IF SYS_USER_NAME() = &NAME#

:      SET &REPEAT# = "Y"

:      SET_LAST_ERR 10006, "Please enter a name that is not your own name"

:   ELSE

:      SET &REPEAT# = "N"

:   ENDIF

:ENDIF

 

:ENDWHILE

 

Rubriques connexes :

Elément de script Description

:IF... :ELSE... :ENDIF

Evaluer une expression et exécuter des instructions selon le résultat.

Eléments de script - Structure et traitement des scripts

Généralités sur les scripts
Eléments de script - Liste alphabétique

Eléments de script - Répartition fonctionnelle