决策语句
本帮助页面上的信息同时适用于 CXone Studio 和 Desktop Studio。
您可以让脚本根据您指定的条件选择要执行的任务。使用决策语句,您可以设计脚本以考虑不同的可能性或结果。这样,您就可以控制脚本中的线性流程。
这些语句的关键词是:
- IF:根据布尔 一种数据类型,它有两种可能值:真和假。表达式的求值结果选择要执行的选项。
- SELECT:执行一系列语句中求值为 true 的第一条语句。
- SWITCH:求值表达式,并将结果与定义的情况进行比较。它执行匹配情况中定义的操作。
决策语句始终需要条件代码块。代码块用大括号 (
- CASE:定义一组可能执行的语句之一。
- DEFAULT:定义默认 CASE。如果无法执行其他 CASE 语句,则执行此语句。
对每类语句的讨论都包括语法摘要。这些摘要使用某些约定来表示语句的各个部分,以及每个部分是必需的还是可选的。
IF 和 IF... ELSE 语句
说明:求值表达式并根据求值结果选择分支。
语法:
Studio 操作:If
详细信息:IF 语句求值 <expression>。脚本会根据表达式的求值方式执行第一组大括号 { ... } 中的代码。该表达式的求值结果必须为 true,否则脚本将不会执行代码。
如果要指定脚本在表达式求值为 false 时的操作,也可以包含 ELSE 语句。ELSE 是可选语句。当有两种可能的操作,而脚本希望在其中作出选择时使用它。当只有一种可能的操作时,如果希望脚本只在满足指定条件 (<expression>) 时执行该操作,请单独使用 IF 。
在属于 IF 语句一部分的表达式 <expression> 中,使用布尔 一种数据类型,它有两种可能值:真和假。运算符。您必须使用求值结果为 true 或 false 的表达式。例如,x=5 是一个有效的表达式,因为变量 x 的值要么等于 5,要么不等于 5。
除了用于乘法、除法、加法和减法的常规数学运算符外,您还可以使用以下运算符:
- 模运算符 (%)
- 幂/指数 (^)
- 整数除法 (\)
- 异或 (~)
常规数学运算顺序适用于所有表达式。括号中的任何内容首先作为子单元进行运算。指数/幂运算符的运算在后。乘法和除法运算次之,然后是加法和减法运算。在完成所有数学运算后,比较运算符最后进行运算。
布尔运算符
您可以在代码片段中使用以下布尔运算符。所有这些运算符都可用于
运算符符号 | 运算符名称 | 详细信息 |
---|---|---|
= | 等于 | 如果表达式的两边相等,则表达式的结果为 |
!= | 不等于 | 如果表达式的两边不相等,则表达式的结果为 |
> | 大于 |
如果表达式的右边小于左边,则表达式结果为 |
>= | 大于或等于 |
如果表达式的右边小于或等于左边,则表达式结果为 |
< | 小于 |
如果表达式的左边小于右边,则表达式结果为 |
<= | 小于或等于 |
如果表达式的左边小于或等于右边,则表达式结果为 |
& | 与 | 如果所有子表达式的计算结果均为 true,则整个表达式结果为 |
| | 或 | 如果任一子表达式的计算结果为 true,则表达式结果为 |
Studio 不支持在一个
IF A > B {
// Do something
}
ELSE {
IF A = B {
// Do something else
}
ELSE {
// Do this
}
}
示例
IF TEST = 1
{
ASSIGN contactID = "123456780"
ASSIGN customerName = "XYZ International"
ASSIGN CBWindowStart = #"{date} 8:00 AM"
ASSIGN CBWindowEnd = #"{date} 4:30 PM"
}
//String Comparison
IF customerName = "ABC Corporation"
{
ASSIGN contractLevel = "Gold"
}
ELSE
{
ASSIGN contractLevel = "Silver"
}
//Numeric Comparision
IF contactID % 10 = 0
{
ASSIGN logCall = 1
}
ELSE
{
ASSIGN logCall = 0
}
//DateTime Comparison
ASSIGN myTime = #"{time}"
IF myTime >= CBWindowStart && myTime <= CBWindowEnd
{
ASSIGN offerCallback = "True"
}
ELSE
{
ASSIGN offerCallback = "False"
}
SELECT 语句
说明:根据第一个求值为 true 的表达式执行一组命令。
语法:
详细信息:在 SELECT 语句中,脚本会从顶部开始求值每个 CASE <expression>,直到找到第一个求值为 true 的表达式。对于第一个 CASE <expression> 求值为 true 的表达式,SELECT 执行 CASE <expression> 大括号 [{ ... }] 内的代码。
如果没有一个 CASE <expression> 求值结果为 true,则脚本将执行可选的 DEFAULT { ... } 代码。
至少需要一条 CASE 语句。如果包含,DEFAULT { ... } 语句必须是 CASE 语句列表中的最后一个子句。
例如:
SELECT
{
CASE name="Odin" { agentid = 123 }
CASE name="Frigg" { agentid = 345 }
CASE name.length = 0
{
ASSIGN agentid = -1
ASSIGN error = "Invalid name"
}
DEFAULT { ASSIGN agentid = 999 }
}
SWITCH 语句
描述:求值指定的变量并执行匹配 CASE 定义的操作。
语法: SWITCH <var> <{CASE <literal> [{ ... }] [CASE <literal> [{ ... }]] [CASE ...] [DEFAULT [{ ... }]] }>
详细信息:
如果没有 CASE <literal> 与 <var> 匹配,则执行可选的
SWITCH 只能求值一个变量。不能求值表达式。如果使用表达式,脚本将无法运行。
至少应有一条 CASE。所有 CASE 语句必须具有相同的<literal>类型。第一条 CASE 决定了其余 CASE 语句的类型。如果任何 CASE 语句的类型与第一条 CASE 不同,编译器就会出错。以下是所有有效的文字类型:
- CASE "john"
- CASE 512
- CASE #"5/15/2050"
- CASE #"6/1/2050 7:00am"
- CASE #"7am"
例如:
IF TEST = 1
{
ASSIGN MyDate = "07/03/2023" //This date falls on a Monday
}
ASSIGN MyDow = MyDate.asdatedow
SWITCH MyDow
{
CASE 0 { ASSIGN NewToday = "Sunday" }
CASE 1 { ASSIGN NewToday = "Monday" }
CASE 2 { ASSIGN NewToday = "Tuesday" }
CASE 3 { ASSIGN NewToday = "Wednesday" }
CASE 4 { ASSIGN NewToday = "Thursday" }
CASE 5 { ASSIGN NewToday = "Friday" }
CASE 6 { ASSIGN NewToday = "Saturday" }
}
如果多条 CASE 使用相同的代码 { ... },则无需在每条后添加代码块。取而代之的是,应逐个列出 CASE 关键字,并在使用该代码的最后一个 CASE 后面列出代码。这就是所谓的 case 贯穿。只要 SWITCH 遇到的 case 确实有代码块,就可以这样做。以下示例显示了 case 贯穿。对于 CASE 1、2 和 3,输出值为 hi。对于 CASE 5 和 6,输出为 bye。
SWITCH x
{
CASE 1
CASE 2
CASE 3 { TRACE "hi" }
CASE 5
CASE 6 { TRACE "bye" }
}
用例:SWITCH 允许根据指定变量包含的内容产生特定结果。例如,可以让脚本求值一个包含地区代码的变量。您可以为每个可能的地区代码定义一个 CASE,然后让脚本为 state 变量添加一个与地区代码分配给的州相匹配的值。例如:
SWITCH areaCode
{
CASE 603 { state = "New Hampshire" }
CASE 614 { state = "Ohio" }
CASE 628 { state = "California" }
CASE 646 { state = "New York" }
CASE 667 { state = "Maryland" }
}
CASE 语句
说明:定义一系列可能执行的语句之一。与 SWITCH 或 SELECT 一起使用。
Studio 操作:
详细信息:CASE必须在 SWITCH 或 SELECT 语句的条件代码块中使用。添加一条或多条 CASE 语句,定义脚本可能执行的代码块。至少需要一条 CASE。
相关:包含DEFAULT一条语句,用于定义在指定 CASE 语句均不适用时使用的情况。
DEFAULT 语句
说明:定义当指定的 CASE 均不适用时使用的 CASE 代码块。与 SWITCH 和 SELECT 一起使用。
详细信息:DEFAULT必须与 SWITCH 或 SELECT 代码块一起使用,且必须至少有一条 CASE 语句。DEFAULT 不能单独使用。DEFAULT 始终是可选项。它必须是 CASE 语句列表中的最后一个子句。
ELSE 语句
说明:定义 IF 表达式求值为 false 时脚本执行的语句。
语法:
详细信息:ELSE 始终是可选项。如果要指定表达式求值为 false 时脚本要执行的操作,可以包含一条 ELSE 语句。当有两种可能的操作,需要脚本在其中做出选择时,可以使用该语句。