Automation Engine Script-Leitfaden > Funktionelle Gliederung > Script-Aufbau und -Prozessierung > :SWITCH ... :CASE ... :ENDSWITCH

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

Script-Anweisung: Überprüft, ob der Wert einer Variable bestimmten Werten entspricht, und führt abhängig davon unterschiedliche Anweisungen durch.

Syntax

:SWITCH Variable
:CASE Expression1
[Anweisungen]
[:CASE Expression2
[Anweisungen]
...
]
[:OTHER
[Anweisungen]
...
]

:ENDSWITCH

Syntax

Beschreibung / Format

Variable

Name der Variable, deren Wert überprüft werden soll.
Format: Script-Litteral, Script-Variable

Ausdruck1, Ausdruck2 ...

Bedingungen oder Werte, welche die Bedingungen bilden.
Format: Script-Literal, Script-Variable, komplexer Ausdruck oder Script-Funktion

Anweisungen Ein oder mehrere Anweisungen, die durchgeführt werden sollen, wenn die Variable dem jeweiligen Wert entspricht.
Format: Script-Anweisung

Kommentare

Die SWITCH-Anweisung bildet ein oder mehrere Bedingungen, indem sie abhängig vom Wert einer Variable unterschiedliche Anweisungen ausführt. Der :SWITCH-Block besteht aus ein oder mehreren :CASE-Anweisungen und ist mit :ENDSWITCH abzuschließen.

Mit jeder :CASE-Anweisung wird ein Wert oder ein Ausdruck festgelegt, der ausgewertet werden soll. Diesem folgen die Anweisungen, die im zutreffenden Fall auszuführen sind. Abgeschlossen werden diese Anweisungen entweder mit einer neuen :CASE-Zeile oder mit :ENDSWITCH.

Zusätzlich kann auch ein :OTHER Zweig definiert werden. Dessen Anweisungen werden dann ausgeführt, wenn keine einzige :CASE-Anweisung zutrifft. Die :OTHER Anweisung darf erst nach der letzten :CASE-Anweisung verwendet werden.

Mehrere :CASE Anweisungen hintereinander, ohne Anweisungen getrennt, sind ebenfalls möglich. Diese werden durch eine ODER-Verknüpfung miteinander verbunden. Dies macht allerdings nur bei komplexen Ausdrücken Sinn!

Mit :IF-Anweisungen können ebenfalls Ausdrücke ausgewertet werden, jedoch ist deren Anweisungs-Block auf eine Bedingung und eine Sonst-Bedingung beschränkt.

Für die Werte können Sie auch komplexe Ausdrücke, wie arithmetische Terme, verwenden. Beispiel:

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

Auch das Konstrukt between Wert1 and Wert2, sowie die Operatoren <, >, <>, <=, >=, = können bei den :CASE-Zeilen verwendet werden. In diesem Fall ist anstelle des Variablennamens die Zeichenkette "Y" anzugeben. Beispiel:

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

:SWITCH "Y"

:CASE &STATUS# bezw. 1300 und 1599
:CASE &STATUS# bezw. 1700 und 1799
: PRINT "The task &RUNID# is active."
:CASE &STATUS# bezw. 1600 und 1699
: PRINT "The task &RUNID# is in a waiting condition."
:CASE &STATUS# bezw. 1800 und 1899
: PRINT "The task &RUNID# has aborted."
:CASE &STATUS# >= 1900
: PRINT "The task &RUNID# has successfully ended."
:ENDSWITCH

Beispiele

Folgendes Beispiel ermittelt den aktuellen Wochentag als Zahl und überprüft diesen mittels SWITCH-Anweisung. Montags und Freitags wird ein bestimmter Job gestartet.

: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

 

Siehe auch:

Script-Sprachmittel Beschreibung

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

Werten einen Ausdruck aus und führen in Abhängigkeit vom Ergebnis Anweisungen aus.

 

 


Automic Documentation - Tutorials - Automic Blog - Resources - Training & Services - Automic YouTube Channel - Download Center - Support

Copyright © 2016 Automic Software GmbH