Entscheidungsanweisungen

Sie können festlegen, dass Ihr Skript die auszuführende Aufgabe auf Grundlage von Bedingungen auswählt, die Sie festlegen. Mithilfe eine Entscheidungsanweisung kann Ihr Skript verschiedene Möglichkeiten oder Ergebnisse berücksichtigen. So können Sie den linearen Ablauf der Ereignisse in Ihrem Skript steuern.

Für diese Anweisungen werden die folgenden Schlüsselwörter verwendet:

  • IF: Hiermit wird die Aktion ausgewählt, die basierend auf dem Ergebnis ausgeführt werden soll, das bei der Auswertung eines booleschenGeschlossen Ein Datentyp, der zwei mögliche Werte hat: wahr und falsch. Ausdrucks zurückgegeben wird.
  • SELECT: Hiermit wird die erste von mehreren Anweisungen ausgeführt, die als "true" ausgewertet werden.
  • SWITCH: Hiermit wird ein Ausdruck ausgewertet und das Ergebnis wird mit definierten Fällen verglichen. Dann wird die im übereinstimmenden Fall definierte Aktion ausgeführt.

Entscheidungsanweisungen erfordern immer Blöcke mit Bedingungscode. Blöcke werden in geschweifte Klammern eingeschlossen ( { } ). In den Codeblöcken für SELECT- und SWITCH-Anweisungen werden zwei zusätzliche Schlüsselwörter verwendet:

  • CASE: Hiermit wird eine von mehreren möglichen Anweisungen definiert, die ausgeführt werden können.
  • DEFAULT: Hiermit wird die Standardeinstellung für CASE definiert. Diese Anweisung wird ausgeführt, wenn keine der anderen CASE-Anweisungen ausgeführt werden kann.

Die Beschreibung der einzelnen Anweisungsarten umfasst eine Zusammenfassung der Syntax. Bei diesen Zusammenfassungen werden bestimmte Konventionen verwendet, um die einzelnen Teile der Anweisung zu kennzeichnen und um anzugeben, ob die jeweiligen Teile erforderlich oder optional sind.

IF- und IF... ELSE-Anweisungen

Beschreibung: Wertet einen Ausdruck aus und folgt einer Verzweigung, die sich nach dem Ergebnis der Auswertung richtet.

Syntax: IF <expression> <{ ... }> [ ELSE { ... } ]

Studio-Aktion: If

Details: IF-Anweisungen werten einen <expression> aus. Je nachdem, wie der Ausdruck ausgewertet wird, führt das Skript den Code im ersten Satz geschweifter Klammern { ... } aus. Der Ausdruck muss als "true" ausgewertet werden. Andernfalls führt das Skript den Code nicht aus.

Sie können die ELSE-Anweisung einschließen, um anzugeben, wie das Skript vorgeht, wenn der Ausdruck als "false" ausgewertet wird. ELSE ist optional. Verwenden Sie diese Anweisung, wenn zwei Aktionen möglich sind und das Skript zwischen ihnen wählen soll. Verwenden Sie IF alleine, wenn nur eine Aktion möglich ist und das Skript diese Aktion nur dann ausführen soll, wenn die angegebene Bedingung (<expression>) erfüllt ist.

Verwenden Sie einen booleschenGeschlossen Ein Datentyp, der zwei mögliche Werte hat: wahr und falsch. Operator in dem Ausdruck <expression>, der zur IF-Anweisung gehört. Sie müssen einen Ausdruck verwenden, das als entweder "true" oder "false" ausgewertet wird. Beispiel: x=5 ist ein gültiger Ausdruck, da der Wert der Variablen x entweder gleich oder ungleich 5 ist.

Mehr als eine ELSE-Anweisung in einer IF-Anweisung wird in Studio nicht unterstützt. Sie können IF-Anweisungen aber einbetten:


IF A > B {
// Do something
}
ELSE {
	IF A = B {
	// Do something else
	}
	ELSE {
	// Do this
	}
}

Beispiel

IF TEST = 1
   {
      ASSIGN contactID = "123456780"
      ASSIGN customerName = "XYZ International"
      ASSIGN CBWindowStart = #"{date} 8:00 AM"
      ASSIGN CBWindowEnd = #"{date} 4:30 PM"
   }

