Instruções de tomada de decisão
                                                        As informações nesta página de ajuda são aplicáveis tanto ao Studio quanto ao Desktop Studio.
Você pode fazer com o que seu script selecione uma tarefa para desempenhar com base nas condições que especificar Usando uma instrução de tomada de decisão, é possível criar o script para lidar com várias possibilidades e resultados diferentes. Isso permite que você controle o fluxo linear do que acontece no seu script.
As palavras-chave para essas instruções são:
- IF: selecione qual opção executar com base no resultado da avaliação de uma expressão booleana
 Um tipo de dados que tem dois valores possíveis: true e false.. - SELECT: executa a primeira instrução em uma série de instruções avaliadas como true.
 - SWITCH: avalia uma expressão e compara o resultado para definir casos. Ela toma a ação definida no caso correspondente.
 
Instruções de tomada de decisão sempre exigem blocos de código condicionais. Blocos são inseridos dentro de chaves ( 
- CASE: define uma de um conjunto de possíveis instruções a ser executada.
 - DEFAULT: define CASE padrão. Esta é a instrução que é executada se nenhuma das outras instruções CASE puder ser executada.
 
A discussão de cada tipo de instrução inclui um resumo de sintaxe. Esses resumos usam certas convenções para indicar as partes da instrução e se cada parte é obrigatória ou opcional.
 Instruções IF  e IF... ELSE  
                                                        Descrição: avalia uma expressão e toma um ramal dependendo do resultado da avaliação.
Sintaxe:  
 Ação do Studio: If 
Detalhes: instruções IF avaliam uma <expression>. Dependendo de como a expressão é avaliada, o script executa o código no primeiro conjunto de chaves { ... }. A expressão deve ser avaliada como true ou o script não executará o código.
Você pode incluir a instrução ELSE se quiser especificar o que o script faz quando a expressão é avaliada como false. ELSE é opcional. Use-a quando houver duas ações possíveis e quando quiser que o script escolha entre elas. Use IF sozinha quando houver apenas uma ação possível e quando quiser que o script a execute apenas quando a condição especificada (<expression>) for atendida.
Use um operador booleano
 Um tipo de dados que tem dois valores possíveis: true e false. na expressão <expression> que é parte da instrução IF. Você deve usar uma expressão que é avaliada ou como true ou como false. Por exemplo, x=5 é uma expressão válida pois o valor da variável x ou será igual a 5 ou não será.
Além de operadores matemáticos regulares para multiplicação, divisão, adição e subtração, você também pode usar os seguintes operadores:
- Operador módulo (%)
 - Potência/expoente (^)
 - Divisão inteira (\)
 - Exclusivo OU (~)
 
A ordem regular de operações matemáticas é aplicada a todas as expressões. Qualquer coisa entre parênteses é avaliada primeiro como uma subunidade. Operadores de potência/expoentes são avaliados em segundo. Multiplicação e divisão são avaliadas depois, seguidas por adição e subtração. Operadores de comparação são os últimos a ser avaliados, depois que todas as operações matemáticas tiverem sido concluídas.
Operadores Booleanos
Você pode usar os seguintes operadores Booleanos em snippets. Todos esses operadores podem ser usados com comparações 
| SÍMBOLO do operador | NOME DO OPERADOR | Detalhes | 
|---|---|---|
| = | Igual | Se os dois lados da expressão forem equivalentes, a expressão resultará em  | 
                                                                    
| != | Não igual | Se os dois lados da expressão não forem equivalentes, a expressão será avaliada como  | 
                                                                    
| > | Maior que | 
                                                                             Se o lado direito da expressão for menor do que o esquerdo, a expressão resultará em   | 
                                                                    
| >= | Maior que ou igual | 
                                                                             Se o lado direito da expressão for menor que ou igual ao esquerdo, a expressão resultará em   | 
                                                                    
| < | Menor que | 
                                                                             Se o lado esquerdo da expressão for menor do que o direito, a expressão resultará em   | 
                                                                    
| <= | Menor ou igual | 
                                                                             Se o lado esquerdo da expressão for menor que ou igual ao direito, a expressão resultará em   | 
                                                                    
| & | e | Se todas as sub-expressões forem avaliadas como true, a expressão inteira resultará em  | 
                                                                    
| | | ou | Se qualquer uma das sub-expressões for avaliada como true, a expressão resultará em  | 
                                                                    
Studio não suporta ter mais de uma instrução 
IF A > B {
// Do something
}
ELSE {
	IF A = B {
	// Do something else
	}
	ELSE {
	// Do this
	}
}
                                                        Exemplo
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"
      }
                                                        
 Instruções SELECT  
                                                        Descrição: Executa um conjunto de comandos com base na primeira expressão a ser avaliada como true.
