技术参考指南

本帮助页面上的信息同时适用于 CXone StudioDesktop Studio

本节提供有关 Studio 中进行脚本编写的详细技术参考信息。这些信息一般适用于使用操作以及采用自定义代码片段编写脚本。在某些情况下,信息仅适用于一种或另一种脚本编写方法。

本页上的信息总结了使用 Studio 编写脚本时需要了解的基本脚本编写概念。本节的其他页面提供了更深入的信息。

脚本和代码片段结构

Studio 脚本可以包含在单个文件中,也可以由主脚本和单独文件中的一个或多个子脚本组成。每个脚本均必须:

  • Begin 操作开始。子脚本还必须从 Begin 操作开始。
  • terminating 操作结束,例如 End。子脚本以 Return 结束,该操作将脚本流程返回到主脚本。
  • 具有已定义的媒体类型。

在该脚本内,结构遵循您需要该脚本提供的行为所需的流程。您可以通过最适合您的方式组织和安排脚本中的操作流程。例如,您可以让流程从右到左或从左到右进行。同样,它可以从上到下进行。

关于脚本结构需要注意的一些事项:

  • 使用分支条件在脚本中创建分支。这使您能够涵盖在脚本中任何给定的时间点可能发生的许多可能的结果、变化或情况。您可以使用分支进行错误处理,也可以将其用于 IVR关闭 自动电话菜单,允许呼叫者通过语音命令、按键输入或两者进行交互,以获得信息、路由呼入的语音呼叫或两者。 菜单中的选项,或者基于 IF 操作的真/假路径。
  • 某些操作有多个可用的分支条件。您无需每次都全部连接它们。但是,始终连接 Default 分支很重要。如果其他条件都不适用,则这是脚本所采用的分支。如果发生意外情况,它可以防止联系人卡在脚本中的该位置。
  • 事件操作不与触发事件的操作相关联。它们在同一个脚本文件中开始一个新部分。新部分可以位于脚本文件中的任何位置。如果脚本中有多个事件操作,最好以一种便于以后查找的方式使它们保持井然有序。

除了语句逻辑顺序的限制外,代码片段对结构没有任何要求。它们可以保留单个 ASSIGN 语句,也可以保留由一系列嵌套语句和块组成的复杂脚本逻辑。如果您需要创建自定义函数,则必须使用代码片段。

您不仅可以使用片段来保留自定义代码。您还可以使用它们将变量赋值整合到更少的位置中。您可以将多个声明语句放入单个 Snippet 操作中,而不是每次需要添加变量时都使用 ASSIGN 操作。

您可以执行一些操作来使脚本更易于阅读。这可以帮助稍后可能需要使用该脚本的其他脚本编写者。您可以:

  • 更改每个操作的 Caption 属性。此属性的内容显示在脚本的画布工作区上。您可以添加单词或短语来帮助您了解每个操作的作用。例如,您可能想要指示该操作使用的技能、它播放的音乐文件,或者代码片段代码的作用。CXone Studio 中,属性名称为添加说明文字
  • 使用 AnnotationNote 操作在脚本中提供附加文档。在 Snippet 操作中,您可以添加注释
  • 遵循在 Studio 中编写脚本的其他最佳实践

语法

与所有编程语言一样,Snippet 也有必须遵循的语法规则。参考部分中的每个帮助页面都有一个关于语法的部分,其中涵盖了针对该语言元素的规则。您可以了解以下语法规则:

语法规则通过语法摘要加以描述。这些摘要使用某些约定来区分可选元素和必要元素。在语句帮助页面上了解有关这些约定的更多信息。

数据类型

数据类型描述了数据的表示方式以及可对数据执行的操作类型。许多编程语言都支持多种数据类型,这些数据类型区分不同类型的数字和字母数字表示法。Studio 并不做这些区分。在 Studio 中,值是以下类型之一:

  • 字符串:变量值包含字母数字和特殊字符,如句点、逗号和下划线。字符串值必须用双引号括起来。
  • 数字:变量值是一个数字。数值不需要双引号。
  • 日期/时间:变量值是日期、时间或两者兼有。当日期/时间值与 Studio 中的日期/时间函数一起使用时,该值必须用引号引起来,并在引号外加上井号:var = #"11-23-2022"。
  • 布尔值:变量值为 true1,或者 false0。布尔值不要用引号括起来。

创建变量时不需要像使用某些编程语言那样声明数据类型。在 Studio 中,变量为隐式类型。这意味着编译脚本时会自动确定类型。

