Variables

Las variables son marcadores de posición que almacenan valores que pueden cambiar. Úselas cuando sea diferente un valor cada vez que se ejecute el script. Por ejemplo, ANI es una variable que contiene la ANICerrado También conocido como identificador de llamadas. Muestran el número de teléfono de una llamada de voz entrante., o número de teléfono, de la persona que llama. Cuando se usa ANI en un script, contiene la identificación de llamada del contacto. Cada vez que se ejecuta el script, maneja un contacto diferente, por lo que el valor de ANI cambia.

Puede crear sus propios variables en cualquier momento que necesite una. Las variables pueden contener valores únicos. También pueden contener objetos dinámicos de datos y arreglos.

Algunas variables utilizadas en Studio los scripts están definidos por el sistema. Esto significa que son parte del código dentro StudiocomportamientoCerrado Realiza un proceso dentro de un estudio de secuencias de comandos, tales como la recogida de datos de clientes, reproducir un mensaje o la música, o la colocación de un contacto a un agente. para que no tengas que crearlos. Hay dos tipos de variables definidas por el sistema:

  • Variables reservadas: Variables de solo lectura que usted puede utilizar cuando necesite incluir un tipo específico de información en su script.
  • Variables predefinidas: Las variables que ya están definidas. Se pueden escribir, por lo que puede asignarles un valor.

Pruébelo

Descargue el script de Ejemplos de Variables 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.

Resumen de la sintaxis de las variables

