Analytics 脚本基础知识

ACLScript 是使您可以编程并自动执行 Analytics 命令的命令语言。ACLScript 的结构和组件简单而强大。

说明

如果您对脚本编写一无所知,请在阅读此内容前考虑访问“学校”以参加一些基本培训。有关如何编写脚本和如何使用 Analytics 的课程,请访问 accounts.highbond.com

命令

脚本中的每一行都执行一个 ACLScript 命令,并且以命令名称开头。命令是在 Analytics 中执行某种操作的指令。

命令名称后面跟一个或多个被指定为参数名参数值的参数。

提示

根据命令的不同,某些参数是必需的,某些参数是可选的。您不需要指定可选参数。如果省略它们,则命令要么在没有可选参数的情况下执行,要么使用默认值。

示例:如何使用 CLASSIFY 命令

以下示例显示了 CLASSIFY  命令以及下列参数:

  • ON – 指定要对目标表的哪些字段进行分类
  • SUBTOTAL – 指定要在输出中小计的可选域
  • TO – 指定 CLASSIFY 命令结果的输出表

请注意每个参数后面如何跟一个或多个参数值:

重要命令语法说明

  • 脚本行中的第一个单词必须是命令名称
  • 对于大多数命令而言,命令名称后面的参数的顺序无关紧要
  • 大多数命令要求您首先打开目标表,然后再执行命令,即在这些命令的前面添加 OPEN 表名称

注释

如同任何脚本编写语言,您可以使用 COMMENT 关键字在 ACLScript 中添加注释。使用注释可使您的代码更容易理解,并可与任何尝试阅读、使用、理解或更新您脚本的人进行交流。ACLScript 支持两个类型的注释:

  • 单行注释 COMMENT 之后的所有文本都被忽略,直至该行末尾为止
  • 多行注释块COMMENT 开始,每个后续行都被忽略,直至到达 END 关键字或空白行为止

有关详细信息和示例,请参见注释

数据类型

ACLScript 支持四个基本数据类型:

  • 逻辑类型是最简单的数据类型。逻辑数据表示真值:true (T) 或 false (F)
  • 数值类型包含数字 0 到 9,还可以包含一个负号和一个小数点
  • 字符是一个或更多字母数字字符组成的系列
  • 日期时间是以受支持的格式表示的日期、日期时间或时间值

每个数据类型都被 Analytics 区别对待,并且可被用在不同的命令和函数中。有关数据类型的详细信息,请参见数据类型

表达式

表达式是任何包含值或生成值的语句。最简单的表达式是文本值,例如 2"test"。但是,表达式通常以计算形式出现,可能是您能够想到的由运算符、条件、函数和值组成的任意有效但复杂的组合:

((2 + (3 - 2)) * 2) > ROOT(9,0)

表达式通常在 Analytics 中用来填充计算域或者作为条件性逻辑的输入。有关表达式的详细信息,请参见表达式

函数

函数是内置的例程,它们接受给定数量的参数并返回单个值。使用函数可操纵在命令中使用的域内容和变量。

说明

函数不会修改字段数据。函数会根据使用字段数据或变量作为输入的计算或算法,生成并返回一个新值。请将函数返回的值作为命令的输入。

函数以函数名称开头,后面直接跟一个左括号,然后跟一个由 0 或更多个作为参数传递给该函数的值组成的逗号分隔列表,最后是一个右括号。

示例

BETWEEN(, 最小值, 最大值) 函数接受三个参数,如果值落在该范围之内,则返回真;如果它落在该范围之外,则返回假:

  • – 要测试的表达式或域
  • 最小值 – 该范围的最小值
  • 最大值 – 该范围的最大值
BETWEEN(金额, 500, 5000)

有关函数的详细信息,请参见函数

变量

变量是用于存放值的临时存储位置。变量具有关联的标识符,使您可以引用和使用在您的计算机内存中存储的值。

ACLScript 使用 ASSIGNACLScript 命令创建一个变量并同时为其分配值:

ASSIGN v_age_in_years = 3

为了简单化,您可以省略 ASSIGN 关键字,但是 ASSIGN 被隐式地使用并且运行相同命令:

v_age_in_years = 3

说明

ACLScript 不支持空值。所有变量都必须具有一个关联值,则该值为受支持的数据类型之一。脚本解释器使用您用来分配值的数据格式和限定符来计算数据类型。有关详细信息,请参见数据类型

使用变量

创建变量后,您可以在您引用域名称或变量的任何位置引用它。您还可以使用 ASSIGN 命令为其重新分配一个新的值。

EXTRACT RECORD TO 'result.fil' IF age > v_age_in_years
v_age_in_years = 5

您还可以使用字符串内插或变量替代,通过将变量名称包裹在 % 字符中来将变量包括在字符串常量中。当 Analytics 遇到被替代的变量时,它会将占位符替换为其相应的值:

ASSIGN v_table = "erp_data"
OPEN %v_table%

有关变量的详细信息,请参见变量

控制结构

控制结构是脚本的一个基于给定的参数决定采取哪个方向的组件。ACLScript 提供了条件性逻辑和循环运行结构。

条件性逻辑

ACLScript 将条件性逻辑实现为一个 IFACLScript 命令和该语言中许多命令上的可选参数。

提示

您可以使用 IF 命令来控制命令是否运行,并且使用 IF 参数确定针对表中的哪些记录运行命令。

IF 命令

IF v_counter > 10 CLASSIFY ON 客户编号

IF 参数

CLASSIFY ON customer_no IF state = 'NY'

循环

LOOP 命令提供了 ACLScript 中的循环控制结构。只要控制测试表达式的求值结果为真,此命令就会处理循环内部的语句。

有关控制结构的详细信息,请参见 控制结构