Variables

Variablesson marcadores de posición que almacenan valores que pueden cambiar. Úselos cuando no pueda codificar un valor en el script porque es diferente cada vez que se ejecuta el script.

Por ejemplo, ANI es una variable que contiene la ANIClosed 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. Además de las variables que contienen un valor, Snippet admite objetos dinámicos de datos y matrices. Estas son estructuras de datos que pueden contener más de un valor.

Algunas variables utilizadas en Studio los scripts están definidos por el sistema. Esto significa que son parte del código dentro StudiocomportamientoClosed 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 sólo lectura que puede usar cuando necesite incluir un tipo específico de información en su script.
  • Variables predefinidas: Variables que ya están definidas. Se pueden escribir, por lo que puede asignarles un valor.

Tipos de datos y escritura implícita

En muchos lenguajes de programación y secuencias de comandos, a las variables se les debe asignar un tipo de datos. El tipo define qué tipo de datos contiene la variable y cómo debe usarse en el programa. En Snippet, las variables pueden tener los siguientes tipos de datos:

  • Numérico: El valor de la variable es un número.
  • Cadena: El valor de la variable contiene caracteres alfanuméricos y especiales, como puntos, comas y guiones bajos.

En Snippet, las variables se escriben de manera implícita. Esto significa que no necesita definir el tipo de datos para ninguna variable que utilice. Por ejemplo, a varX se le puede asignar un valor de cadena en una declaración (varX = "hello") y un valor entero en otra declaración (varX = 1999). losRetazo El compilador determina el tipo cada vez que encuentra una variable.

Debido a que las variables se tipifican implícitamente, elRetazo El compilador determina el tipo de cada variable cuando compila el script. Esto significa que la misma variable se trata de manera diferente dependiendo de cómo la use en su script. La siguiente tabla muestra ejemplos de cada tipo de variable según lo que desee hacer con la variable.

Propósito variable Cadena Numérico
Asigne un valor literal TRUE 27
Asignar el valor de otra variable {LeftVM} NewRate
Usar en una expresión LeftVM = "VERDADERO" TOTAL> 0
Sustitución de variables Llamar desde {ANI} N/A
Cálculos N/A Tarifa por hora * 1,25 + 50

También puede crear objetos de datos de dinámica Estos son otro tipo de variable definida por el usuario. Pueden contener múltiples pares clave-valor en lugar de un solo valor.

Variables con valores numéricos

De forma predeterminada, los valores numéricos siempre se evalúan como números. Por ejemplo:

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

El resultado aquí es y = 1 (verdadero) cuando los valores se comparan como números. Si estos valores se compararan como texto, el resultado sería y = 0 (falso). Debido a que estos valores son ambos números, esta expresión se evalúa numéricamente.

Forzar comparación como texto

Puede forzar que un valor se trate como texto incluso si es numérico. Puede hacer esto de dos maneras:

  • Agregue un signo de dólar al final de la variable.
  • Rodee los nombres de las variables con llaves. Por ejemplo, y = "{a1}" "{a2}"

En el siguiente ejemplo, x da como resultado 20 + 100 y no 120 porque las variables se tratan como texto y no como números.

b = "100"
a$ = "20"
x = "a$ + {b}"

Cuando el nombre de una variable termina en un signo de dólar, todas las operaciones booleanasClosed 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 usan esa variable tratan el valor como texto. Por ejemplo:

a$ = 20 b = 100 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 el 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 y 20 no es mayor que 100.

Variables con valores de fecha y hora

Para las variables con valores de fecha y hora, puede agregar un signo de libra antes del valor para declararlo como un valor de fecha y hora. Algunas funciones o métodos que manipulan fechas y horas requieren que las variables se declaren como fecha y hora. Incluso si el formato de fecha y hora es correcto, la función no funcionará si la variable no se declara correctamente.

Para declarar una variable como una variable de fecha y hora, use esta sintaxis:

#"<datetime>", dónde<datetime> es el valor de fecha y hora que desea almacenar en la variable. Por ejemplo, date1 = #"7/15/2050 5:00pm"

Puede usar esta sintaxis para realizar operaciones en 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.

Crear Variables

Puede crear sus propias variables para usar en scripts. Como las variables en Snippet están escritas de manera implícita, no necesita declarar el tipo cuando declara una variable. Una variable puede contener valores de diferentes tipos en diferentes puntos del script. Esto significa que cuando crea una variable, puede declarar y asignar un valor en un solo paso. Por ejemplo, x = 10 declara x como una variable y asigna 10 como su valor.

Las variables se crean al incluir una acción Assign o una acción Snippet en el script.

