Declaraciones para la toma de decisiones

La información de esta página de ayuda aplica tanto a Studio como a Desktop Studio.

Puede hacer que su script seleccione una tarea a realizar según las condiciones que usted especifique. Utilizando una declaración de toma de decisiones, puede diseñar el script para que tenga en cuenta diferentes posibilidades o resultados. Esto le permite controlar el flujo lineal de lo que sucede en su script.

Las palabras clave para estas declaraciones son:

  • IF: Selecciona qué opción ejecutar en función del resultado de la evaluación de una expresión BooleanaClosed Un tipo de datos que tiene dos valores posibles: verdadero y falso..
  • SELECT: Ejecuta la primera declaración de una serie de declaraciones que se evalúan como verdaderas.
  • SWITCH: Evalúa una expresión y compara el resultado con casos definidos. Toma la acción definida en el caso coincidente.

Las declaraciones de toma de decisiones siempre requieren bloques de código condicional. Los bloques van encerrados entre llaves ( { } ). Los bloques de código para las declaraciones SELECT y SWITCH utilizan dos palabras clave adicionales:

  • CASE: Define una de un conjunto de posibles declaraciones por ejecutar.
  • DEFAULT: Define el valor predeterminado CASE. Esta es la declaración que se ejecuta si no se puede ejecutar ninguna de las otras CASEdeclaraciones.

El análisis de cada tipo de declaración incluye un resumen de sintaxis. Estos resúmenes utilizan ciertas convenciones que indican las partes de la declaración y si es obligatoria u opcional cada parte.

Declaraciones IF y IF... ELSE

Description: Evaluates an expression and takes a branch based on the results of the evaluation.

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

Studio Action: If

Details: IF statements evaluate an <expression>. Depending on how the expression evaluates, the script executes the code in the first set of curly braces { ... }. The expression must evaluate as true or the script won't execute the code.

You can include the ELSE statement if you want to specify what the script does when the expression evaluates as false. ELSE is optional. Use it when there are two possible actions and you want the script to choose between them. Use IF alone when there's only one possible action and you want the script to perform it only when the specified condition (<expression>) is met.

Use a BooleanClosed Un tipo de datos que tiene dos valores posibles: verdadero y falso. operator in the expression <expression> that's part of the IF statement. You must use an expression that evaluates to either true or false. For example, x=5 is a valid expression, because the value of the variable x will either equal 5 or it will not.

Studio does not support having more than one ELSE statement in an IF. However, you can embed IF statements: 


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

Example

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 Declaraciones

Descripción: Realiza un conjunto de comandos que se basan en la primera expresión que se evalúe como verdadera.

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

Detalles: En una declaración SELECT, el script evalúa cada CASE <expression> comenzando desde arriba y bajando hasta encontrar el primero que se evalúa como verdadero. Para que la primera CASE <expression> se evalúe como verdadera, SELECT ejecuta el código entre llaves [{ ... }] de esa CASE <expression>.

Si ninguna CASE <expression> se evalúa como verdadera, el script ejecuta el código opcional DEFAULT { ... }.

Se espera al menos una declaración CASE. Si se incluye, la declaración DEFAULT { ... } debe ser la última cláusula en la lista de declaraciones CASE.

Por ejemplo:

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 Declaraciones

Descripción: Evalúa la variable especificada y realiza la acción definida por el CASE que concida.

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

Detalles: Una SWITCH declaración compara el valor de una variable <var> con el valor literal de cada CASE <literal>. Cuando se encuentra un CASE que coincida, se ejecuta SWITCH y se bifurca al código entre llaves { ... } asociado con el CASE <literal> que coincida.

Si no coincide ningún CASE <literal> con <var>, se ejecuta el código opcional DEFAULT { ...}. DEFAULT debe ser la última cláusula de las declaraciones incrustadas en la declaración SWITCH.

SWITCH sólo puede evaluar una variable. No puede evaluar una expresión. Si usted usa una expresión, no funcionará su script.

Se espera al menos un CASE. Todas las declaraciones CASE deben tener el mismo tipo de <literal>. La primera CASE determina el tipo de las declaraciones CASE restantes. Si una declaración CASE tiene un tipo diferente al de la primera CASE, se produce un error del compilador. Los siguientes son todos tipos literales válidos:

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

Por ejemplo:

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"   }
}

Si más de un CASE usa el mismo código { ... }, no es necesario incluir un bloque de código después de cada uno. Al contrario, enumere las palabras clave CASE una tras otra, con el código después del último CASE que use ese código. Esto se llama caso fallido. Está permitido siempre que exista un caso para que SWITCH encuentre un bloque de código. El siguiente ejemplo muestra un caso fallido. Para los CASE 1, 2 y 3, la salida es el valor hi. Para los CASE 5 y 6, la salida es bye.

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

Caso de Uso: SWITCH le permite obtener resultados específicos dependiendo de lo que contenga la variable especificada. Por ejemplo, puede hacer que el script evalúe una variable que contenga códigos de área. Puede definir un CASE para cada código de área posible y hacer que el script agregue un valor a la variable state que coincida con el estado al que está asignado el código de área. Por ejemplo:

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 Declaraciones

Description: Defines one of a set of possible statements to be executed. Used with SWITCH or SELECT.

Syntax: varies; see SWITCH or SELECT

Studio Action:  Case

Details:  CASE must be used in the conditional code block of a SWITCH or SELECT statement. Add one or more CASE statements to define the possible blocks for the script to execute. At least one CASE is required.

Related: Include a DEFAULT statement to define the case that's used if none of the specified CASE statements apply.

DEFAULT Declaraciones

Descripción: Define el bloque CASE que se usa si no aplica ninguno de los CASE especificados. Se utiliza con SWITCH y SELECT.

Sintaxis: Varía; consulte CAMBIAR o SELECCIONAR

Detalles: DEFAULT debe usarse con los bloques SWITCH o SELECT, y debe haber al menos una declaración CASE. DEFAULT no se puede utilizar por sí solo. DEFAULT siempre es opcional. Debe ser la última cláusula en la lista de declaraciones CASE.

ELSE Declaraciones

Descripción: Define la declaración que ejecuta el script si la expresión IF se evalúa como falsa.

Sintaxis: { ELSE ... }; ver IF

Detalles: ELSE siempre es opcional. Puede incluir la declaración ELSE si desea especificar qué hace el script cuando la expresión resulta falsa. Úselo cuando haya dos acciones posibles y desee que el script elija entre ellas.