Analytics 脚本基础知识

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

说明

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

命令

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

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

提示

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

示例:如何使用 CLASSIFY 命令

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

  • ON – 指定按照表的哪个域进行分类
  • SUBTOTAL – 指定要在输出中小计的可选域
  • TO – 指定要将 CLASSIFY 命令的结果写入到的表

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

重要命令语法说明

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

注释

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

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

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

数据类型

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

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

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

表达式

表达式是任何具有值的语句。 最简单的表达式是一个字面量(如 2"test"),但表达式以计算的形式出现,并且可以是您能够想象出来的由运算符、条件、函数和值组成的任意有效组合:

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

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

函数

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

说明

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

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

示例

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

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

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

变量

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

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

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 将条件性逻辑实现为一个 IF 命令和该语言中许多命令上的可选参数。

提示

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

IF 命令

IF v_counter > 10 CLASSIFY ON 客户编号

IF 参数

CLASSIFY ON 客户编号 IF 州 = 'NY'

循环

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

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