Expresiones

Una expresión es cualquier cosa en su script que compara un valor o da como resultado un valor. Por ejemplo, X = 5, Y = dog y Z = "{var1}" pueden ser expresiones si se usan de una manera que compare los valores o dé como resultado un valor. Por ejemplo, X = 5 compara el valor de la variable X con 5. De manera similar, Z = "{var1}" compara el valor de la variable Z con el valor actual de la variable var1.

Cualquiera de los ejemplos anteriores también podrían ser declaraciones de asignaciones. Una declaración de asignación asigna el valor del lado derecho del signo igual a la variable del lado izquierdo. Las asignaciones de variables no son expresiones.

Se pueden utilizar las expresiones para:

  • Realizar cálculos matemáticos o algebraicos.
  • Comparar dos valores y realizar una acción según el resultado de la comparación.
  • Tomar decisiones lógicas dependiendo de si se evalúa una expresión como verdadera o falsa.

Los valores comparados de una expresión pueden estar compuestos por letras, números o una combinación de ambos. También pueden incluir variables. En Studio hay tres tipos de expresiones, numéricas, cadenasy booleanas.

Pruébelo

Descargue el script de Ejemplos de Expresiones e impórtelo a Studio. Los ejemplos de esta página de ayuda se encuentran en las acciones Snippet del script de ejemplo. Puede abrir la Snippet Editor ventana y ejecutar el depurador para ver cómo funciona cada ejemplo.

Expresiones numéricas

Las expresiones numéricas incluyen únicamente números y operadores matemáticos o booleanos, como +, -, etc. También pueden incluir referencias a las variables, si las variables contienen valores numéricos que se utilizan en los cálculos.

Las expresiones numéricas se utilizan en los snippets y para configurar las propiedades de las acciones Studio. Por ejemplo, en la acción IF, usted configura la propiedad Expression con una expresión para que se evalúe como el mecanismo de toma de decisiones de la acción. Puede hacer lo mismo en un snippet usando la palabra clave IF.

Sintaxis de las expresiones numéricas

Las expresiones numéricas no pueden incluirse entre comillas. Esto incluye expresiones matemáticas y booleanasCerrado Un tipo de datos que tiene dos valores posibles: verdadero y falso.. Si incluye una expresión numérica entre comillas, se le trata como texto. Por ejemplo, c1 = 123 + 456 se evalúa como 579 pero c2 = "123 + 456" da como resultado 123 + 456.

No incluya las variables que se utilizan en expresiones numéricas entre llaves y comillas dobles. Esto da como resultado un error en su script.

Evaluación de expresiones numéricas

En una expresión numérica, si el script puede evaluar valores numéricos como números, eso hace. Esto implica que:

  • Todo lo que no pueda evaluarse como valores numéricos, como letras o una palabra, se considera una referencia variable.
  • Si los caracteres no numéricos de la expresión son una variable en el script con un valor de cadena, el script ignora los caracteres no numéricos y evalúa la parte numérica de la expresión original.
  • Si los caracteres no numéricos de la expresión son una variable con un valor numérico, el script incluye ese valor en la evaluación de la expresión.
  • Si los caracteres no numéricos de la expresión no son una variable en el script, el script ignora esos caracteres en la expresión original.

En el siguiente ejemplo, el script intenta evaluar nextNum como variable porque no se puede evaluar como número: c1 = 123 + 456 + nextNum. Los siguientes ejemplos muestran el resultado de tres escenarios dependiendo de si nextNum es una variable y de cuál es su valor.

Cuando nextNum es una variable con un valor de cadena, el resultado es c1 = 579:

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

Cuando nextNum es una variable con un valor numérico, el resultado es c2 = 1368:

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

Cuando nextNum no es una variable, el resultado es c3 = 579:

ASSIGN c3 = 123 + 456 + nextNum

