Las variables dinámicas calculan sus propios valores mediante la ejecución de declaraciones y expresiones lógicas. Una variable dinámica se asigna a sí misma el resultado de un cálculo u operación. Los tipos de variables dinámicas son cadena dinámica, número dinámico y verdadero / falso dinámico (booleano). 

La Figura muestra el rayo utilizado para designar que un tipo de variable es dinámico.

En la interfaz de usuario, las variables dinámicas se designan con un símbolo de rayo para diferenciarlas de otros tipos de variables. El valor de una variable dinámica es el resultado de declaraciones similares a JavaScript, que pueden incluir expresiones Math.js seleccionadas y funciones adicionales desarrolladas por Genesys. Ver operadores y funciones aritméticas, Referencia de la función MathJS, y funciones adicionales que puede utilizar en variables dinámicas. Una expresión lógica en una variable dinámica puede evaluar el estado de otras variables.

Cada tipo de variable dinámica le permite incrustar una expresión. Estas declaraciones definen el valor de la variable, potencialmente basado en otras variables. El resultado debe coincidir con el tipo de variable dinámica. Por ejemplo, el código de una cadena dinámica debe evaluarse como un valor de cadena.

Nota: Muchos ejemplos en el Documentación de MathJS están escritos en JavaScript. Los diseñadores de scripts de Genesys Cloud deberían dejar las "matemáticas". prefijos desde el principio de cada expresión. Por ejemplo, si la expresión MathJS documentada es math.add (1,3), convertir eso en añadir (1,3) en su variable dinámica. O, si el código de ejemplo en la documentación de MathJS es algo como math.fraction (numerador, denominador), la variable numérica dinámica equivalente es la fracción (numerador, denominador) parte.

En cuanto a la asignación a la variable dinámica, no lo hace explícitamente; el último valor evaluado se asigna a la variable dinámica. Por ejemplo, si ingresa estas expresiones como una variable dinámica:

x = 5; 
y = x + 2; 
x

Las tres expresiones se evalúan en orden descendente. El valor de la última expresión se asigna a la variable dinámica. En este ejemplo, x tiene un valor de 5, que se asigna a la variable dinámica.

Ejemplo 1: Utilice un número dinámico para calcular las entradas del usuario en un formulario

En este ejemplo, una variable numérica dinámica calcula el resultado de varios valores ingresados en un formulario.

La figura muestra el formulario de entrada en modo de diseño

En el modo de diseño, una pila vertical de cuadros de entrada solicita la entrada del usuario.

La figura muestra la apariencia del formulario en modo de vista previa

En el modo de vista previa o en tiempo de ejecución, los valores ingresados en el formulario se calculan mediante declaraciones en el dNum_TestNum variable, y se muestra el resultado.

los dNum_TestNum La variable contiene la fórmula que realiza este cálculo:

{{num_var1}} + {{num_var2}} - {{num_var3}} * {{num_var4}} / {{Num_TestNum}} + 2.1

La figura muestra la fórmula de cálculo en una variable numérica dinámica.

Para los valores que se muestran arriba, el cálculo es:

10 + 10 - 4 * 2 / 2 + 2.1

El cálculo se realiza siempre que cambia una de las variables que utiliza el cálculo.

En el ejemplo que se muestra, el resultado almacenado en dNum_TestNum es 18,1.

Ejemplo 2: Utilice un verdadero / falso (booleano) dinámico para determinar si las variables numéricas coinciden

En este ejemplo, una variable booleana dinámica devuelve cierto si las entradas numéricas coinciden o falso si no coinciden.

La figura muestra el diseño del formulario con 2 valores numéricos.

En el modo de diseño, la página muestra dos entradas numéricas cuyos valores se almacenan en variables numéricas. El código en un booleano dinámico los compara por igualdad.

vista previa_booleana_dinámica

En el modo de vista previa o en tiempo de ejecución, los valores ingresados en el formulario se comparan para determinar la igualdad.

La figura muestra cómo editar la variable.

La fórmula en dBool_Basic es:

{{num_dBoolTest}} == {{num_dBoolTest2}}

Para los valores mostrados, el valor de dBool_Basic es falso ya que 2 no es igual a 1.

El resultado se calcula siempre que cambia el valor de cualquiera de las variables de entrada.

Ejemplo 3: Manipulaciones de cuerdas

En los dos ejemplos siguientes, Las variables de cadena dinámica analizan y reescriben la entrada del usuario. Una expresión en el dStr_Exp variable reescribe el texto escrito por el usuario a "Esto es divertido". Una expresión en dStr_Test invierte el caso cuando una casilla de verificación cambia de estado.

La figura muestra la apariencia de componentes y variables en modo de diseño.

La entrada de texto por parte del usuario se almacena en str_overwrite. Debajo de eso está la variable dinámica dStr_Exp realizando esta expresión:

slice("This is fun.", 0 ,length({{str_overwrite}}))

En el modo de vista previa o en tiempo de ejecución, cualquier texto escrito se redacta de nuevo. La cadena se reescribe cuando el valor de str_overwrite cambios.

La figura muestra la apariencia de la página en tiempo de ejecución

La casilla de verificación Intercambiar inferior y superior alterna entre mayúsculas y minúsculas dStr_Test. Su fórmula es:

ifElse({{bool_swapLowerUpper}} == false, lower(slice({{str_HELLO worlds}}, 0, length({{str_HELLO worlds}})-6)) + " " + upper(slice({{str_HELLO worlds}}, length({{str_HELLO worlds}})-6)), upper(slice({{str_HELLO worlds}}, 0, length({{str_HELLO worlds}})-6)) + " " + lower(slice({{str_HELLO worlds}}, length({{str_HELLO worlds}})-6)))

Marque la casilla para invertir la caja de la cuerda.

Ejemplo 4: Utilizar una expresión regular para validar cadenas y números

En este ejemplo, una variable booleana dinámica devuelve true si la cadena de entrada coincide con la expresión regular proporcionada:

Scripter Variable Verdadero/Falso

La expresión regular utilizada aquí es ^\\d{1,4}$: - el regex principal es \d{1,4} (entre uno y cuatro dígitos): la barra se duplica (se escapa) porque es una cadena JavaScript, y se envuelve en ^  y $ para aplicar el patrón a las cadenas completas: por defecto, las coincidencias parciales están permitidas, así que sin esta envoltura, 12345 pasaría debido a la coincidencia parcial "1234".

Texto coincide con Regex

El texto coincide con Regex: cierto

El texto coincide con Regex: falso

Para más detalles sobre las Expresiones Regulares y su depuración, consulte Regexr.