动态脚本变量

动态变量通过执行语句和逻辑表达式来计算自己的值。 动态变量为自己分配计算或操作的结果。 动态变量类型包括动态字符串、动态数字和动态 True/False(布尔值)。 

该图显示了用于指定变量类型为动态变量类型的闪电。

在用户界面中,动态变量由闪电符号指定,以区分它们与其他变量类型。 动态变量的值是类似于 JavaScript 的语句的结果,其中可以包括选定的 Math.js 表达式和 Genesys 开发的其他函数。 请参阅 算术运算符和函数MathJS 函数引用以及可在动态变量中使用的 其他函数。 动态变量中的逻辑表达式可以计算其他变量的状态。

每种动态变量类型都允许您嵌入表达式。 这些语句定义变量的值,可能基于其他变量。 结果必须与动态变量的类型匹配。 例如,动态字符串中的代码必须求值为字符串值。

Note: Many examples in the MathJS documentation are written in JavaScript. Genesys Cloud 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.

至于赋值给动态变量,你不会显式这样做;最后评估的值将分配给动态变量。 例如,如果将这些表达式作为动态变量输入:

x = 5; 
y = x + 2; 
x

所有三个表达式都按自上而下的顺序进行计算 最后一个表达式的值将分配给动态变量。 在此示例中,x 的值为 5,该值分配给动态变量。

示例 1: 使用动态数字计算用户在表单上的输入

在此示例中,动态数字变量计算表单中输入的多个值的结果。

该图显示了设计模式下的输入表单

在设计模式下,垂直堆叠的输入框会提示用户输入。

该图显示了预览模式下表单的外观

In preview mode or at run time, values entered on the form are calculated by statements in the dNum_TestNum variable, and the result is shown.

The dNum_TestNum variable contains the formula that performs this calculation:

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

该图显示了动态数字变量中的计算公式。

对于上面显示的值,计算结果为:

10 + 10 - 4 * 2 / 2 + 2.1

只要计算使用的变量之一发生更改,就会执行计算。

In the example shown, the result stored in dNum_TestNum is 18.1.

示例 2: 使用动态 True/False(布尔值)来确定数字变量是否匹配

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

该图显示了具有 2 个数值的表单设计

在设计模式下,页面显示两个数字输入,其值存储在数字变量中。 动态布尔值中的代码会比较它们的相等性。

dynamic_boolean_预览

在预览模式或运行时,会比较表单中输入的值是否相等。

该图显示了如何编辑变量

The formula in dBool_Basic is:

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

For the values shown, the value of dBool_Basic is false since 2 does not equal 1.

每当任一输入变量的值发生变化时,都会计算结果。

示例 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.

该图显示了设计模式下组件和变量的外观。

Text input by the user is stored in str_overwrite. Below that is dynamic variable dStr_Exp performing this expression:

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

In preview mode or at runtime, any text typed is reworded. The string is rewritten when the value of str_overwrite changes.

该图显示了运行时页面的外观

The Swap Lower and Upper check box toggles the case of dStr_Test. Its formula is:

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

选中该框可反转字符串的大小写。

示例 4: 使用正则表达式验证字符串和数字

In this example, a dynamic Boolean variable returns true if the string input matches the provided regex:

脚本生成器真/假变量

The regex used here is ^\\d{1,4}$: – the core regex is \d{1,4} (between one and four digits): the slash is doubled (escaped) because it is a JavaScript string, and it is wrapped in ^  and $ to apply the pattern to the whole strings: by default, partial matches are allowed so without this wrapping, 12345 would pass because of the partial match “1234”.

文本与正则表达式匹配

文本与正则表达式匹配: false

文本与正则表达式匹配: true

有关正则表达式及其调试的更多详细信息,请参阅正则表达式