Expressões

Uma expressão é qualquer coisa no seu script que compara um valor ou resultados em um valor. Por exemplo, X = 5, Y = dog e Z = "{var1}" podem todos ser expressões se usados de uma forma que compara os valores ou resultados em um valor. Por exemplo, X = 5 compara o valor da variável X com 5. Da mesma forma, Z = "{var1}" compara o valor da variável Z com o valor atual da variável var1.

Qualquer um dos exemplos anteriores também poderiam ser instruções de atribuição. Uma instrução de atribuição atribui o valor do lado direito do sinal de igual à variável no lado esquerdo. Atribuições de variável não são expressões.

Expressões podem ser usadas para:

  • Efetuar cálculos matemáticos ou algébricos.
  • Comparar dois valores e tomar uma ação com base no resultado da comparação.
  • Tomar decisões lógicas dependendo se uma expressão é avaliada como true ou false.

Os valores comparados em uma expressão podem ser compostos de letras, números ou uma combinação de ambos. Elas também podem incluir variáveis No Studio há três tipos de expressão, numérica, de string e booleana.

Experimente

Baixe o script de exemplos de expressão e importe-o para o Studio. Os exemplos desta página de ajuda estão disponíveis nas ações Snippet no script de exemplo. É possível abrir a janela Snippet Editor e executar o depurador para ver como cada exemplo funciona.

Expressões numéricas

Expressões numéricas incluem apenas numerais e operadores matemáticos ou booleanos, como +, - e assim por diante. Elas também podem incluir referências de variáveis, caso as variáveis contenham valores numéricos usados nos cálculos.

Expressões numéricas são usadas em snippets e para configurar as propriedades de ações Studio. Por exemplo, na ação IF, você configura a propriedade Expression com uma expressão a ser avaliada como o mecanismo de tomada de decisão da ação. Você pode fazer a mesma coisa em um snippet usando a palavra-chave IF.

Sintaxe de expressões numéricas

Expressões numéricas não podem ser colocadas entre aspas. Isso inclui expressões matemáticas e booleanasFechado Um tipo de dados que tem dois valores possíveis: true e false.. Se você colocar uma expressão numérica entre aspas, ela será tratada como texto. Por exemplo, c1 = 123 + 456 é avaliada como 579 mas c2 = "123 + 456" resulta em 123 + 456.

Não coloque variáveis usadas em expressões numéricas dentro de chaves ou aspas. Isso resultará em um erro no seu script.

Avaliação de expressões numéricas

Em uma expressão numérica, se o script consegue avaliar valores numéricos como números, ele o fará. Isso significa que:

  • Tudo que não puder ser avaliado como um valor numérico, como letras ou uma palavra, é assumido como sendo uma referência de variável.
  • Se caracteres não numéricos na expressão forem uma variável no script com um valor de string, o script ignorará os caracteres não numéricos e avaliará a porção numérica da expressão original.
  • Se os caracteres não numéricos na expressão forem uma variável com um valor numérico, o script incluirá tal valor na avaliação da expressão.
  • Se os caracteres não numéricos na expressão não forem uma variável no script, o script ignorará esses caracteres na expressão original.

No exemplo seguinte, o script tenta avaliar nextNum como uma variável pois ela não pode ser avaliada como um número: c1 = 123 + 456 + nextNum. Os exemplos a seguir mostram o resultado de três situações dependendo se nextNum é uma variável e qual é o seu valor.

Quando nextNum é uma variável com um valor de string, o resultado é c1 = 579:

ASSIGN nextNum = "my string"
ASSIGN c2 = 123 + 456 + nextNum

Quando nextNum é uma variável com um valor numérico, o resultado é c2 = 1368:

ASSIGN nextNum = 789
ASSIGN c3 = 123 + 456 + nextNum 

Quando nextNum não é uma variável, o resultado é c3 = 579:

ASSIGN c3 = 123 + 456 + nextNum

Caso avalie uma expressão que inclua duas variáveis que armazenem numéricos tratados como valores de string, o script converterá os valores em números e os avaliará de acordo com esta conversão. O resultado do exemplo seguinte é c4 = 50:

ASSIGN nextNum = "20"
ASSIGN otherNum = "30"
ASSIGN c4 = nextNum + otherNum

Você pode incluir expressões numéricas em valores de string ao colocar a expressão dentro de chaves. Por exemplo:

ASSIGN nextNum = 6
ASSIGN otherNum = 7
ASSIGN c5 = "There are {nextNum + otherNum} fish in the aquarium."

Números com zeros à frente

Há uma diferença em como Studio trata números quando estes são considerados strings e quando estes são tratados como números. Quando números estão sendo tratados como uma string, eles podem ter zeros à esquerda. Caso combine duas variáveis que armazenam valores de string numéricos que têm zeros à esquerda, esses zeros serão removidos. Por exemplo, o resultado da seguinte expressão é c6=59:

ASSIGN nextNum = "00020"
ASSIGN otherNum = "000039"
ASSIGN c6 = nextNum+otherNum