La siguiente lista resume la sintaxis de las variables. Se encuentra disponible más información sobre estos puntos en otras secciones de esta página.

  • Cree y asigne un valor a una variable usando una ASSIGN acción o una Snippet acción. En un Snippet, puede utilizar la ASSIGN palabra clave cuando declare una variable. Es opcional, pero muy recomendable. Utilice esta sintaxis en un SnippetASSIGN <var name> = <var value> o <var name> = <var value>.

  • Al asignar valores a una variable:
    • Los valores de cadena y fecha/hora deben ir entre comillas simples o dobles. Por ejemplo:  ASSIGN life = "forty-two"
    • Para asignar un valor de fecha/hora que se usará con funciones de fecha/hora, coloque un signo de gato ( # ) frente al valor, pero fuera de las comillas dobles. Por ejemplo: ASSIGN var = #"02/09/2023". Si no se utilizará el valor de fecha/hora con las funciones de fecha/hora, no es necesario utilizar el carácter de gato. Sin embargo, sin el signo de gato, el valor es un tipo de cadena, no un tipo de fecha/hora.
    • Los valores numéricos no necesitan ir entre comillas. Si pone un valor numérico entre comillas, se le trata como una cadena a menos que se evalúe en una expresión matemática.
    • Las expresiones numéricas y booleanasCerrado Un tipo de datos que tiene dos valores posibles: verdadero y falso. no pueden ir entre comillas. Si se ponen estas expresiones entre comillas, se les trata como una cadena. Por ejemplo: ASSIGN myVar = var2 > 42 se evalúa como verdadero o falso según el valor de var2. Sin embargo, ASSIGN myVar = "var2 > 42" da como resultado que el valor de myVar sea literalmente var2 > 42.
    • Los valores booleanos no deben ir entre comillas.
    • Utilice secuencias de escape si necesita incluir los siguientes caracteres en un valor de cadena: comillas dobles ( " ), comillas simples ( ' ), tabulador de llave abierta ( { ) (ASCII 9), retorno de carro (ASCII 13), avance de línea (ASCII 10), retroceso (ASCII 8), nulo.
  • Al sustituir el valor de una variable en una cadena: 
    • Ponga las variables entre llaves. Por ejemplo: ASSIGN myVar = "el significado de la vida es {vida}"
    • Si la variable es un objeto dinámico de datos, debe hacer referencia a una propiedad dentro del objeto. Por ejemplo: ASSIGN myVar = "el significado de la vida es {anObj.thisProperty}". Hacer referencia únicamente al objeto generará un error.
    • Si la variable contiene un array, debe incluir el índice del valor que desee asignar. Por ejemplo: ASSIGN myVar = myArray[4].
  • Al asignar el valor de una variable a otra:
    • No necesita comillas dobles ni llaves. Por ejemplo:  ASSIGN myVar = var2. Esto genera que se asigne una copia del valor de la variable a myVar.
    • Si una variable contiene un arreglo, puede asignarla a otra variable.
    • Si una variable es un objeto, solo puede asignarla a otro objeto.
  • Cuando haga referencia a las variables en las propiedades de la acción Studio, generalmente se aplicarán los siguientes lineamientos. Consulte siempre la página de ayuda en línea para conocer la acción que esté utilizando, ya que existen excepciones a estas declaraciones.

    • Las propiedades esperan una variable o datos. Los datos pueden consistir en literales o variables. Cuando una propiedad espera datos, generalmente puede aceptar un literal o una variable. Sin embargo, existen excepciones, así que consulte siempre la ayuda en línea para la acción si no está seguro de qué espera una propiedad.
    • Si la propiedad espera un nombre de variable, ingrese el nombre de la variable sin llaves.

    • Si la propiedad espera datos y desea utilizar la sustitución de variables, incluya el nombre de la variable entre llaves: {varName}.

Tipos de datos y escritura implícita

Los tipos de datos definen qué tipo de datos contiene una variable y cómo deben usarse en el programa. En Studio, las variables pueden tener los siguientes tipos de datos:

  • Cadena: El valor de la variable contiene caracteres alfanuméricos y especiales, como puntos, comas y guiones bajos. Los valores en cadenas deben estar entre comillas dobles.
  • Numérico: El valor de la variable es un número. Los valores numéricos no necesitan comillas dobles.
  • Fecha/Hora: El valor de la variable es una fecha, hora o ambas. Cuando se utilice un valor de fecha/hora con funciones de fecha/hora en Studio, el valor debe estar entre comillas e ir precedido por un signo de gato fuera de las comillas: var = #"23-11-2023".
  • Booleano: El valor de la variable es true o 1, o false o 0. No incluya valores booleanos entre comillas.

En muchos lenguajes de programación y para scripts, debe asignar explícitamente un tipo de datos a una variable cuando la cree. En Studio, las variables se escriben de manera implícita. El compilador Studio determina el tipo de cada variable al compilar el script. Esto significa que no necesita definir el tipo de datos para ninguna variable que utilice. La única excepción es cuando una variable contiene un valor de fecha/hora que desee usar con funciones de fecha/hora.

Inferencia del tipo

La escritura implícita afecta la forma en que se evalúan las variables. Por ejemplo, las comparaciones de variables tienen diferentes resultados dependiendo de qué tipo Studio reconoce las variables. El comportamiento predeterminado en Studio es que todo se trate como una cadena hasta que se requieran cálculos matemáticos. Por lo tanto, si puede evaluarse algo como un número, lo será, incluso si está entre comillas. Esto se conoce como inferencia del tipo.

El compilador Studio reconoce un valor como numérico incluso si está entre comillas. Las comillas significan que un valor es una cadena. Cuando se encierra un valor numérico entre comillas, Studio lo trata como una cadena a menos que lo use en el script en cálculos matemáticos. Por ejemplo:


var1 = "42"
var2 = 42

var3 = var2 + var1	

El resultado del ejemplo es var3 = 84. Studio infiere que el valor de var1 es numérico y lo trata como tal al evaluar la expresión en var3, aunque esté entre comillas dobles.

Crear Variables

Puede crear sus propias variables para usar en scripts. Puede hacer esto usando una acción Assign o una acción Snippet en el script.

Asignar Acción

La Assign acción le permite crear una única variable y asignarle un valor. Esto se hace utilizando las propiedades Variable y Value de la acción. El beneficio de Assign es que es una forma configurable y fácil de usar para crear variables.

Esta acción tiene otras propiedades que le permiten definir la manera en que se utiliza la variable. Usted puede:

También puede definir un valor de pantalla emergente en la Reqagent acción (en CXone Studio: acción)

Acción de Snippet

La Snippet acción es una forma basada en código para crear las variables . Con una sola acción, puede crear una o más variables, además de cualquier otro código personalizado que necesite incluir. La ventaja de usar Snippet es que si desea agregar posteriormente más variables a su script, puede agregarlas a la misma acción. No necesita agregar más acciones y rehacer los conectores en su script, como lo haría si hubiera usado originalmente una acción Assign.

Utilice cualquiera de los siguientes formatos de sintaxis:

ASSIGN varName = value o varName = value

Puede agregar propiedades a la variable que coincidan con las propiedades en la acción Assign:

  • Para incluir el valor de la variable en una pantalla emergente, agregue setscreenpop(1) al nombre de la variable.
  • Para guardar el valor de la variable en la base de datos, agregue savetodb(1) al nombre de la variable.

Por ejemplo:

ASSIGN epicPoem = "Beowulf"
epicPoem.setscreenpop(1)
epicPoem.savetodb(1)

Para ambas propiedades, el 1 es un valor booleanoCerrado Un tipo de datos que tiene dos valores posibles: verdadero y falso. que pone a la propiedad en true.

Datos clave sobre la creación de variables en Snippet acciones:

  • No es necesario declarar el tipo cuando declare una variable, a menos que sean variables de fecha/hora.
  • Usar la palabra clave ASSIGN es opcional. Sin embargo, es una mejor práctica utilizar esta palabra clave cada vez que cree una variable. Cuando usa Búsqueda Avanzada, puede ubicar rápidamente dónde se crea una variable si incluye esta palabra clave.
  • Si declara una variable en un subscript y desea que se devuelva al script de origen, agregue global: al principio del nombre de la variable. Esto lo denota como global en alcance.

Comillas simples, comillas dobles o sin comillas

Al asignar el valor de una variable a otra, algunos valores deben estar entre comillas. Los otros valores no necesitan comillas. Siga estas pautas:

  • Los valores en las cadenas deben estar entre comillas simples o dobles. Esto es cierto incluso si el nombre de la variable termina en un signo de dólar. Si no está entre comillas una cadena, el script asume que el valor es una variable. En el siguiente ejemplo, a1, a2y a1$ resultan en el valor literal Example. El valor de a3 y a3$ depende de si se ha declarado Example como variable. Si existe una variable Example en el script, a3 y a3$ se evalúan con el valor de Example. Si no existeExample, a3 y a3$ generan valores vacíos.

    ASSIGN a1 = "Example"
    ASSIGN a2 = 'Example'
    ASSIGN a1$ = "Example"
    ASSIGN a3 = Example
    ASSIGN a3$ = Example
  • Los valores numéricos no necesitan comillas. Pero puede usarlas si lo desea. En el siguiente ejemplo, b1, b2 y b3 todos evalúan a 123.

    ASSIGN b1 = "123" 
    ASSIGN b2 = '123' 
    ASSIGN b3 = 123
  • 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.
  • Los valores de fecha/hora deben estar entre comillas si los declara como tipo de fecha/hora.
  • Los valores booleanos no deben ir entre comillas.
  • Si está asignando a una variable un arreglo o el valor de un miembro de un objeto dinámico, no use comillas ni llaves con el nombre del arreglo o del miembro del objeto.

Crear variables con valores de fecha/hora

Studio no identifica implícitamente la fecha/hora como un tipo. Sin embargo, puede agregar un identificador antes del valor de una variable para declararla de este tipo. Únicamente necesita hacer esto si el valor se utilizará en las funciones de fecha/hora o si desea realizar operaciones con el valor.

Para declarar el valor de una variable como fecha/hora, utilice la sintaxis ASSIGN <varName> = #"<datetime>", donde <datetime> es el valor de fecha/hora que desea almacenar en la variable. Por ejemplo, date1 = #"7/15/2050 5:00pm" Si no se declara una variable como fecha/hora, puede usar la asdatetime() función para convertirla en una.

Algunas funciones que manipulan fechas y horas requieren que se declaren las variables como fecha/hora. Incluso si es correcto el formato de fecha/hora, la función no funcionará si no se declara correctamente la variable.También puede utilizar esta sintaxis para realizar operaciones sobre fechas y horas que de otro modo no podría realizar. Por ejemplo, puedes compararlos:

date1 = #"7/15/2050 5:00pm" 
date2 = #"7/15/2050 4pm"
x = date1 > date2 

El resultado es 1 (verdadero) porque el valor literal de date1 es mayor que el valor literal de date2.

Nomenclatura de variables

Nombre las variables siguiendo estas pautas:

  • Utilice caracteres alfanuméricos (a-z, A-Z, 0-9).

  • El primer carácter del nombre debe ser una letra.
  • Utilice el carácter de guión bajo ( _ ) y el signo de dólar ( $ ) en cualquier parte del nombre.
  • Si el último carácter en el nombre de una variable es un signo de dólar, elel valor se trata como texto.
  • No utilice los nombres de variables predefinidas o palabras reservadas.

Sustitución de variables

Cuando necesite usar el valor de una variable en su script, incluya el nombre de la variable en el código del snippet o en el campo de la propiedad de la acción.

Si está sustituyendo el valor de una variable por una cadena, incluya el nombre de la variable entre llaves. En una cadena, todo se trata como texto sin formato a menos que tenga el formato de variable. Por ejemplo:

ASSIGN foeName = "Grendel"
ASSIGN numberFoes = "3"
ASSIGN x = numberFoes
ASSIGN y = "One of Beowulf's foes is {foeName}. He faced {numberFoes} foes in all." 
ASSIGN z = "One of Beowulf's foes is foeName. He faced numberFoes in all." 

El resultados del ejemplo son

  • x=3.
  • y=One of Beowulf's foes is Grendel. He faced 3 foes in all.
  • z=One of Beowulf's foes is foeName. He faced numberFoes in all.

Cuando copie el valor de una variable en otra, no necesita usar llaves. Esto aplica a texto y valores numéricos. En el siguiente ejemplo, el resultado es:x=3 y z=Grendel:

ASSIGN numberFoes = "3"
ASSIGN name = "Grendel"
ASSIGN x = numberFoes 
ASSIGN y = name 

si está realizando operaciones matemáticas con variables, no necesita ponerlas entre llaves. En el siguiente ejemplo, el resultado es y=200.

ASSIGN a1 = "100"
ASSIGN a2 = "100.00"
ASSIGN y = (a1 + a2) 

Sustitución de variables en propiedades de acciones

Muchas propiedades de las acciones pueden aceptar variables en lugar de valores literales. Esto es así incluso si la página de ayuda de la acción no especifica que sea posible usar una variable para configurar una propiedad.

Usar variables en las propiedades de una acción permite reutilizar scripts. Por ejemplo, cuando utilice valores literales, si su organización tiene tres líneas de negocio, necesitará tres scripts de cola para definir la habilidadCerrado Se utiliza para automatizar la entrega de interacciones basadas en las habilidades, capacidades y conocimientos de los agentesde ACD, la gestión de prioridades y otras configuraciones por cada línea de negocio. Si utiliza variables para configurar las propiedades cuando el valor difiera entre líneas de negocio, puede tener un script en lugar de tres.

Cuando haga referencia a las variables en las propiedades de la acción Studio, generalmente se aplicarán los siguientes lineamientos.

  • Las propiedades esperan una variable o datos. Los datos pueden consistir en literales o variables. Cuando una propiedad espera datos, generalmente puede aceptar un literal o una variable. Sin embargo, existen excepciones, así que consulte siempre la ayuda en línea para la acción si no está seguro de qué espera una propiedad.
  • Si la propiedad espera un nombre de variable, ingrese el nombre de la variable sin llaves.

  • Si la propiedad espera datos y desea utilizar la sustitución de variables, incluya el nombre de la variable entre llaves: {varName}.

Pasar valores de variables de secuencia de comandos a secuencia de comandos

Los valores de las variables pueden pasar de un script a otro. Pueden pasar del:

  • Script de origen al Subscript: Todas las variables en el script de origen están presentes y disponibles para usarse en los subscripts. Pero están en alcance global. Para usarlas en los subscripts, debe anteponer el nombre de la variable con global:. Por ejemplo, global:varName Esto incluye las variables predefinidas del sistema y las variables que usted cree.
  • Del Subscript al Script de Origen: Las variables que declare en un subscript no pasan automáticamente al script de origen. Si desea pasar una variable personalizada de un script al script de origen, debe declararla como global. De igual similar, si declara variables en un subscript, debe declararlas como globales y hacer referencia a ellas como globales en el subscript y en el script de origen de nivel superior.

Puede ver variables globales en los rastreos del script. Quizá necesite habilitar esta opción en la ventana Salida de Rastreos al visualizar un rastreo.

Algunos datos pueden provenir de una fuente externa a sus scripts, como una llamada CRMCerrado Sistemas de terceros que administran cosas como contactos, información de ventas, detalles de soporte e historiales de casos. o una APICerrado Las API le permiten automatizar determinadas funciones conectando su CXone sistema con otro software que utiliza su organización.. Puede pasar estos valores a los subscripts o scripts generados utilizando la propiedad Parameters en la RunSub acción o la Spawn acción. La acciónBegin también tiene una propiedad Parameters. Configure la acción Begin en el subscript con los nombres de las variables para que reciban los valores pasados por RunSub o Spawn.

Si los datos que necesita pasar están contenidos en un objeto, primero debe convertirse el objeto a JSON o XML. Puede pasar la variable que contiene la cadena JSON o XML. En el segundo script, puede reformar los datos en un objeto, si así lo desea.

Comparación y evaluación de variables

El hecho de que Studio escriba implícitamente variables afecta en la manera en que aparecen en las expresiones evaluadas y en las comparaciones booleanasCerrado Un tipo de datos que tiene dos valores posibles: verdadero y falso..

Por ejemplo:

ASSIGN a1 = "100"
ASSIGN a2 = "100"
ASSIGN y = (a1 = a2)

En este ejemplo, la expresión y = (a1 = a2) resulta y = 1 (verdadera).

Forzar comparación como texto

Puede forzar que se considere una variable como texto incluso si su valor es numérico. Puede hacer esto de dos maneras:

  • Agregue un signo de dólar al final del nombre de la variable. Por ejemplo: varName$ = 42. Al hacer una comparación, únicamente una de las dos variables necesita un sufijo con el signo de dólar.
  • Ponga los nombres de las variables con llaves y comillas dobles. Por ejemplo, y = ("{a1}" = "{a2}")

Cuando el nombre de una variable termina en un signo de dólar, todas las operaciones booleanasCerrado Un atributo de información que define cómo se usa en un programa, como entero (números que se pueden manipular) o booleano (verdadero/falso). (=, >, <, >=, <=) que utilizan esa variable tratan el valor como texto. Por ejemplo:

ASSIGN a$ = 20
ASSIGN b = 100
ASSIGN x = a$ > b

En este ejemplo, la variable x es 1 (verdadero). Porque la variable a$ termina con un signo de dólar, se trata al valor 20 como texto. Esto significa que a$ > b es una comparación de 20 y 100 como cadenas de texto y no enteros. Al comparar como texto, 20 es mayor que 100 porque 20 comienza con un2 y 100 comienza con un1. Sin el signo de dólar en el nombre de la variable, x = a > b es 0 (falso) porque se comparan los valores como números enteros. El número entero 20 no es mayor que el número entero 100.

Las Variables Reservadas y Predefinidas

Hay variables preexistentes en Studio. Son:

  • Variables Reservadas: Estas variables devuelven cierto tipo de información, como la hora actual o el ID de la zona horaria actual. Las variables reservadas son de solo lectura, lo que significa que un script no puede guardarles valores. Sólo existen para devolver información. Puede usarlas en su script cuando necesite ingresar la información que devuelven. Studio tiene 10 variables reservadas.
  • Variables Predefinidas: Estas son variables del sistema. Ya están definidas en Studio, por lo que puede usarlas en sus scripts sin crearlas. Utilice variables del sistema en sus scripts cada vez que necesite la información que contienen. Únicamente anule las variables predefinidas del sistema si se lo indica la ayuda en línea o un Representante de cuenta CXone. Puede obtener más información sobre las variables predefinidas en la página de Variables Predefinidas.

Variables globales

Las variables globales permiten declarar una variable en un subscript y hacer que se devuelva automáticamente al script de origen después de la Return acción. Cuando declara una variable global en un subscript, no necesita devolverla al script de origen con la acción Return.

Pueden crear una variable global variable que usa la Snippet acción o la Assign acción. Utilice la sintaxis siguiente al crear una variable global con Snippet:

ASSIGN global:<variable name>

ASSIGN global:<variable name>="{firstname} {lastname}"

Asegúrese de que no haya espacios entre los dos puntos y el nombre de la variable.

Si está utilizando la acción Assign, no incluya la palabra clave ASSIGN.

No necesita declarar las variables en el script de origen como globales. Limitar la declaración de variables globales a subscripts le brinda una pista visual sobre el script en el que esté trabajando. Cuando vea global:var, sabrá que está en un subscript.

Ejemplo de variables globales

El siguiente ejemplo muestra cómo usar variables globales.

Ver todas las variables en un script

Hay dos formas de ver todas las variables en su secuencia de comandos:

  • La pestaña Variables enStudio muestra todas las variables utilizadas en un script. Si esta pestaña está cerrada, ábrala haciendo clic en Validation > Windows > Variables.
  • También puede ver las variables utilizadas en un script cuandoejecutar un seguimiento. A medida que seleccione cada línea en la salida del seguimiento, son visibles las variables del script en ese punto en el panel de Variables. Puede hacer clic en cada línea del rastreo para ver cómo cambia el contenido de las variables a medida que avanza el script.

Redacción de variable

La redacción de variables elimina los valores de las variables de los seguimientos y registros generados por un script. Puede redactar variables y objetos.

Se configura el ocultamiento a nivel de script en el campo VariableRedaction de las propiedades de un script. Los valores eliminados se reemplazan con una cadena de caracteres X. La longitud del valor de la variable determina cuántas X se utilizarán. Una palabra eliminada de cinco letras daría como resultado cinco X. No es posible la eliminación parcial de una variable, como una parte de un número de tarjeta de crédito.

La redacción variable se produce a nivel de guión. No es una propiedad heredable. Si se transmite una variable modificada a otros scripts, por ejemplo con una acción RunScript o RunSub, esa variable no se modifica automáticamente en los scripts posteriores. Si desea que una variable se elimine siempre, debe configurar la redacción de variables en todos los scripts a los que se pueda pasar.

Las variables que se pasan a otros scripts tienen un alcance global. Para eliminarlas, debe incluir global: antes del nombre de la variable en el campo VariableRedaction para asegurarse de que se elimine.

La mejor práctica es no mantener nunca datos confidenciales en un script por más tiempo del necesario. Además de eliminar los valores de la variable, puede eliminar los datos de la variable. Se incluye la eliminación de datos en los pasos de la siguiente tarea.

  1. En Studio, haga clic en el lienzo del script para asegurarse de que no haya nada seleccionado.
  2. Haga clic en la pestaña Properties.
  3. Haga clic en el Ellipsis botón junto al campo VariableRedaction para abrir String Collection Editor.
  4. Ingrese los nombres de las variables que desea redactar. Coloque una variable por línea.
  5. Hacer clicOK.
  6. Si desea eliminar datos de la variable, coloque una acción Snippet en el script después de que se hayan utilizado los datos confidenciales y ya no sean necesarios.
  7. Haga doble clic en la acción Snippet y agregue lo siguiente a la pestaña Vista de Texto en la ventana del editor de Snippets:
    • Para un objeto dinámico de datos: DYNAMIC <object name>
    • Para una variable regular: ASSIGN <var name> = ""
  8. Haga clic en OK para guardar los cambios.