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 中的循环控制结构。只要控制测试表达式的求值结果为真,此命令就会处理循环内部的语句。
有关控制结构的详细信息,请参见 控制结构