Caso precise que o valor resultante tenha zeros à esquerda, você pode usar a função format() e o marcador de posição zero para adicionar zeros de volta ao valor.

Expressões de string

Expressões de string incluem caracteres alfanuméricos e especiais, como #, @ e assim por diante. A sintaxe para expressões de string é parecida com a sintaxe para atribuir valores de string a variáveis:

  • Nos snippets, valores de string para expressões devem sempre ser colocados entre aspas simples ou duplas. Isso é o mesmo para valores de string
  • Para realizar substituições de variáveis em expressões de string, coloque o nome da variável dentro de chaves.
  • Alguns caracteres, como as aspas duplas, são considerados código. Para incluir esses caracteres em valores de string, você deve usar sequências de escape.

Comparações de string

Strings podem ser avaliadas como valores em expressões booleanas. Por exemplo, você pode usar a seguinte expressão em uma instrução IF:

consumidor = "Grendel Cainson"

Quando consumidor contiver o valor exato Grendel Cainson, o resultado será true. Para qualquer outro valor, o resultado será false.

Você pode usar operadores maior do que e menor do que em comparações de string. Neste tipo de comparação, cada caractere de letra tem um valor atribuído (A = 1 and Z = 26). O script começa comparando o primeiro caractere. Se eles forem diferentes, aquele que começa com uma letra posterior na ordem alfabética será considerado maior. Por exemplo, na comparação apple > banana, o resultado será false. Isso é porque banana é maior do que apple, pois b vem depois no alfabeto.

Se os primeiros caracteres forem os mesmos, o script compara os segundos caracteres. Se eles forem diferentes, a comparação termina. Se os segundos caracteres forem os mesmos, o script continua comparando caracteres até que alcance um par que seja diferente. Por exemplo, na comparação de grapes > grapey, o script compara cada caractere até que chegue ao fim. O resultado é false porque grapey é maior do que grapes, pois y vem depois de s no alfabeto.

Em comparações “maior que ou igual a” ou “menor que ou igual a”, as mesmas regras são aplicadas. Se os scripts percebem que a string no lado esquerdo do operador é a mesma que a string no lado direito, a expressão é avaliada como true.

Comparações de string diferenciam maiúsculas de minúsculas.

Sequências de escape em strings

Studio suporta sequências de escape dentro de constantes de string. Sequências de escape permitem que você inclua determinados caracteres especiais em uma string. Caracteres como aspas duplas ou uma chave de abertura são reconhecidos como código. Quando eles são incluídos em uma string, o compilador não os interpreta literalmente, e sim como código. Sequências de escape permitem que você inclua esses caracteres especiais em strings. Se incluir esses caracteres em strings sem usar sequências de escape, o resultado não será o que você espera e um erro pode ocorrer.

Não é preciso adicionar sequências de escape a strings que contêm XML ou JSON convertido. Sequências de escape são automaticamente adicionadas para caracteres que precisam delas.

Antes de strings que usam uma sequência de escape, adicione um sinal de dólar ($): $"...". Dentro das aspas duplas, você pode usar qualquer uma das seguintes sequências de escape:

Sequência Detalhes
\" Incorpore uma aspa dupla.
\' Incorpore uma única citação.
\t Incorpore uma tab (ASCII 9).
\r Incorpore um retorno de carro (ASCII 13).
\n Incorpore um avanço de linha (ASCII 10).
\b Incorpore um backspace (ASCII 8).
\{ Incorpore uma chave aberta. Você só precisa escapar a chave de fechamento se não houver uma chave aberta escapada no texto antes dela. Caso precise escapar uma chave de fechamento, terá o seguinte aspecto: \}
\0 Incorpore um nulo (0 é um zero).

O exemplo a seguir usa a sequência de escape \n para adicionar um avanço de linha à string. Isso move o cursor para baixo para a próxima linha sem voltar ao começo da linha.

x = $"A phrase\nAnd a new line"

Quando a string é imprimida, a saída tem este aspecto:

A phrase

And a new line ]

No exemplo anterior, o colchete quadrado de fechamento representa o cursor.

O exemplo a seguir usa a sequência de escape \" para incluir aspas duplas na string:

y = $"Embedding \"double quotes\" in a string."

Quando a string é imprimida, ela tem este aspecto: Embedding "double quotes" in a string. Sem a sequência de escape, o script só reconheceria a string até o símbolo de aspas duplas antes da palavra double.