Assign le permite crear una sola variable y asignar un valor a las propiedades Variable y Value de la acción. La acción también tiene otras propiedades. Por ejemplo, puede incluir el valor de la variable en la ventana emergente que se asigna en el nivel de habilidad o guardarlo en la base de datos.

Snippet le permite crear código personalizado de Snippet. Puede usar esta acción incluso si desea crear una sola variable. La ventaja de esta acción es que si más adelante desea agregar otras variables a su script, puede agregarlas a la misma acción Snippet. No necesita agregar acciones adicionales y rehacer los conectores en su script, como haría si hubiera usado originalmente una acción Assign.

En una acción Snippet, cree una variable usando la siguiente sintaxis:

ASSIGN varName = value

varName2 = value

Usar la palabra clave ASSIGN es opcional. Se recomienda 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 está creando un objeto dinámico de datos, use la palabra clave DYNAMIC en lugar de ASSIGN.

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 una variable global.

Comillas simples, comillas dobles o sin comillas

Al asignar valores a las variables, puede encerrar el valor entre comillas simples, comillas dobles o sin comillas. Hay algunas limitaciones sobre cuándo puede usar cada opción. Siga estas pautas:

  • Los valores de texto deben estar entre comillas simples o dobles. Esto es cierto incluso si el nombre de la variable termina en un signo de dólar. En el siguiente ejemplo, a1, a2 y a1$ todos evalúan a Example, pero a3 y a3$ ambos dan como resultado valores vacíos.

    a1 = "Example"
    a2 = 'Example'
    a1$ = "Example"
    a3 = Example
    a3$ = Example

  • Los valores numéricos se pueden encerrar entre comillas simples, dobles o sin comillas. En el siguiente ejemplo, b1, b2 y b3 todos evalúan a 123.

    b1 = "123"
    b2 = '123'
    b3 = 123

  • Las expresiones no se pueden encerrar entre comillas. Esto incluye matemáticas ybooleanoClosed Un tipo de datos que tiene dos valores posibles: verdadero y falso. expresiones Si encierra una expresión entre comillas, se trata como texto. En el siguiente ejemplo, c1 evalúa a 579 pero c2 da como resultado 123 + 456.

    c1 = 123 + 456
    c2 = "123 + 456"

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 subrayado (_) 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.

Sustitución de variables

Cuando necesite usar el valor de una variable en su script, especifique el nombre de esa variable en el código de Snippet o en el campo de propiedad de la acción.

Si el valor de la variable es numérico, puede usar el nombre de la variable sin formato adicional. Por ejemplo:

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

Si el valor de la variable es texto, debe formatearlo para que el script sepa que es una variable.  Para hacer esto, encierre el nombre de la variable entre llaves. Por ejemplo:

customerName = "Fenrir Lokison"
message1 = "The customer's name is {customerName}." 
message2 = "The customer's name is customerName."

La salida de message1 es The customer's name is Fenrir Lokison. La salida de message2 es The customer's name is customerName. Esto se debe a que el nombre de la variable no estaba entre llaves en message2, por lo que se trató como texto sin formato.

Al referirse a las variables enStudio propiedades de acción, use las siguientes pautas:

  • Si la propiedad espera un nombre de variable, ingrese el nombre de la variable sin formato adicional. Por ejemplo, la propiedad Variable de la acción Menu espera una variable, por lo que no se requiere un formato especial. La página de ayuda en línea para la acción que está configurando describe cada propiedad, incluso cuando una propiedad espera un nombre de variable.
  • Si se puede configurar la propiedad con un valor de texto o una variable, dé formato a los nombres de las variables con llaves, como  {variableName}. Esto diferencia las variables del texto estático. Por ejemplo, la propiedad Sequence en acciones tales como Menu o Play puede incluir texto y variables, por lo que lo configuraría con una entrada como "%Your account balance is" "${accountBalance}".

Sustitución de variables en propiedades de acciones

Muchas propiedades de acciones pueden aceptar variables en lugar de texto estático. 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, si su organización tiene tres líneas de actividad distintas, si usara valores estáticos necesitaría tres scripts de cola para definir la habilidad, la configuración de la gestión de prioridades, etc. de cada actividad comercial. En cambio, si usa variables para configurar aquellas propiedades donde el valor cambia entre una actividad y otra, podrá usar un solo script en lugar de tres.

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

Los valores de las variables pueden pasar de un script a otro. Todas las variables en un script de origen pasan automáticamente a un subíndice. Esto incluye variables de sistema predefinidas y variables que usted declaró.

Las variables declaradas en un subíndice no se devuelven automáticamente al script de origen. Si desea volver a pasar una variable de un subíndice al script de origen, debe declararlo como unvariable global.

