脚本

Version 24.2.9039


脚本


知行之桥旨在通过工作流页面中配置的端口来处理复杂的数据集成用例。然而,一些边缘情况可能需要使用 ArcScript (一种内置于应用程序,以 XML 为基础的脚本语言)来扩展知行之桥的功能集。

脚本可以用来修改文件(内容、头部和文件名等),触发外部消息流,对不容易适应标准化格式的自定义数据进行建模,执行外部脚本和流程等。本节概述了 ArcScript 作为一种语言,以及支持的数值格式化器,关键字和运算器。

脚本 Hook

知行之桥提供三个主要的 hook 到脚本语言中:任意端口的事件,专用的 Script 端口和在 XML Map 端口中的 自定义脚本 选项。

事件脚本

每个端口都提供了在文件处理过程中的特定时刻执行自定义脚本的机会。

  • 发送前事件会在端口为发送/处理文件做好充分准备后,但在发送/处理实际发生之前发生。

  • 发送后事件在端口已经发送文件之后发生(注意,该事件仅适用于将文件发送到应用程序之外的端口,例如,将文件上传到远程服务器)。

  • 接收后事件会在端口创建新文件后触发;这个新创建的文件可能是从外部源接收到的文件(例如通过 AS2 接收消息),也可能是修改/转换知行之桥工作流中已有文件的结果(例如将 EDI 文件转换为 XML 会有一个新的 XML 文件被创建)。

    举个例子,可能需要在刚刚通过 AS2 接收到的文件中添加一个自定义头部。可以使用 ArcScript 编写如何确定头部值并将头部添加到文件中的逻辑,然后在负责接收文件的 AS2 端口的接收后事件中设置该脚本。

注意:不能使用事件脚本直接在流中创建文件,或通过流修改文件的内容。

事件中的错误处理

事件脚本的执行是由文件的成功发送或接收触发的,脚本中抛出的错误不会影响发送/接收操作的状态。出于这个原因,事件中的脚本应该被限制在保证成功或可以失败而不影响更广泛的工作流脚本中。

为了确保脚本中的异常导致文件停止处理,应将脚本移入下一节所述的专用 Script 端口中。这也允许将错误记录到日志,并利用知行之桥的重试功能来处理可能失败的操作。

Script 端口

知行之桥包含一个专用的端口,用于执行自定义脚本。Script 端口可以在工作流中通过向端口传输文件来触发(与其它端口一样),也可以通过接收自动化根据自动间隔执行。

Script 端口是通过 ArcScript 执行自定义逻辑的最灵活的上下文。此外,如果用专用的端口直观地表示脚本执行,而不是配置在另一个端口的事件中,那么知行之桥的工作流可能更容易理解和维护。

Script 端口可以通过 push 关键字生成输出文件,或者仅仅执行一些逻辑,而不生成任何输出。

XML Map 端口

XML Map 端口提供了一个可视化的设计器,用于将 XML 从一种结构转换到另一种结构。使用 XML Map 设计器的主要方法是将元素从源树结构拖放到目标树结构。这种简单的方法是通过脚本概念,来支持映射过程中可扩展的自定义处理。

XML Map 端口的表达式编辑器使用 ArcScript 的格式化器在映射期间动态地修改和格式化数据。这些表达式不需要脚本的其它方面操作,如设置变量和调用操作。

此外,XML Map 端口还有一个 自定义脚本 选项,可用于任何特定元素映射。在这些自定义脚本中可以使用 ArcScript 的全部功能集,以支持映射过程中的任意业务逻辑。这些脚本有一个独特的要求,即在脚本执行结束时,将 result.text 属性设置为输出值(应在映射的 XML 元素中设置的值)。

使用 ArcScript

本节包含 ArcScript 功能集的参考内容。

简介

简介页面涵盖了 ArcScript 语言的核心概念,并包含了各种可供参考的脚本示例。如果是 ArcScript 语言的新手,强烈建议从这部分开始学习。

关键字

ArcScript 的每一行都以关键字开头。arc:set 用于设置一个属性(变量),arc:if 用于引入条件逻辑,arc:call 用于调用一个 ArcScript 运算器等等。

关键字部分描述了 ArcScript 中可用的每个关键字。

运算器

ArcScript 中的高级处理是通过运算器来执行的。每个运算器都会执行特定的任务,如数据库查询、 HTTP 请求或文件读取。

运算器部分列出了每个可用的运算器,并描述了输入和输出参数。

请注意,有些运算器是特定于某个端口的,并在端口文档中进行了说明;例如,Notify 端口文档中包含了 notifySendEmail 运算器。

格式化器

ArcScript 使用格式化器来修改脚本中的值。这些格式化器可以执行数学运算、字符串操作、日期格式化等。

格式化器部分列出了每个可用的格式化器及其适用参数。