解析开发最佳实践

分析脚本支持您可在常规脚本中使用的大多数命令。 但是,您必须确保分析脚本无需用户交互即可运行,并且它们不包括在部署环境中处理分析脚本的引擎所不支持的命令。

分析脚本支持所有 ACLScript 函数。

通常最佳做法

每个机器人或分析应用程序使用一个 Analytics 项目

为每个机器人或分析应用程序创建一个新的 Analytics 项目。 该项目必须包含构成该机器人或分析应用程序的所有分析脚本以及任何必需的子脚本。

对于分析应用程序,该项目还必须包含任何分析脚本所需的任何 Analytics 表。

在本地测试

在将分析脚本部署到目标环境之前,在本地测试所有分析脚本。 确保分析脚本按预期方式运行,并且它们不需要用户交互。

有关详细信息,请参见开发分析脚本

使用一致的数据连接进行测试

如果分析脚本使用 ODBC 数据源,则要在本地测试该解析,必须在您的本地计算机上配置与将运行该分析脚本的环境中的连接完全相同的 ODBC 连接。

对于被分发以供在分析应用程序窗口中使用的分析脚本,最终用户必须在其计算机上配置完全相同的 ODBC 连接。

避免使用绝对文件路径

除非您确信在运行该分析脚本的环境中存在完全相同的文件路径,否则,请避免在分析脚本中使用绝对文件路径(例如,C:\results)。

通过使用相对文件路径(如 \results),您可以在本地开发和测试分析脚本,然后在另一个环境中部署它们,而无需该另一个环境具有完全相同的目录结构。

使用 SET 作为首选项设置

使用 SET 命令可指定分析脚本所需的任何首选项设置。 如果您未在分析脚本中指定首选项,则会使用默认的 Analytics 首选项。 将 SET 命令放在分析标头之后、任何分析脚本逻辑之前。

请勿在结果或数据输出表中使用计算域

请勿在任何您打算在运行分析脚本的会话上保持的输出表中使用计算域。

对于被在解释中持续使用或者被作为后续脚本输入的结果和数据表而言,如果它们包含计算域,则可能显示意外的值 计算值依赖于在首选项文件 (.prf) 中定义的或者由 SET 命令定义的设置,因此,不同的环境可能生成不同的值。

如果您需要保留计算域中的值,请将 EXTRACT 命令与 FIELDSALL 选项结合使用,以便将该域转换为结果或数据表中的物理域。 有关详细信息,请参见 EXTRACT

加密数据连接密码

为避免在分析脚本中使用纯文本的数据源密码,请使用 PASSWORD 分析标记。 此标记在运行分析脚本前提示用户输入密码,并且加密所输入的值。

在从 HighBond 导入或者向其导出时,请使用密码。

在从 HighBond 导入或者向其导出的任何命令中,PASSWORD 参数都是必需的。

  • IMPORT GRCRESULTS
  • IMPORT GRCPROJECT
  • EXPORT... ACLGRC

没有 PASSWORD 参数,该命令会在机器人应用程序、Analytics Exchange 或分析应用程序窗口中失败。

当您在命令中使用 PASSWORD 参数时,您还必须在分析标头中指定一个关联的密码标记。 有关详细信息,请参见 PASSWORD

说明

在 Analytics 中运行导入和导出命令时,PASSWORD 参数不是必需的,因为会自动使用当前用户的 HighBond 访问令牌。

避免用户交互

分析脚本必须能够在没有用户交互的情况下运行。 如果分析脚本中的命令尝试创建一个对话框,则部署环境中的引擎停止处理该分析脚本,并且在日志中输入一个错误。

将用户交互命令替换为解析标记

请勿使用需要用户交互的 Analytics 命令。 请将其替换为解析标头中的等效解析标记。 分析标记使用户可以在该分析脚本运行之前提供输入值。

不使用 替换为
DIALOG //TABLE, //FIELD, //PARAM
ACCEPT //TABLE, //FIELD, //PARAM
PASSWORD //PASSWORD
PAUSE 不等效

准则

  • 交互式命令要避免分析脚本处理失败,请移除所有交互式命令。
  • SET SAFETY 要确保可以根据需要覆盖文件,而无须显示确认对话框,请在分析脚本的开头添加 SET SAFETY OFF 命令。

    请在分析脚本的末尾添加 SET SAFETY ON 命令以恢复默认行为。

  • OK 参数要防止确认对话框导致分析脚本崩溃,请在任何通常显示确认对话框的命令之后添加 OK 参数:
    • RENAME
    • DELETE