Puede usar la propiedad Parameters en la acciónRunSub o la acciónRunScript para especificar las variables que desea pasar al subíndice que activa la acción. La acciónBegin también tiene una propiedad Parameters. Puede agregar los nombres de las variables que desea pasar al script actual. Esto es útil si tiene datos provenientes de una fuente diferente, como unCRMClosed Sistemas de terceros que administran cosas como contactos, información de ventas, detalles de soporte e historiales de casos. o unAPIClosed Las API le permiten automatizar determinadas funciones conectando suCXone sistema con otro software que utiliza su organización.llamar.

Objetos de datos dinámicos

Los objetos dinámicos de datos pueden contener varios valores que no tengan tipos de datos definidos. Puede usarlos para almacenar cualquier tipo de datos. OtroRetazo las variables sonescrito implícitamente, lo que significa que el tipo se determina cuando el Retazo compilador compila el código. El tipo de un objeto de datos dinámicos se determina cuando se ejecuta el script.

Los objetos de datos dinámicos pueden contener más de un par clave/valor. Puede utilizar el objeto en cualquierStudio acción en el script y acceda al valor que necesita usando la clave correspondiente. Esto le permite reducir el número de variables que utiliza en un script. Por ejemplo, en lugar de crear tres variables únicas, puede crear un único objeto de datos dinámicos:

DYNAMIC beowulfCharacteristics
beowulfCharacteristics.name = "Beowulf"
beowulfCharacteristics.occupation= "Hero" 
beowulfCharacteristics.foe = "Grendel" 

Puede crear objetos dinámicos de datos declarándolos en el código de Snippet o analizando JSON o XML. Tú también puedescrear a partir de las respuestas de las llamadas a la API REST.

Puede utilizar objetos de datos dinámicos para:

El caso importa cuando se hace referencia a objetos de datos dinámicos y sus propiedades. Por ejemplo, si intentara analizar el objeto dinámico de datos beowulfCharacteristics con ASSIGN fileContent = "{beowulfcharacteristics.files.file}", no devolvería nada. Esto se debe a que beowulfcharacteristics no es lo mismo que beowulfCharacteristics.

La cantidad de variables de datos dinámicos y objetos en un script puede afectarrastreo. Es posible que vea problemas de rendimiento para los scripts que contienen una gran cantidad de variables dinámicas. Cuantos más datos contengan, más tiempo puede llevar procesar cada acción.

Declarar objetos de datos dinámicos

Para declarar un objeto dinámico de datos, utilice la palabra clave DYNAMIC en su código antes del nombre de la variable y, después, agréguele atributos. Por ejemplo:

DYNAMIC beowulfCharacteristics
beowulfCharacteristics.name = "Beowulf"
beowulfCharacteristics.occupation= "Hero" 
beowulfCharacteristics.foe = "Grendel" 

Cree un objeto de datos dinámicos desde JSON o XML

Puede usar un objeto de datos dinámicos para analizar JSON. Defina el objeto de datos dinámicos y utilice el comando FROM para especificar los pares clave/valor JSON con esta sintaxis:

DYNAMIC var1 FROM '{ "key1": "apple", "key2": "banana", "key3": "carrot"}'

Si lo usa como un nombre de clave en una variable dinámica de datos, provocará un error cuando guarde el script o cuando el script ejecute la acción.

Crear un objeto de datos dinámicos a partir de una respuesta REST

Los objetos de datos dinámicos se crean automáticamente a partir de las respuestas de las llamadas a la API REST. Estas respuestas pueden estar en JSON o XML. Studiolos convierte en objetos de datos dinámicos en el script. Por ejemplo:

ASSIGN GetRequest = "<API Endpoint>"

ASSIGN DynamicReturn = Proxy.MakeRestRequest(GetRequest,"",0,"GET")

ASSIGN fileContent = "{DynamicReturn.files.file}"

En este ejemplo, MakeRestRequest devuelve un objeto dinámico de datos DynamicReturn. No necesitas usar la palabra clave DYNAMIC con esta variable, porque el script la convierte en objeto dinámico de datos de forma automática.

Para analizar el objeto dinámico de datos que contiene la respuesta REST, utilice ASSIGN fileContent = "{DynamicReturn.files.file}". Esto asigna el valor extraído ({DynamicReturn.files.fil}) a la variable fileContent. También puedes usar ASSIGN fileContent = DynamicReturn.files.file.$value para analizar la respuesta.

Convertir un objeto dinámico de datos a JSON o XML

Puede convertir el contenido de un objeto dinámico en una cadena JSON o una cadena XML. Esto serializa los datos en el objeto y los coloca en un formato que se puede transmitir a través de Internet.

