Automation Engine Script-Leitfaden > Funktionelle Gliederung > Script-Aufbau und -Prozessierung > :IF... :ELSE... :ENDIF

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

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

Syntax

:IF Condition
[Anweisungen]

[:ELSE]

[Sonst-Anweisungen]

:ENDIF

Syntax

Beschreibung/Format

Bedingung

Ein mittels Script-Literalen, Script-Variablen, Script-Funktionen oder numerischen Ausdrücken sowie Operatoren formulierter Ausdruck, der als Ergebnis "Wahr" oder "Falsch" liefert.

Anweisungen

Eine oder mehrere Anweisungen, die ausgeführt werden, wenn die Bedingung den Wert "Wahr" ergibt.
Format: Script-Anweisung

Sonst-Anweisungen

Eine oder mehrere Anweisungen, die ausgeführt werden, wenn die Bedingung den Wert "Falsch" ergibt.
Format: Script-Anweisung

Kommentare

Die IF-Anweisung ist eine Kontrollstruktur, mit der Sie die Scriptabarbeitung von dem Ergebnis einer Bedingung abhängig machen können. Bei dieserhandelt es sich um einen logischen Ausdruck.

Ist die Bedingung erfüllt (Wahr), so werden die Anweisungen ausgeführt.

Ist die Bedingung nicht erfüllt (Falsch), so werden die Sonst-Anweisungen von :ELSE ausgeführt. Besitzt der IF-Block keinen :ELSE-Zweig, wird das Script mit der nächsten Zeile nach dem :ENDIF fortgesetzt.

Sie können IF-Blöcke auch schachteln. Dabei gibt es keine Beschränkung für die Verschachtelungstiefe.

Ein IF-Block muss nicht unbedingt einen ELSE-Zweig beinhalten.

Wenn Zeichenketten länger als 1024 Zeichen sind, werden die Zeichen nach dem 1024. Zeichen von einer :IF-Anweisung nicht berücksichtigt. Der vergleichende Algorithmus prüft nur die ersten 1024 Zeichen einer Zeichenkette.

Verwendung des Keywords ODER

Um eine Bedingung mit mehreren Werten zu verknüpfen bzw. mehrere einzelne Bedingungen zu verknüpfen, dient das Schlüsselwort ODER.

Eine Bedingung weist folgende Struktur auf:

WertVergleichsoperatorVergleichswert[OR Vergleichswert...]

For example:
:
IF &DEP# = "EDP" OR "AE"

Bis zu 13 ODER dürfen in einer Bedingung vorhanden sein.

Vergleichsoperatoren

Die Formulierung einer Bedingung besitzt eine der folgenden Vergleichsoperatoren:

Operator

Kurzform

Regel

=

EQ

Der Ausdruck ist "Wahr", wenn mindestens ein Vergleichswert dem Wert entspricht.

<>

NE

Der Ausdruck ist "Wahr", wenn keiner der Vergleichswerte gleich dem Wert ist.

<

LT

Der Ausdruck ist "Wahr", wenn ein Vergleichswert den angegebenen Begriff erfüllt.

>

GT

<=

LE

>=

GE

Weisen beide Vergleichswerte der Bedingung einen numerischen Wert auf (Datentyp signed, unsigned oder float), so wird numerisch vergleichen. Ansonsten wird ein String-Vergleich gemacht. Bei einem numerischen Vergleich werden führende Nullen ignoriert, bei einem String-Vergleich nicht.

Die folgende Bedingung liefert "Wahr":

:IF "0" = "0"

Handelt es sich um keine numerischen Werte, so erfolgt ein alphanumerischer Vergleich.

Die folgende Bedingung liefert "Falsch":

:IF "0" = "abc"

Beim Vergleich von Zeichenfolgen wird nicht deren Länge geprüft. Die folgende Bedingung liefert "Falsch", da "A" im Alphabet vor "M" steht.

:IF "Smith" < "AE"

Sie müssen die Script-Variablen, die in der Bedingung vorkommen, schon vorher definieren.

Bei Bedingungen, die mehrmals das Schlüsselwort OR enthalten, kann sich abhängig vom Operator ein unterschiedliches Verhalten ergeben.

Beispiel:
In diesem Fall muss einer der Werte zutreffen, damit die Bedingung erfüllt wird.

:IF &WD# = "MON" OR "TUW" OR "WED"

Folgende Bedingung allerdings wird nur dann erfüllt, wenn die Variable keinem der drei Werte entspricht.

:IF &WD# <> "THU" OR "FRI" OR "SAT"

Nachgestellte Leerzeichen werden nicht berücksichtigt.

Nachgestellte Leerzeichen werden bei String-Vergleichen nicht berücksichtigt. Daher sind leere Strings immer gleich, unabhängig von deren Länge.

Beispiel:

:set &a= 'a   '
:set &b= 'a'

:if &a = &b
:print 'true'
:endif

In diesem Fall würde der Vergleich von &a mit &b den Wert wahr zurückgeben, da nachgestellte Leerzeichen vor dem Vergleich entfernt werden.

Beispiele

Diese Beispiele zeigen verschiedene Möglichkeiten zur Formulierung der Bedingung. Die Beispiele 1 bis 3 setzen eine Script-Variable mit einem oder mehreren Vergleichswerten in Beziehung. Beispiel den Rückgabewert einer Script-Funktion aus.

:IF &USER# = "TSOS"  
!...
 
:
ENDIF

:IF &DAT1# = &DAT2# OR " "  
!...
 
:
ENDIF

:IF &USER# <> "TSOS" OR "SERVICE" OR SYS_USER_NAME() 
!...
 
:
ENDIF

:IF GET_ATT(OO) = "J" 
!...
 
:
ENDIF

 

Siehe auch:

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

:WHILE... :ENDWHILE

Definition einer Schleife zur mehrfachen Ausführung von Script-Teilen.

Script-Sprachmittel - Script-Aufbau und Prozessierung
Allgemeines zum Script
Script-Sprachmittel - Alphabetische Auflistung

Script-Sprachmittel -Funktionelle Gliederung

 


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

Copyright © 2016 Automic Software GmbH