Si evalúa una expresión que incluye dos variables que contienen números y que se tratan como valores de cadena, el script convierte los valores en números y los evalúa según corresponde. El resultado del siguiente ejemplo es c4 = 50:

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

Puede incluir expresiones numéricas en valores de cadena encerrando la expresión entre llaves. Por ejemplo:

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

Números con ceros a la izquierda

Hay una diferencia en la manera en que Studio maneja los números cuando se tratan como cadenas versus cuando se tratan como números. Cuando se tratan los números como cadena, pueden tener ceros a la izquierda. Si suma dos variables que contengan valores de cadena numérica con ceros a la izquierda, se eliminan los ceros a la izquierda. Por ejemplo, el resultado de la siguiente expresión es c6=59:

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

Si necesita que el valor resultante tenga ceros a la izquierda, puede usar la format() función y el marcador de posición cero para volver a agregar los ceros al valor.

Expresiones con cadenas

Las expresiones con cadenas incluyen caracteres alfanuméricos y especiales, como #, @, etc. La sintaxis para expresiones con cadena es similar a la sintaxis para asignar valores de cadena a las variables:

  • En los snippets, los valores de cadena en las expresiones siempre deben estar entre comillas simples o dobles. Esto es lo mismo que para los valores de cadena
  • Para realizar la sustitución de variables en las expresiones de cadenas, incluya entre llaves el nombre de la variable.
  • Algunos caracteres, como las comillas dobles, se consideran código. Para incluir estos caracteres en los valores de cadena, debe utilizar secuencias de escape.

Comparaciones de cadenas

Se pueden evaluar las cadenas como valores en las expresiones booleanas. Por ejemplo, puede utilizar la siguiente expresión en una declaración IF:

cliente = "Grendel Cainson"

Cuando cliente contiene el valor exacto Grendel Cainson, el resultado es true. Para cualquier otro valor, el resultado es false.

Puede utilizar operadores mayor que y menor que en las comparaciones de las cadenas. En este tipo de comparación, a cada carácter de letra se le asigna un valor (A = 1 y Z = 26). El script comienza comparando el primer carácter. Si son diferentes, es más grande el que comienza con una letra posterior del alfabeto. Por ejemplo, en la comparación apple > banana, el resultado es falso. Esto se debe a que banana es mayor que apple, porque b está más adelante en el alfabeto.

Si los primeros caracteres son iguales, el script compara los segundos caracteres. Si son diferentes, termina ahí la comparación. Si son iguales los segundos caracteres, el script continúa comparando caracteres hasta llegar a un par que sea diferente. Por ejemplo, en la comparación de grapes > grapey, el script compara cada carácter hasta llegar al final. El resultado es falso, porque grapey es mayor que grapes, porque y está más adelante en el alfabeto que s.

Aplican las mismas reglas en comparaciones de mayor o igual o menor o igual que. Si el script determinan que la cadena del lado izquierdo del operador es la misma que la cadena del lado derecho, se evalúa la expresión como verdadero.

Las comparaciones de cadenas distinguen entre mayúsculas y minúsculas.

Secuencias de escape en las cadenas de caracteres

Studio admite secuencias de escape dentro de constantes de cadena. Las secuencias de escape le permiten incluir ciertos caracteres especiales en una cadena. Los caracteres como las comillas dobles o una llave de apertura se reconocen como código. Cuando se incluyen en una cadena, el compilador los interpreta con el significado del código no literal en lugar de su valor literal. Las secuencias de escape le permiten incluir estos caracteres en las cadenas. Si incluye estos caracteres en las cadenas sin una secuencia de escape, el resultado no será el esperado y puede generarse un error.

No es necesario agregar secuencias de escape a cadenas que contengan XML convertido o JSON. Se agregan automáticamente las secuencias de escape a los caracteres que las requieran.

Anteponga cualquier cadena en la que utilice una secuencia de escape con un signo de dólar ($): $"...". Dentro de las comillas dobles, puede usar cualquiera de las siguientes secuencias de escape:

Secuencia Detalles
\" Insertar una cita doble.
\' Insertar una cita simple.
\t Insertar una pestaña (ASCII 9).
\r Insertar un retorno de carro (ASCII 13).
\n Insertar un avance de línea (ASCII 10).
\b Insertar un retroceso (ASCII 8).
\{ Incruste una llave abierta y rizada. Solo necesita escapar de la llave de cierre si no hay una llave abierta de escape en el texto anterior. Si necesita escapar de una llave de cierre, se verá así: \}
\0 Incrustar un valor nulo (0 es un cero).

El siguiente ejemplo utiliza la secuencia de escape \n para agregar un salto de línea a la cadena. Esto mueve el cursor hacia la siguiente línea sin regresar al principio de la línea.

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

Cuando se imprima la cadena, la salida se ve así:

A phrase

And a new line ]

En el ejemplo anterior, el corchete de cierre representa el cursor.

El siguiente ejemplo utiliza la secuencia de escape \" para que se incluyan comillas dobles en la cadena:

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

Cuando se imprime la cadena, se ve así: Embedding "double quotes" in a string. Sin la secuencia de escape, el script solo reconocería la cadena hasta el símbolo de comillas dobles antes de la palabra double.

El siguiente ejemplo utiliza la \{ secuencia de escape para que se incluyan llaves en la cadena.

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

Cuando se imprime la cadena, se ve así:  Using {curly} braces. Sin la secuencia de escape, el script habría interpretado {curly} como una variable. Cuando no se encuentra ningún valor para la variable entre llaves, el script lo reemplazará con nada, por lo que el valor de la variable sería Using braces.

Expresiones booleanas

Studio admite el uso de expresiones booleanasCerrado Un tipo de datos que tiene dos valores posibles: verdadero y falso.. Se pueden utilizar para crear una lógica de toma de decisiones en su script. Debido a que se evalúan las expresiones booleanas como verdaderas o falsas, puede usarlas para crear condiciones que deban cumplirse para decidir qué camino tomar. Si se cumple la condición, entonces el script toma esa bifurcación, pero si no, toma la otra bifurcación.

Hay varios operadores que puede utilizar en las expresiones booleanas. Esto le permite definir una declaración de condición lógica que se ajuste a las necesidades de su script. Por ejemplo, puede comprobar si un valor es igual a otro usando el signo igual (=) o puede verificar si un valor es mayor que otro usando el operador mayor que (>).

Puede utilizar expresiones booleanas con las acciones como If y Snippet (páginas de ayuda en CXone Studio: If y Snippet). Varias declaraciones de las que puede usar en los snippets utilizan expresiones booleanas como mecanismo de toma de decisiones, entre las que se incluyen:

  • IF
  • IF ... ELSE
  • SELECT

El siguiente ejemplo muestra el uso de una expresión booleana con una declaración IF...ELSE en un snippet:

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

También se pueden utilizar expresiones booleanas en scripts con acciones. La siguiente imagen muestra la misma declaración IF...ELSE usando acciones Studio. Puede probar este ejemplo en el script muestra de Expresiones.

Una versión del script del ejemplo booleano a partir de esta sección de la página.

Valores booleanos para habilitar o deshabilitar configuraciones

A veces se utilizan los valores booleanos en los scripts para habilitar o deshabilitar la configuración en CXone. En estos casos, asigna un valor booleano a una variable. Para habilitar una configuración, asigne el valor true o 1. Para deshabilitar una configuración, asigne el valor false o 0.

Tanto las palabras como los números son valores booleanos válidos. Sin embargo, consulte la ayuda en línea de la acción Studio que está utilizando para ver si existe un valor preferido para las propiedades de la acción. En cualquier caso, no debe estar entre comillas el valor que utilice. Si incluye el valor entre comillas, el script lo trata como una cadena literal en lugar de un valor booleano.

Los operadores

Un operador es un símbolo que representa una operación matemática o una comparación. Los símbolos como , -y = son operadores. Los operadores booleanos comparan dos expresiones y dan como resultado una respuesta de verdadero/falso. El snippet admite operadores matemáticos y booleanos.

Además de los operadores matemáticos habituales para multiplicación, división, suma y resta, también puede utilizar estos operadores:

  • Operador de módulo (%)
  • Potencia/exponente (^)
  • División entera (\)
  • O exclusivo (~)

Se aplica a todas las expresiones el orden matemático regular de las operaciones. Todo lo que esté entre paréntesis se evalúa primero como una subunidad. En segundo lugar se evalúan los exponentes/operadores de potencia. Posteriormente se evalúan la multiplicación y la división, luego la suma y la resta. Los operadores de comparación son los últimos en evaluarse, una vez completadas todas las operaciones matemáticas.

Operadores booleanos

Puede utilizar los siguientes operadores booleanos en los snippets. Se pueden utilizar todos estos operadores con comparaciones numéricas o de cadenasnuméricas o de cadenas. Las comparaciones de cadenas utilizan el orden alfabético para determinar cuál es mayor o menor. En las comparaciones, A = 1 y Z = 26. Las comparaciones de cadenas distinguen entre mayúsculas y minúsculas.

SÍMBOLO del operador NOMBRE DEL OPERADOR Detalles
= Igual Si los dos lados de la expresión son equivalentes, la expresión da como resultado true (1); de lo contrario, la expresión da como resultado false (0).
!= No igual Si no son equivalentes los dos lados de la expresión, se evalúa la expresión como true (1); de lo contrario, da como resultado 0 false (0).
> Más-grande-que

Si el lado derecho de la expresión es menor que el lado izquierdo, la expresión da como resultado true (1); de lo contrario, da como resultado false (0).

>= Mayor-que-o-igual

Si el lado derecho de la expresión es menor o igual que el lado izquierdo, la expresión da como resultado true (1); de lo contrario, da como resultado false (0).

< Menor-que

Si el lado izquierdo de la expresión es menor que el lado derecho, la expresión da como resultado true (1); de lo contrario, da como resultado false (0).

<= Menor-o-igual

Si el lado izquierdo de la expresión es menor o igual que el lado izquierdo, la expresión da como resultado true (1); de lo contrario, da como resultado false (0).

& Y Si todas las subexpresiones resultan verdaderas, la expresión completa da como resultado true (1); de lo contrario, da como resultado false (0).
| O Si cualquiera de las subexpresiones resulta verdadera, la expresión da como resultado true (1); de lo contrario, da como resultado false (0).

Signos de igual en las expresiones

El operador de signo igual ( = ) significa cosas diferentes según el tipo de expresión con la que esté trabajando.

Las expresiones que se utilizan en las declaraciones de asignación asignan una expresión como el valor de una variable. El signo igual que se utilizan en estas declaraciones representa la asignación del valor del lado derecho de la expresión a la variable del lado izquierdo.

En otras expresiones, el signo igual indica la evaluación de igualdad. Por ejemplo, en la expresión algebraica x = 3 * (5 10), el signo igual significa que x representa el valor resultante de la expresión algebraica 3 * (5 10). En este caso, x = 45. Puede utilizar esta expresión algebraica en una declaración de asignación para asignar a una variable el valor de la expresión x. Sin embargo, si se usara la misma expresión como booleana, se evaluaría como verdadera o falsa dependiendo del valor de x.

Las expresiones booleanas se utilizan normalmente en los scripts Studio. Si en estas expresiones utiliza un signo igual como operador, compara el valor del lado izquierdo del signo igual con el valor del lado derecho para determinar la igualdad. Si necesita cambiar el valor de una variable que se usa en una expresión booleana, utilice en una acción Snippet una acción ASSIGN o una declaración ASSIGN.