:SWITCH ... :CASE ... :OTHER ... :ENDSWITCH
L'instruction de script :SWITCH vous permet d'exécuter différentes lignes de script à partir d'une valeur de variable. La variable représente une condition et le bloc :SWITCH contient une ou plusieurs instructions :CASE. L'instruction "case" détermine les instructions à exécuter lorsque la variable a une certaine valeur. Définissez les cas pour chaque valeur de variable pour laquelle différentes instructions seront traitées.
Conseil : Utilisez des instructions :IF... :ELSE... :ENDIF pour évaluer des expressions lorsque vous avez une seule condition.
Syntaxe
:SWITCH Variable
:CASE Value1
[Statements]
[:CASE Value2
[Statements]
...
]
[:OTHER
[Statements]
...
]
:ENDSWITCH
Paramètres
- :SWITCH
Définit un bloc d'instructions exécutées dans différents "cas" - Variable
Nom de la variable à vérifier pour déterminer le cas applicable
Format : littéral de script ou variable de script - Statements
(Optionnel) Une ou plusieurs instructions à traiter lorsque le cas s'applique
Format : instruction de script - :CASE
Lance le bloc d'instructions à exécuter lorsque la variable a la valeur définie pour le cas.
Remarque : Si vous utilisez des expressions complexes et souhaitez relier plusieurs instructions :CASE avec un opérateur OU, écrivez les instructions :CASE dans une séquence, sans instructions entre. - Value1, Value2
Conditions ou valeurs de la variable qui déterminent le cas applicable
Format : littéral de script, variable de script , expression complexe ou fonction de script - :OTHER
(Optionnel) Lance un bloc d'instructions à exécuter lorsqu'aucun des cas définis ne s'applique
Remarque : Écrit l'instruction :OTHER après les instructions :CASE. - :ENDSWITCH
Termine le bloc :SWITCH
Remarques :
-
La valeur d'un cas peut être une expression arithmétique.
Exemple
:SWITCH &NUM#
:CASE 3*(5-2)
: PRINT "&NUM# = 9"
:ENDSWITCH -
Pour utiliser les opérateurs (<, >, <>, <=, >=, =) et définir entre eux des expressions complexes et plages de valeurs pour un cas, spécifiez la chaîne "Y" au lieu du nom de la variable.
Exemple
:SET &STATUS# = GET_STATISTIC_DETAIL(&RUNID#,STATUS)
:SWITCH "Y"
:CASE &STATUS# between 1300 and 1599
:CASE &STATUS# between 1700 and 1799
: PRINT "The task &RUNID# is active."
:CASE &STATUS# between 1600 and 1699
: PRINT "The task &RUNID# is in a waiting condition."
:CASE &STATUS# between 1800 and 1899
: PRINT "The task &RUNID# has aborted."
:CASE &STATUS# >= 1900
: PRINT "The task &RUNID# has successfully ended."
:ENDSWITCH
Important ! Vous pouvez utiliser la variable &$PLATFORM# prédéfinie avec cette instruction de script. Si vous utilisez cette variable prédéfinie dans un objet Job générique, vous devez également définir la variable &AGENT# dans votre script. L'objet Job générique n'ayant pas d'hôte défini lorsque vous le créez, le script renvoie une erreur si vous ne spécifiez pas l'hôte. Pour plus d'informations, voir Variables prédéfinies pour les valeurs système et objet.
Exemples
Dans l'exemple suivant, le jour actuel de la semaine est extrait sous forme de chiffre. Le script utilise le chiffre du jour de la semaine pour lancer un job spécifique les lundis et vendredis uniquement, sous condition.
:SET &DATE# = SYS_DATE_PHYSICAL("DD.MM.YYYY")
:SET &WEEKDAY# = WEEKDAY_NR("DD.MM.YYYY:&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 "No Processing."
:ENDSWITCH
Le script suivant, dans un objet Job générique, définit des conditions selon la plateforme d'exécution du job :
:SWITCH&$PLATFORM#
:CASE"WINDOWS"
! insert these lines in your script to determine if an error occurred
! @set retcode=%errorlevel%
! @if NOT %ERRORLEVEL% == 0 goto :retcode
!
:CASE"UNIX"
:OTHER
:ENDSWITCH
Voir aussi :