Para hacer esto, use el método asjson() o asxml() con el objeto que desee convertir. En Studio, puede hacer esto en uno de dos lugares, ya sea en una acción Snippet o en la propiedad de la acción que necesita los datos convertidos del objeto.

Ambos enfoques funcionan por igual. Sin embargo, la ventaja de crear una variable en un Snippet para contener el objeto convertido es que facilita ver dónde está sucediendo la conversión. No necesita saber qué acción requiere los contenidos convertidos del objeto.

Para convertir un objeto en un Snippet, utilice la siguiente sintaxis:

ASSIGN varJSON="{myDynamic.asjson()}"

En la propiedad de la acción Studio donde necesita los datos JSON o XML, use el nombre de la variable que usó en el Snippet. Del ejemplo de sintaxis, configuraría la propiedad de la acción con varJSON.

Para convertir un objeto en la propiedad de la acción, configure la propiedad de la acción con el nombre del objeto y el método asjson() o asxml() en llaves. Por ejemplo: {myDynamic.asjson()}

Generar llamadas de API REST

Genere llamadas a la API REST y envíelas como JSON mediante el método asjson(). Por ejemplo:

DYNAMIC TokenInput
TokenInput.grant_type = "password"

TokenInput.username = "Grendel.Cainson"

TokenInput.password = "MadeUpPassword"
<additional TokenInput properties>
TokenJsonInput = "{TokenInput.asjson()}"
ASSIGN proxy = GETRESTProxy()

<ASSIGN additional variables>
ASSIGN TokenResponse = proxy.MakeRestRequest(TokenRequestURL,TokenJsonInput, 0, "POST")

En este ejemplo, se declara TokenInput como una variable dinámica con tres atributos, grant_type, username y password. TokenJsonInput se declara que contiene a TokenInput en forma de cadena usando el método asjson(). En la última línea del ejemplo, se declara que la variable TokenResponse contiene la solicitud REST, que luego se puede usar en el código de script para enviar la solicitud.

Variables reservadas

Las variables reservadas son variables definidas por el sistema de solo lectura. Debido a que son de solo lectura, un script no puede guardarles valores. Estas variables siempre devuelven cierto tipo de información. Muchos de ellos devuelven información sobre la fecha u hora actual. Studiotiene 10 variables reservadas, que se describen en la siguiente tabla.

predefinidoVariables

Las variables predefinidas son variables del sistema que ya están definidas. Debido a que ya están definidos, no es necesario que los declare. Es posible anular el valor esperado para las variables predefinidas, pero no se recomienda. Si anula el valor esperado, tenga cuidado para evitar consecuencias no deseadas en su secuencia de comandos.

Las variables predefinidas se agregan automáticamente a los scripts. Algunos provienen de secuencias de comandos del sistema que se ejecutan en segundo plano antes de que una interacción se enrute a sus secuencias de comandos. También se denominan variables del sistema. Otras variables predefinidas provienen de las acciones que agrega a sus scripts. Puedes usar elherramienta de rastreo para ver las variables en un script. A medida que hace clic en cada acción en el resultado del seguimiento, la pestaña Variables le muestra las acciones en el script en ese punto.

La siguiente tabla contiene algunas de las variables predefinidas más comunes. No todos los scripts contendrán todas las variables de la lista. Las variables predefinidas que están disponibles en una secuencia de comandos dependen del tipo de medio de la secuencia de comandos y de las acciones utilizadas en la secuencia de comandos.

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 acción Return. Cuando declara una variable global en un subscript, no necesita devolverla al script de origen con la acción Return.

Puede crear una variable global usando la acción Snippet o la acción Assign. Utilice la sintaxis siguiente al crear una variable global con Snippet:

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

Si está usando Assign, no es necesario incluir la palabra clave ASSIGN:

Global:<variable name>
Global:<variable name>="{firstname} {lastname}"

Las variables que declara en un script de origen se pasan automáticamente a subíndices. No necesita declarar las variables en el script de origen como globales.

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. Las variables se enumeran en la ventana Salida de seguimiento.

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 redactados se reemplazan con una cadena de caracteres X. La longitud del valor de la variable determina cuántosXse utilizan, lo que significa que una palabra redactada de cinco letras daría como resultado cinco X 's. La redacción variable parcial, como parte de un número de tarjeta de crédito, no es compatible.

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 ocultarlas, debe incluir global: antes del nombre de la variable para asegurarse de que esté oculta.

  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 botón de puntos suspensivos al lado del campo VariableRedaction para abrir el Editor de colecciones de cadenas.
  4. Ingrese los nombres de las variables que desea redactar. Estos nombres deberían corresponderse con las variables creadas en las acciones Assign en el script.
  5. Hacer clicOK.