检查脚本语法

Analytics 提供了一个工具,以检测导致分析脚本失败或者要求在您的本地环境和部署分析脚本的环境之间进行校正的脚本语法。 该工具仅提供警告,您仍然可以自由地提交或导入包含警告的解析脚本。

该工具的检查内容

该工具检查项目中的所有脚本中是否存在下列项:

  • 任何需要用户交互的命令
  • 任何绝对文件路径
  • 对外部脚本的任何调用

何时执行该检查

脚本语法检查是在您向机器人应用程序提交脚本时自动执行的。

默认情况下,自动语法检查功能被启用。 如果您想要禁用它,请在选项对话框(工具 > 选项 > 界面)中选择提交脚本前禁用脚本语法检查

手动执行检查

您可以手动执行脚本语法检查。 您可能需要首先将检查脚本 按钮添加到 Analytics 工具栏。

  1. 如有必要,请向 Analytics 工具栏添加检查脚本按钮:
    1. 双击该工具栏上的空白位置以打开自定义工具栏对话框。
    2. 可用工具栏按钮列表中,选择检查脚本按钮并单击添加
    3. 当前工具栏按钮列表中,选择检查脚本按钮,然后单击上移下移以更改该按钮的位置。

      按钮在工具栏中从上至下的顺序,对应于它们在工具栏中从左至右的顺序。

    4. 单击关闭保存更改。

  2. 在该工具栏上,单击检查脚本

    出现一条消息,告诉您该项目中的脚本语法是有效的,或者指出一个或多个警告。

  3. 执行以下操作之一:
    • 更正任何生成警告的脚本语法,然后再次单击检查脚本 以确保相应的警告不再出现。
    • 请确保部署环境包含与该分析脚本中指定的路径或外部脚本一致的目录结构或外部脚本。

有关在 AX 服务器上运行的分析脚本的最佳开发实践

在 Analytics 中开发

主要在 Analytics 中开发分析脚本及其支持脚本,然后再将它们导入到 AX 服务器。

作为一项便利功能,AX 客户端脚本编辑器的确允许您添加新的分析脚本或子脚本,或者编辑现有分析脚本或子脚本。 此功能对于微调分析脚本的行为很有用,这样就无须将分析脚本导出到 Analytics,然后再重新导入到 AX 服务器。 但是,微调之外的分析脚本开发工作在 Analytics 中更容易完成。

将相关文件与 Analytics 项目存储在一起

数据库配置文件等相关文件应与 Analytics 项目存储在同一文件夹中,但必须分别导入到 AX 服务器。

请避免使用 AX 服务器上不支持的命令

  • 不支持被链接到 z/OS 版 Analytics 服务器的直接数据库服务器表
  • NOTIFY 命令仅支持 SMTP 消息。 不支持 MAPI 和 VIM 邮件协议
  • 要使用 PRINTTO PRINT 命令,服务器上必须配置默认打印机
  • 不支持 SAVE GRAPHPRINT GRAPH 命令
  • 不要在分析脚本中使用 SET LEARN 命令

最大程度地减少 AX 服务器表事务

通过尽可能减少访问 AX 服务器上的表的次数,优化分析脚本的性能。

  1. 使用 FILTER 命令选择所需的记录。
  2. 使用 EXTRACT 命令仅提取所需的域。

精简数据集将在由 AX 引擎运行分析脚本的服务器上以本地方式进行处理。

当数据文件不与 AX 服务器或处理该分析脚本的 AX 引擎节点位于同一服务器上,并且未在 AX 服务器配置 Web 应用程序中选中复制分析数据选项时,需要这样优化分析脚本。

低效分析脚本示例

OPEN 大表 
SET FILTER TO 交易日期 >= `20091201` AND 交易日期 < `20100101` 
COUNT 
TOTAL 金额 
CLASSIFY ON 帐户 ACCUMULATE 金额 TO 交易分类帐户

高效分析脚本示例

OPEN 大表 
SET FILTER TO 交易日期 >= `20091201` AND 交易日期 < `20100101` 
EXTRACT FIELDS 交易日期 描述 帐户 类型 金额 TO 大表 
OPEN 大表 
COUNT 
TOTAL 金额 
CLASSIFY ON 帐户 ACCUMULATE 金额 TO 交易分类帐户

以后台模式访问 SAP 数据

使用 Direct Link,以后台模式从 SAP ERP 系统访问数据。