Header Match 端口 [废弃]

Version 23.4.8843


Header Match 端口 [废弃]


Header Match 端口将决策形状添加到工作流中,能够根据文件内的头部信息将文件发送到两个已定义的端口之一。

概览

Header Match 端口在工作流中形似叉子。根据文件中指定的头部是否与定义的值匹配,文件沿着流中的不同路径发送。匹配的文件沿着实心蓝色工作流发送,不匹配的文件沿着虚线灰色工作流发送。

对于文件中已经存在的头部,只需配置端口以检查所需的头部名称,然后将头部值与指定的值进行比较。此外,可以通过脚本将自定义头部添加到文件中,可以实现基于自定义数据的动态路由。

端口配置

本文包含所有可配置的端口属性。

配置

配置

与端口核心配置相关的设置。

  • 端口 Id 端口的静态、唯一标识符。
  • 端口类型 显示端口类型及其用途的描述。
  • 端口描述 一个可选字段,用于提供端口及其在流中的角色的自由格式描述。
  • 类型 头部的数据类型,将用于匹配文件。支持数据类型为字符串,数字和日期时间格式。
  • 头部名称 用来匹配文件的头部名称。如果在输入文件中找到具有此名称的头部,则该头部的值将与设置进行比较。
  • 运算符 用于比较输入文件中的头部值和设置的逻辑运算符。
  • 从输入文件解析的标题值将与此设置进行比较。比较类型取决于运算符设置。

其它配置

不包括在之前类别中的配置。

  • 日志子文件夹方案 指端口根据选定的时间间隔对日志文件夹中的文件进行分组。 例如,Weekly 选项表示端口每周创建一个新子文件夹并将该周的所有日志存储在该文件夹中。 空白设置告诉端口将所有日志直接保存在 Logs 文件夹中。 对于处理大量事务的端口,使用子文件夹有助于保持日志井井有条并提高性能。
  • 日志消息 已处理文件的日志条目是否包含文件本身的副本。
  • 保存至 Sent 文件夹 端口处理的文件是否应复制到端口的已发送文件夹。

特殊设置

特殊设置 适用于特定用例。

  • 其他设置 允许在以分号分隔的列表中配置隐藏的端口设置,例如setting1=value1;setting2=value2。 正常的端口用例和功能不需要使用这些设置。

自动化配置

与端口自动处理文件相关的设置。

  • 发送 到达端口的消息是否会被自动处理。

自定义头部

ArcScript 支持通过两种方法向文件添加自定义头部:

  • 脚本函数:portSetMessageHeader
  • Script 端口 output 属性:Header:*

portSetMessageHeader

应该在端口的事件脚本中使用 portSetMessageHeader 函数(在 Script 端口中设置自定义头部时,应该使用头部输出属性,如下一节所述)。

例如,可以将以下 ArcScript 放在工作流中 Header Match 端口之前的任何端口的接收后事件中:

<arc:set attr="Header:custom_header" value="myvalue" />
<arc:call op="portSetMessageHeader" />

ArcScript 还可用于动态确定自定义头部值,然后使用上述操作将该动态值添加为自定义头部。作为一个简单的例子,文件可能需要根据文件中的特殊字符进行路由,可以使用 fileReadLine 操作读取该字符。以下 ArcScript 在文件的第二行开始处查找特殊字符,并将其添加为自定义头部:

<arc:set attr="special_character" value="default_value" />

<arc:set attr="file" value="[FilePath]" />
<arc:call op="fileReadLine">
  <arc:if exp="[file:line | equals(2)]">
    <arc:set attr="special_character" value="[file:data | substring(0,1)]" />
  </arc:if>
</arc:call>

<arc:set attr="Header:custom_header" value="[special_character]" />
<arc:call op="portSetMessageHeader" />

在文件上运行上述脚本后,Header Match 端口可以根据特殊字符沿着不同的工作流路径路由文件。

头部输出属性

在专用 Script 端口中添加自定义头部时(而不是在另一个端口的事件脚本中),不需要 portSetMessageHeader 操作。相反,可以通过 Header:* output 属性直接设置输出消息的头,如下所述。

关键字用于从 Script 端口推送输出消息(文件)。默认情况下,arc:push 所需的两个参数是 FileNameData,如下例所示:

<arc:set attr="outputItem.FileName" value="myOutputFile.txt" />
<arc:set attr="outputItem.Data" value="Some file contents" />
<arc:push item="outputItem" />

Header:* output 属性是 FileNameData 的可选附加属性,用于为输出消息指定自定义头部。在输出 item (即 “push” 的 item)上设置的任何具有 “Header:” 前缀的属性都将被视为头部值。

例如,以下 ArcScript 向输出消息添加了一个名为 “myHeader” 且值为 “5” 的自定义头部:

<arc:set attr="outputItem.FileName" value="myOutputFile.txt" />
<arc:set attr="outputItem.Data" value="Some file contents" />
<arc:set attr="outputItem.Header:myHeader" value="5" />
<arc:push item="outputItem" />

同样的原则可以扩展到设置任意数量的自定义头部,例如: outputItem.Header:myHeader1, outputItem.Header:myHeader2 等等。