Sintaxe:  
Detalhes: Em uma instrução SELECT, o script avalia cada CASE <expression> começando pelo topo e descendo até encontrar a primeira que é avaliada como true. Para a primeira CASE <expression> avaliada como true, SELECT executa o código dentro das chaves [{ ... }] daquela CASE <expression>.
Se nenhuma CASE <expression> for avaliada como true, o script executará o código opcional DEFAULT { ... }.
Pelo menos uma instrução CASE é esperada. Se incluída, a instrução DEFAULT { ... } deve ser a última cláusula na lista de instruções CASE.
Por exemplo:
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 }
} 
                                                        
 Instruções SWITCH  
                                                        Descrição: avalia a variável especificada e toma a ação definida pelo CASE correspondente.
Sintaxe: SWITCH <var> <{CASE <literal> [{ ... }] [CASE <literal> [{ ... }]] [CASE ...] [DEFAULT [{ ... }]] }>
Detalhes:  
Se nenhum CASE <literal> corresponder a <var>, o código opcional 
SWITCH pode apenas avaliar uma variável. Ela não pode avaliar uma expressão. Se usar uma expressão, seu script não funcionará.
Pelo menos um CASE é esperado. Todas as instruções CASE devem ter o mesmo tipo de <literal>. O primeiro CASE determina o tipo para as instruções CASE restantes. Se qualquer instrução CASE tiver um tipo diferente do primeiro CASE, um erro de compilação ocorrerá. Todos os exemplos a seguir são de tipos literais válidos:
- CASE "john"
 - CASE 512
 - CASE #"5/15/2050"
 - CASE #"6/1/2050 7:00am"
 - CASE #"7am"
 
Por exemplo:
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"   }
}
                                                        Se mais de um CASE usa o mesmo código { ... }, não é preciso incluir um bloco de código após cada um. Em vez disso, liste as palavras-chave CASE uma após a outra, com o código após o último CASE que usa tal código. Isso é chamado de caída de case. Isso é permitido desde que haja um case que tem um bloco de código para o SWITCH encontrar. O exemplo a seguir mostra uma caída de case. Para os CASEs 1, 2 e 3, a saída é o valor hi. Para os CASEs 5 e 6, a saída é bye.
SWITCH x
{
	CASE 1
	CASE 2
	CASE 3 { TRACE "hi" }
	CASE 5
	CASE 6 { TRACE "bye" }
}
                                                        Usar case: SWITCH permite que você tenha resultados específicos dependendo do que a variável especificada contém. Por exemplo, é possível fazer com que o script avalie uma variável contendo códigos de área. Você pode definir um CASE para cada código de área possível e fazer o script adicionar um valor à variável state que corresponde ao estado ao qual o código de área é atribuído. Por exemplo:
SWITCH areaCode
{
	CASE 603 { state =  "New Hampshire" }
	CASE 614 { state =  "Ohio" }
	CASE 628 { state =  "California" }
	CASE 646 { state =  "New York" }
	CASE 667 { state =  "Maryland" }
}
                                                        
 Instruções CASE  
                                                        Descrição: define um de um conjunto de instruções possíveis para ser executado. Usado com SWITCH ou SELECT.
Sintaxe: varia; consulte SWITCH ou SELECT
Ação do Studio:  
Detalhes: CASE deve ser usado no bloco de código condicional de um(a) SWITCH ou instrução SELECT. Adicione uma ou mais instruções CASE para definir os possíveis blocos para o script executar. Ao menos um CASE é necessário.
Relacionado: inclui uma instrução DEFAULT para definir o caso a ser usado se nenhuma das instruções CASE especificadas for aplicável.
 Instruções DEFAULT  
                                                        Descrição: Define o bloco CASE que é usado se nenhuma das CASE especificadas for aplicável. Usada com SWITCH e SELECT.
Sintaxe: Varia; consulte SWITCH ou SELECT
Detalhes: DEFAULT deve ser usada com blocos SWITCH ou SELECT e deve haver pelo menos uma instrução CASE presente. DEFAULT não pode ser usada por conta própria. DEFAULT é sempre opcional. Ela deve ser a última cláusula na lista de instruções CASE.
 Instruções ELSE  
                                                        Descrição: define a instrução que o script executa se a expressão IF for avaliada como false.
Sintaxe:  
Detalhes: ELSE sempre é opcional. Você pode incluir uma instrução ELSE se quiser especificar o que o script faz quando a expressão é avaliada como false. Use-a quando há duas ações possíveis e você quer que o script escolha entre elas.