Dynamic script variables

Dynamic variables compute their own values by executing statements and logical expressions. A dynamic variable assigns itself the result of a calculation or operation. The dynamic variable types are dynamic string, dynamic number, and dynamic True/False (Boolean). 


In the user interface, dynamic variables are designated by a lightning bolt symbol to differentiate them from other variable types. The value of a dynamic variable is the result of JavaScript-like statements, which can include selected Math.js expressions and additional functions developed by Genesys. See arithmetic operators and functions, the MathJS website, and additional functions you can use in dynamic variables. A logical expression in a dynamic variable can evaluate the state of other variables.


Note: Many examples in the MathJS documentation are written in JavaScript. PureCloud script designers should drop “math.” prefixes from the beginning of each expression. For example, if the documented MathJS expression is math.add(1,3), convert that to add(1,3) in your dynamic variable. Or, if example code in the MathJS documentation is something like math.fraction(numerator, denominator), the equivalent dynamic number variable is the fraction(numerator, denominator) part.

As for assigning to the dynamic variable, you don’t do that explicitly; the last value evaluated is assigned to the dynamic variable. For example, if you enter these expressions as a dynamic variable:

x = 5; y = x + 2; x 

これらの 3 つの式は上から下へと評価されます。最後の式の値が動的変数に割り当てられます。この例では、x が 5 という値であり、この値が動的変数に割り当てられます。

例 1:動的な数値を使用して、フォームでユーザーの入力値を計算する


図は、デザイン モードでの入力フォームを示します

デザイン モードでは、入力ボックスのバーティカル スタックがユーザーの入力を促します。

図は、プレビュー モードでのフォームの外観を示します

プレビュー モードでまたは実行時に、フォームに入力された値は dNum_TestNum 変数のステートメントにより計算され、上のような結果が返されます。

dNum_TestNum 変数には、以下のように、この計算が実行される数式が含まれます。

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



10 + 10 - 4 * 2 / 2 + 2.1

計算で使用される 1 つの変数が変わると、計算が実行されます。

例では、dNum_TestNum に保存された結果は 18.1 です。

Example 2: Use a dynamic True/False (Boolean) to determine whether numeric variables match

In this example, a dynamic Boolean variable returns true if numeric inputs match or false if they don’t match.

図は、2 つの数値を持つフォームのデザインを示します

In design mode, the page shows two numeric inputs whose values are stored in numeric variables. Code in a dynamic Boolean compares them for equality.


プレビュー モードでまたは実行時に、フォームに入力された値が等しいかどうかが比較されます。


dBool_Basic の式:

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

図の値では、2 は 1 と等しくないため、dBool_Basic の値は false です。


例 3:文字列の操作

In the next two examples, dynamic string variables parse and rewrite user input. An expression in the dStr_Exp variable rewrites text typed by the user to “This is fun.” An expression in dStr_Test inverts case when a check box changes state.

図は、デザイン モードでのコンポーネントと変数の外観を示します

ユーザーによるテキスト入力は str_overwrite に保存されます。この式を実行している動的変数 dStr_Exp が以下に示されています:

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

プレビュー モードでまたは実行時に、入力されたテキストは書き換えられます。この文字列は str_overwrite の値が変わると書き換えられます。


[大文字と小文字の切り替え] チェック ボックスは、dStr_Test の大文字と小文字を切り替えます。式:

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))) 

文字列を大文字から小文字に、またはその逆にするには、チェック ボックスを選択します。