Manchmal muss ein Skript im Programmablauf Entscheidungen treffen. Das bedeutet, abhängig von Bedingungen zwischen alternativen Programmabläufen wählen. Dazu steht der „If“-Block zur Verfügung. Als eingabe erhält dieser eine das Ergebnis einer Bedingung, auch logischer oder boolscher Ausdruck genannt. Das kann zum Beispiel Gleichheit zweier Werte sein:
Ein solcher Ausdruck ist immer wahr (true) oder falsch (false). In unserem Beispiel wird 12 und 7 verglichen. Das Ergebnis ist hier natürlich falsch (false).
Verbinden wir solch einen Ausdruck nun mit dem „If“-Block und füllen den Körper des „If“-Blocks mit einem „run“-Block, der ein Programm ausführt:
Da der logische Ausdruck falsch ist, wird der „If“-Block den „run“-Block nicht ausführen.
Lassen Sie uns nun ein etwas praktischeres Beispiel betrachten. Nehmen wir an, wir programmieren ein Gatewayskript, dass drei verschiedene Dokumententypen verarbeiten können soll. Dabei muss zu jedem Dokumententyp ein anderes Programm gestartet werden, dass Weiterverarbeitung beliebiger Art vornimmt. Im Vorfeld haben wir den Typ des Dokuments bereits ermittelt und in einer Variablen „Dokumenttyp“ abgelegt. Auch das Kommando zum Aufruf der Programme haben wir in den Variablen „Programm1“, „Programm2“ und „Programm3“ abgelegt.
Der „If“-Block um je nach Dokumenttyp das richtige Programm aufzurufen kann dann so aussehen:
Ist DokumentenTyp gleich zwei, so wird der „If“-Block zunächst die Bedingung am „if“-Teil auswerten. Das heisst, er wird prüfen, ob DokumentenTyp gleich eins ist, was nicht der Fall ist. Also wird der nachfolgende „do“-Teil übersprungen und die Bedingung am „else if“ ausgewertet. Da dieser Ausdruck wahr (true) ist, wird der nachfolgende „do“-Teil ausgeführt. Danach ist der „If“-Block fertig abgearbeitet. Es wird immer nur ein einziger „do“-Teil ausgeführt, nämnlich der erste, dessen „if“- bzw. „else if“-Teil wahr (true) ist. Ist keiner davon wahr (true), wird der „else“-Teil des „If“-Blocks ausgeführt, wenn vorhanden.