O exemplo a seguir usa a sequência de escape \{ para incluir chaves literais na string:

z = $"Using \{curly} braces."

Quando a string é imprimida, ela tem este aspecto: Using {curly} braces. Sem a sequência de escape, o script teria interpretado {curly} como uma variável. Quando nenhum valor para a chave variável é encontrado, o script a substituiria com nada, portanto o valor da variável seria Using braces..

Expressões booleanas

Studio suporta o uso de expressões booleanasFechado Um tipo de dados que tem dois valores possíveis: true e false.. Elas podem ser usadas para criar lógica tomadora de decisão no seu script. Como expressões booleanas podem ser avaliadas ou como true ou como false, você pode usá-las para criar condições que precisam ser atendidas para decidir qual caminho tomar. Se a condição é atendida, o script toma aquele ramal, mas se não for atendida o script toma o outro ramal.

Há um número de operadores que você pode usar em expressões booleanas. Isso permite definir uma instrução de condição lógica que atende às necessidades do seu script. Por exemplo, você pode verificar se um valor é o mesmo que outro usando o sinal de igual (=) ou verificar se um valor é maior do que outro usando o operador maior que (>).

Você pode usar expressões booleanas com ações como If e Snippet (páginas da ajuda no CXone Studio: If e Snippet). Um número de instruções que você pode usar em snippets usa expressões booleanas como o mecanismo de tomada de decisões, incluindo:

  • IF
  • IF ... ELSE
  • SELECT

O exemplo a seguir mostra o uso de uma expressão booleana com uma instrução IF...ELSE em um snippet:

ASSIGN var1 = "Cat"
IF var1 = "Dog"
{
	ASSIGN dogWasFound = true
}
ELSE
{
	ASSIGN dogWasFound = false
}

Expressões booleanas também podem ser usadas na criação de scripts com ações. A imagem a seguir mostra a mesma instrução IF...ELSE usando ações Studio. É possível testar este exemplo no script de teste Expressões.

Uma versão de script do exemplo booleano desta seção da página.

Valores booleanos para ativar ou desativar configurações

Valores booleanos são usados às vezes em scripts para ativar ou desativar configurações no CXone. Nesses casos, você atribui um valor booleano a uma variável. Para ativar uma configuração, atribua o valor true ou 1. Para desativar uma configuração, atribua o valor false ou 0.

Ambas as palavras e números são valores booleanos válidos. No entanto, consulte a ajuda online da ação Studio que está usando para saber se há um valor preferencial para as propriedades da ação. De toda forma, o valor que você usa não deve ser colocado entre aspas. Se colocar o valor entre aspas, o script o tratará como uma string literal em vez de um valor booleano.

Operadores

Um operador é um símbolo que representa uma operação ou comparação matemática. Símbolos como +, - e = são operadores. Operadores booleanos comparam duas expressões e resultam em uma resposta true/false. O snippet suporta tanto operadores matemáticos quanto booleanos.

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 numéricas ou de stringnuméricas ou de string. As comparações de string usam ordem alfabética para determinar qual é maior ou menor. Nas comparações, A = 1 e Z = 26. Comparações de string diferenciam maiúsculas de minúsculas.

SÍMBOLO do operador NOME DO OPERADOR Detalhes
= Igual Se os dois lados da expressão forem equivalentes, a expressão resultará em true (1); caso contrário, a expressão resultará em false (0).
!= Não igual Se os dois lados da expressão não forem equivalentes, a expressão será avaliada como true (1); caso contrário, ela resultará em 0 false (0).
> Maior que

Se o lado direito da expressão for menor do que o esquerdo, a expressão resultará em true (1); caso contrário, ela resultará em false (0).

>= Maior que ou igual

Se o lado direito da expressão for menor que ou igual ao esquerdo, a expressão resultará em true (1); caso contrário, ela resultará em false (0).

< Menor que

Se o lado esquerdo da expressão for menor do que o direito, a expressão resultará em true (1); caso contrário, ela resultará em false (0).

<= Menor ou igual

Se o lado esquerdo da expressão for menor que ou igual ao direito, a expressão resultará em true (1); caso contrário, ela resultará em false (0).

& E Se todas as sub-expressões forem avaliadas como true, a expressão inteira resultará em true (1); caso contrário, ela resultará em false (0).
| Ou Se qualquer uma das sub-expressões for avaliada como true, a expressão resultará em true (1); caso contrário, ela resultará em false (0).

Sinais de igual em expressões

O operador sinal de igual (=) significa coisas diferentes dependendo do tipo de expressão com que está trabalhando.

As expressões usadas em instruções de atribuição atribuem uma expressão para ser o valor de uma variável. O sinal de igual usado nessas instruções representa a atribuição do valor do lado direito da expressão à variável no lado esquerdo.

Em outras expressões, o sinal de igual indica avaliação de igualdade. Por exemplo, na expressão algébrica x = 3 * (5 + 10) o sinal de igual significa que x representa o valor resultante da expressão algébrica 3 * (5 + 10). Neste caso, x= 45. Você pode usar esta expressão algébrica em uma instrução de atribuição para atribuir o valor da expressão para a variável x. No entanto, se a mesma expressão fosse usada como uma booleana, ela avaliaria a expressão como true ou false dependendo do valor de x.

Expressões booleanas são comumente usadas em scripts do Studio. Se usar um sinal de igual como o operador nessas expressões, ele comparará o valor do lado esquerdo do sinal de igual ao valor do lado direito para determinar se há igualdade. Caso precise alterar o valor de uma variável usada em uma expressão booleana, use uma ação ASSIGN ou uma instrução ASSIGN em uma ação Snippet.