//String Comparison

IF customerName = "ABC Corporation"
   {
      ASSIGN contractLevel = "Gold"
   }
   ELSE
      {
         ASSIGN contractLevel = "Silver"
      }

//Numeric Comparision

IF contactID % 10 = 0
   {
      ASSIGN logCall = 1
   }
   ELSE
      {
         ASSIGN logCall = 0
      }

//DateTime Comparison

ASSIGN myTime = #"{time}"

IF myTime >= CBWindowStart && myTime  <= CBWindowEnd
   {
      ASSIGN offerCallback = "True"
   }
   ELSE
      {
         ASSIGN offerCallback = "False"
      }

SELECT Anweisungen

Beschreibung: Führt basierend auf dem ersten Ausdruck, der als "true" ausgewertet wird, einen Satz mit Befehlen aus.

Syntax: SELECT <{ CASE <expression> [{ ... }] [CASE <expression> <{ ... }>] [CASE ...] [DEFAULT <{ ... }>] }>

Details: In einer SELECT-Anweisung wertet das Skript von oben nach unten jeden CASE <expression> aus, bis der erste Ausdruck gefunden wird, der als "true" ausgewertet wird. Für den ersten CASE <expression>, der als "true" ausgewertet wird, führt SELECT den Code aus, der in den geschweiften Klammern [{ ... }] für diesen CASE <expression> steht.

Wenn kein CASE <expression> als "true" ausgewertet wird, führt das Skript den optionalen Code DEFAULT { ... } aus.

Mindestens eine CASE-Anweisung wird erwartet. Sofern vorhanden, muss die DEFAULT { ... }-Anweisung die letzte Klausel in der Liste der CASE-Anweisungen sein.

Beispiel:

SELECT
{
	CASE name="Odin" { agentid = 123 }
	CASE name="Frigg" { agentid = 345 }
	CASE name.length = 0
	 {
	   ASSIGN agentid = -1
	   ASSIGN error = "Invalid name"
	 }
	DEFAULT { ASSIGN agentid = 999 }
} 

SWITCH Anweisungen

Beschreibung: Wertet die angegebene Variable aus und führt die Aktion aus, die von der entsprechenden CASE-Anweisung definiert wird.

Syntax: SWITCH <var> <{CASE <literal> [{ ... }] [CASE <literal> [{ ... }]] [CASE ...] [DEFAULT [{ ... }]] }>

Details:  Eine SWITCH-Anweisung vergleicht den Wert einer Variablen <var> mit dem Literalwert einer jeden CASE <literal>-Anweisung. Wenn eine übereinstimmende CASE -Anweisung gefunden wird, wird SWITCH ausgeführt und folgt der Verzweigung zu dem Code in geschweiften Klammern { ... }, der zur entsprechenden CASE <literal>-Anweisung gehört.

Wenn keine CASE <literal>-Anweisung mit <var> übereinstimmt, wird der optionale DEFAULT { ...}-Code ausgeführt. DEFAULT muss die letzte Klausel in den Anweisungen sein, die in der SWITCH-Anweisung eingebettet sind.

SWITCH kann nur eine Variable auswerten. Ein Ausdruck kann nicht ausgewertet werden. Wenn Sie einen Ausdruck verwenden, funktioniert das Skript nicht.

Mindestens eine CASE-Anweisung wird erwartet. Alle CASE-Anweisungen müssen denselben Typ von <Literalwert> haben. Die erste CASE-Anweisung bestimmt den Typ für die verbleibenden CASE-Anweisungen. Wenn eine CASE-Anweisung einen anderen Typ als die erste CASE-Anweisung hat, tritt ein Kompilierungsfehler auf. Die folgenden Beispiele sind alle gültige Literalwerte:

  • CASE "john"
  • CASE 512
  • CASE #"5/15/2050"
  • CASE #"6/1/2050 7:00am"
  • CASE #"7am"

Beispiel:

IF TEST = 1
{
  ASSIGN MyDate = "07/03/2023" //This date falls on a Monday
}
ASSIGN MyDow = MyDate.asdatedow
SWITCH MyDow
{
  CASE 0   { ASSIGN NewToday = "Sunday"  }
  CASE 1   { ASSIGN NewToday = "Monday"  }
  CASE 2   { ASSIGN NewToday = "Tuesday" }
  CASE 3   { ASSIGN NewToday = "Wednesday" }
  CASE 4   { ASSIGN NewToday = "Thursday" }
  CASE 5   { ASSIGN NewToday = "Friday"  }
  CASE 6   { ASSIGN NewToday = "Saturday"   }
}

Wenn mehr als eine CASE-Anweisung denselben Code { ... } verwendet, müssen Sie nicht nach jeder einen Codeblock einfügen. Listen Sie stattdessen die CASE-Schlüsselwörter nacheinander auf und platzieren Sie den Code nach der letzten CASE-Anweisung, die diesen Code verwendet. Dies wird als Fall-Through-Verhalten bezeichnet. Es ist zulässig, solange eine Case-Anweisung für SWITCH vorhanden ist, die keinen Codeblock hat. Das folgende Beispiel veranschaulicht das Fall-Through-Verhalten für eine Case-Anweisung. Für CASE 1, 2 und 3 lautet der Ausgabewert hi. Für CASE 5 und 6 ist die Ausgabe bye.

SWITCH x
{
	CASE 1
	CASE 2
	CASE 3 { TRACE "hi" }
	CASE 5
	CASE 6 { TRACE "bye" }
}

Anwendungsfall: SWITCH ermöglicht spezifische Ergebnisse, je nach dem Inhalt der angegebenen Variablen. Beispielsweise kann das Skript eine Variable auswerten, die Vorwahlen enthält. Sie können eine CASE-Anweisung für jede mögliche Vorwahl definieren und das Skript so konfigurieren, dass ein Wert für jede state-Variable hinzugefügt wird, die dem Bundesstaat entspricht, zu dem die Vorwahl gehört. Beispiel:

SWITCH areaCode
{
	CASE 603 { state =  "New Hampshire" }
	CASE 614 { state =  "Ohio" }
	CASE 628 { state =  "California" }
	CASE 646 { state =  "New York" }
	CASE 667 { state =  "Maryland" }
}

CASE Anweisungen

Beschreibung: Hiermit wird eine von mehreren möglichen Anweisungen definiert, die ausgeführt werden können. Wird mit SWITCH oder SELECT verwendet.

Syntax: variiert; siehe SWITCH oder SELECT

Studio-Aktion: Case

Details:  CASE muss in einem Block mit Bedingungscode einer SWITCH- oder SELECT-Anweisung verwendet werden. Fügen Sie eine oder mehrere CASE-Anweisungen hinzu, um die möglichen Blöcke zu definieren, die das Skript ausführen kann. Mindestens eine CASE-Anweisung ist erforderlich.

Zugehörig: Fügen Sie eine DEFAULT-Anweisung ein, um die Case-Anweisung anzugeben, die verwendet werden soll, wenn keine der angegebenen CASE-Anweisungen zutrifft.

DEFAULT Anweisungen

Beschreibung: Definiert den CASE-Block, der verwendet wird, wenn keine der angegebenen CASE-Anweisungen zutrifft. Wird mit SWITCH und SELECT verwendet.

Syntax: variiert, siehe SWITCH oder SELECT

Details: DEFAULT muss mit SWITCH- oder SELECT-Blöcken verwendet werden und es muss mindestens eine CASE-Anweisung vorhanden sein. DEFAULT kann nicht alleine verwendet werden. DEFAULT ist immer optional. Dies muss die letzte Klausel in der Liste der CASE-Anweisungen sein.

ELSE Anweisungen

Beschreibung: Definiert die Anweisung, die das Skript ausführt, wenn der Ausdruck IF als "false" ausgewertet wird.

Syntax: { ELSE ... }; siehe IF

Details: ELSE ist immer optional. Sie können eine ELSE-Anweisung einschließen, um anzugeben, wie das Skript vorgeht, wenn der Ausdruck als "false" ausgewertet wird. Verwenden Sie diese Anweisung, wenn zwei Aktionen möglich sind und das Skript zwischen ihnen wählen soll.