数据类型是脚本编写的一个不可或缺的部分。您可以在有关数据结构表达式变量的帮助页面中了解有关 Studio 脚本中数据类型的更多信息。如果您使用函数,您需要了解您正在脚本中使用的数据类型。您还需要知道您正在使用的函数有什么期望,以及输出可能如何根据您使用它的类型而有所不同。

数据结构:变量、数组和对象

数据结构允许您存储脚本中使用的数据。您可以在需要时从数据结构中检索数据,或用其他数据替换数据。在其他编程语言中,数据结构可以有很多种类型,而且可能非常复杂。在 Studio 中,只有三种数据结构:

要创建其中任何数据结构,您可以使用声明语句来声明它。

表达式

表达式是脚本中比较值或产生值的任何内容。 以下均为表达式的示例:

  • x = 3(5+10)

  • y = 123 North Street
  • x ! = 5

表达式有不同类型,包括字符串、数字和布尔关闭 一种数据类型,它有两种可能值:真和假。。表达式在 Studio 脚本中有很多用途。它们用于:

  • 配置 Studio 操作或代码片段中的属性。
  • 在脚本中定义创建分支以及模拟决策的逻辑。
  • 为操作属性或在代码片段中提供文字值。
  • 提供数学或代数计算。

运算符

运算符是数学符号,指示对数字进行的数学或代数运算。Studio 支持所有标准数学和一些代数运算符。它还支持在布尔表达式中使用的布尔关闭 一种数据类型,它有两种可能值:真和假。运算符。这些是计算结果为 true 或 false 的表达式。您可以在某些语句中使用布尔值在脚本中创建决策机制。

声明

语句定义脚本执行时的操作。这包括创建变量、分配新值、执行计算以及根据给定条件做出逻辑选择。有些语句只执行一项任务,如为变量赋值。其他语句则会影响脚本的流程。语句按逻辑顺序执行,但每次运行脚本时,顺序都可能发生变化。

当使用操作编写脚本时,您一般不需要根据语句来思考。在代码片段中,您可以使用以下类型的语句:

  • 声明:使用声明语句声明或创建新变量、对象和函数。
  • 决策:使用决策语句可让代码片段根据您指定的条件选择要执行的任务。您可以使用它们来控制脚本中发生的事情的线性流程。
  • 循环:使用循环语句可让代码片段重复执行一项或一组任务,直到满足指定的结束条件。
  • 其他:这些语句允许您终止函数,在调试期间在 Snippet Editor 窗口中显示结果,以及在代码片段中包含网络服务代理 DLL。

有些语句具有执行相同操作的 Studio 操作。例如,ASSIGNIF 操作与您可以在代码片段中使用的 ASSIGNIF 语句执行相同操作。对于许多语句,在代码片段中使用它们是唯一选择。

保留字

Studio 有一些保留字,这些保留字不能用作脚本中变量和其他实体的名称。保留字包括以下名称:

如果您在脚本中使用保留字作为实体的名称,则会导致错误。您必须重命名该实体才能解决这个错误。

注释

注释允许您在脚本或代码片段中记录某些内容。您可以使用它们为自己或未来脚本编写者留下注释,或者解释脚本中某些内容的用途。

Studio 脚本中,您可以使用 Note 操作或 Annotation 操作添加注释。这两个操作都允许您向脚本画布添加注释。Annotation 操作以直观方式将注释放置在画布上。要阅读 Note 操作中的注释,您必须双击该操作。

在代码片段中,您可以通过放置两个正斜杠 ( // ) 来添加注释。可将注释放在自己的行中,或者放在声明的末尾。

您还可以在代码片段中使用注释来隐藏在脚本运行时您不希望包含在脚本中的代码行。这在解决问题时很有帮助。

函数

函数是创建要重用的代码的一种方法。您可以创建自己的函数,然后在想要使用该函数包含的代码时在脚本中的其他位置调用它们。Studio 还具有一些内置函数,您可以在无需在脚本中声明它们的情况下使用它们。

字符串处理

在代码片段中,您可以使用内置函数对字符串执行许多操作:

  • 连接它们
  • 将它们分割成子字符串
  • 搜索它们
  • 替换部分内容
  • 比较它们
  • 将它们从大写更改为小写,反之亦然。

在某些情况下,您可能需要指定涉及日期、时间或数字的字符串的格式。您可以使用指定的格式说明符来定义您希望脚本使用的格式。您还可以使用一些内置函数将字符串转换为不同的格式。

某些字符在不使用转义序列的情况下无法包含在字符串中。由于字符串必须用单引号或双引号引起来,因此如果在字符串中包含文字单引号或双引号,则脚本会将其解释为字符串的开头或结尾。转义序列告诉脚本该字符是一个文字,而不是它默认的符号。其他需要转义序列的字符为制表符、退格键和左大括号。