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.

dynamic_boolean_preview

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

z図は、変数の編集方法を示します

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

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