Manuel des Scripts Automation Engine > Organisation fonctionnelle > Elaboration et traitement des Scripts > :SWITCH... :CASE... :ENDSWITCH

:SWITCH ... :CASE ... :OTHER ... :ENDSWITCH

Instruction de script : vérifie si la valeur d'une Variable correspond à certaines valeurs et exécute différentes actions en fonction de cela.

Syntaxe

:SWITCH Variable
:CASE Expression1
[Actions]
[:CASE Expression2
[Actions]
...
]

[:OTHER
[Actions]
...
]
:ENDSWITCH

Elément de syntaxe

Description/format

Variable

Nom de la Variable dont la valeur doit être vérifiée.
Format : Littéral de script, Variable de script

Expression1, expression2 ...

Conditions ou valeurs qui constituent les conditions.
Format0: Littéral de script, Variable de script, expression complexe ou Fonction de script

Instructions Une ou plusieurs actions devant être exécutées si la variable correspond à la valeur en question.
Format : Instruction de script

Remarques

L'instruction SWITCH constitue une ou plusieurs conditions dans la mesure où elle exécute différentes actions en fonction de la valeur d'une Variable. Le bloc :SWITCH se compose d'une ou de plusieurs instructions :CASE et doit être terminé par :ENDSWITCH.

Chaque instruction :CASE permet de définir une valeur ou une expression devant être évaluée. Suivent alors les actions qui doivent être exécutées selon le cas concerné. Ces actions sont terminées soit via une nouvelle ligne :CASE, soit via :ENDSWITCH.

Une branche :OTHER peut en plus être définie. Ses actions seront ensuite exécutées si aucune instruction :CASE n'est applicable. L'instruction :OTHER ne peut être utilisée qu'après la dernière instruction :CASE.

Plusieurs instructions :CASE les unes après les autres, sans instructions séparées, sont également possibles. Ces dernières sont connectées via un lien OU. Toutefois, ceci n'est utile que pour les expressions complexes !

Les instructions :IF peuvent également évaluer des expressions, cependant leur bloc d'instructions est limité à une condition et à une condition Sinon.

Pour les Valeurs, vous pouvez également utiliser des expressions complexes telles que les termes arithmétiques. Exemple :

:SWITCH &NUM#
:CASE 3*(5-2)
: PRINT "&NUM# = 9"
:ENDSWITCH

Le concept between valeur1 and valeur2, ainsi que les opérateurs <, >, <>, <=, >=, = peuvent également être utilisés avec les lignes :CASE. Dans ce cas, veuillez saisir la chaîne de caractères "Y" à la place du nom de Variable. Exemple :

:SET &STATUS# = GET_STATISTIC_DETAIL(&RUNID#,STATUS)

:SWITCH "Y"

:CASE &STATUS# between 1300 and 1599
:CASE &STATUS# between 1700 and 1799
: PRINT "Tâche &RUNID# active"
:CASE &STATUS# between 1600 and 1699
: PRINT "Tâche &RUNID# est en état d'attente"
:CASE &STATUS# between 1800 and 1899
: PRINT "Tâche &RUNID# annulée"
:CASE &STATUS# >= 1900
: PRINT "Tâche &RUNID# terminée sans erreur"
:ENDSWITCH

Exemple

L'exemple suivant détermine le jour de la Semaine actuel sous forme de numéro et le vérifie à l'aide de l'instruction SWITCH. Un Job défini est démarré le lundi et le vendredi.

:SET &DATE# = SYS_DATE_PHYSICAL("TT.MM.JJJJ")
:SET &WEEKDAY#WEEKDAY_NR("TT.MM.JJJJ:&DATE#")

:SWITCH &WEEKDAY#

:CASE 1
SET &ACT#ACTIVATE_UC_OBJECT(JOBS.MONDAY, WAIT)

:CASE 5
SET &ACT#ACTIVATE_UC_OBJECT(JOBS.FRIDAY, WAIT)

:OTHER
: PRINT "Pas de traitement"
:ENDSWITCH

Rubriques connexes :

Elément de script Description

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

Analyser et exécuter une expression suivant les instructions du résultat.