动态脚本变量

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

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

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

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

注意: MathJS 文档中的许多示例 都是用 JavaScript 编写的。 Genesys Cloud 脚本设计者应该从每个表达式的开头删除 “math。” 前缀。 例如,如果记录的 MathJS 表达式是 math.add (1,3),则将其 转换为动态变量 中的 add (1,3)。 或者,如果 MathJS 文档中的示例代码类似于 math.fraction(分子、分母),则等效的动态数变量就是分数(分子、分母) 部分。

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

x = 5; 
y = x + 2; 
x

所有三个表达式都按自上而下的顺序进行计算 最后一个表达式的值将分配给动态变量。 在此示例中,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

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

在所示示例中,存储在 dnum_Testnum 中的结果 为 18.1。

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

在此示例中,如果数字输入匹配,则动态布尔变量返回 true 果数字输入不匹配,则返回 false。

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

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

dynamic_boolean_预览

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

该图显示了如何编辑变量

dbool_Basic 中的公式 是:

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

对于显示的值, dbol_Basic 的值假, 因为 2 不等于 1。

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

示例 3: 字符串操作

在接下来的两个示例中, 动态字符串变量解析并重写用户输入。 dstr_exP 变量中的表达式将用户键入的文本重写为 “这很有趣”。 当复选框更改状态时, DSTR_Test 中的表达式会 反转大小写。

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

用户输入的文本存储在 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)))

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

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

在此示例中,动态布尔变量返回真的如果字符串输入与提供的正则表达式匹配:

脚本生成器真/假变量

这里使用的正则表达式是^\\d{1,4}$: – 核心正则表达式是\d{1,4} (一到四位数字之间):斜杠被加倍(转义),因为它是一个 JavaScript 字符串,并且它被包裹在^  和$将模式应用于整个字符串:默认情况下,允许部分匹配,因此如果没有此包装,12345 将因部分匹配“1234”而通过。

文本与正则表达式匹配

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

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

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