“FTP 列出文件”活动

在运行时期间,FTP 列出文件活动连接到 FTP 服务器并使用指定正则表达式从指定目录位置生成文件列表。FTP 列出文件活动会使用 directoryListingfileListing 输出参数向编排返回文件列表。

如果已清除仅列出文件 (NLST) 复选框,那么在 directoryListing 输出参数中会将完整目录列表(包括目录许可权、时间戳记和所有权)作为单个字符串返回。如果以字符串形式返回了完整的目录列表,那么您必须使用带有读取平面文件活动的平面文件模式来解析目录列表。如果已选中“仅列出文件 (NLST)”复选框,并且“FTP 列出文件”活动支持 FTP 服务器的目录列表格式,那么在 fileListing 输出参数中会返回仅包含文件名(如果受 FTP 服务器支持)的重复结构。在返回了文件名重复结构时,无需解析目录列表,可以只是使用 For EachWhile 循环活动通过列表进行迭代。您连接的 FTP 服务器必须支持 NLST 命令。这样会返回 FTP 服务器提供的响应。

对于某些情况,必须将 FTP 列出文件活动与 FTP 获取文件FTP 放置文件FTP 删除文件FTP 重命名文件活动协同使用,以处理在 FTP 目录中找到的文件集;而在其他情况下,只要使用 FTP 轮询目录活动即可。

如果下列任何条件成立,请将 FTP 列出文件活动与 FTP 获取文件FTP 放置文件FTP 删除文件FTP 重命名文件活动协同使用,以处理在 FTP 目录中找到的文件集:
  • “FTP 轮询目录”活动不支持 FTP 服务器的目录列表格式 - 目录列表的格式对于不同操作系统上支持的 FTP 服务器不同。FTP 轮询目录活动支持许多类型的 FTP 服务器,但是如果 FTP 服务器的目录列表格式无法通过 FTP 轮询目录活动进行解析,请将 FTP 列出文件活动与 FTP 获取文件FTP 放置文件FTP 删除文件FTP 重命名文件活动配合使用,以提供与 FTP 轮询目录活动相同的功能,如解析目录列表示例中所示:解析目录列表示例
  • 列表中的各文件必须通过其他操作进行后处理。 - 例如,如果必须基于文件名将文件移至其他目录,请将 FTP 列出文件活动与 FTP 获取文件FTP 放置文件FTP 删除文件FTP 重命名文件活动协同使用,如解析目录列表示例中所示:解析目录列表示例。 不过,如果可以使用同一操作对各文件进行后处理,那么可以使用 FTP 轮询目录活动处理文件集。

符号链接

FTP 列出文件活动在运行时期间对符号链接的支持取决于下列因素:
  • 托管 FTP 服务器的操作系统支持的符号链接类型。
  • FTP 服务器本身支持的符号链接类型。
  • FTP 列出文件活动支持的符号链接类型,如下表中所列:
    表 1.
    符号链接到... 硬符号链接 软符号链接 Notes®
    文件 不受支持 不受支持 FTP 列出文件活动不会将指向文件的符号链接解释为文件,因此在运行时期间指向文件的符号链接未通过 FTP 列出文件活动进行处理。
    目录 受支持 受支持  
要确定对特定操作系统上特定 FTP 服务器的特定符号链接支持,请参阅操作系统和 FTP 服务器文档。

通过 Microsoft FTP 端点处理子目录

对于 Microsoft IIS(因特网信息服务)FTP 端点,当处理子目录以及子目录中的文件时,FTP 列出文件活动的运行时行为取决于该活动的配置任务的已命名文件字段中指定的正则表达式,如下列情况中所述:
  • 当正则表达式等于字符串 * 时,编排作业处理指定目录中的子目录。
  • 当正则表达式等于字符串 *.* 时,编排作业不处理指定目录中的子目录。
  • 当正则表达式为空白时,编排作业不处理指定目录中的子目录。

向编排中添加“FTP 列出文件”活动

  1. 创建或打开编排。此时会以图形形式显示编排。
  2. 选择活动选项卡并展开 FTP 文件夹。
  3. 列出文件活动拖至编排上。
  4. 选择该活动。这样会显示核对表

创建、选择或编辑 FTP 端点

  1. 单击核对表中的选取端点任务,然后选择下列操作之一:
    • 选择现有端点:
      1. 选择浏览。这样会显示 Project Explorer。
        注意: 指定与原始 FTP 端点具有不同目录结构的新 FTP 端点可导致编排作业在运行时期间失败。您必须指定与原先所指定的 FTP 服务器目录结构匹配的新 FTP 服务器,或者通过按以下“配置活动”过程中所述单击浏览来更改目录字段的已配置目录。
      2. 选择现有端点并单击确定。跳至“配置活动”过程。
    • 选择现有端点并编辑该端点:
      1. 选择浏览。这样会显示 Project Explorer。
      2. 选择现有端点并单击确定
        注意: 指定与原始 FTP 端点具有不同目录结构的新 FTP 端点可导致编排作业在运行时期间失败。您必须指定与原先所指定的 FTP 服务器目录结构匹配的新 FTP 服务器,或者通过按以下“配置活动”过程中所述单击浏览来更改目录字段的已配置目录。
      3. 单击编辑。此时会显示“编辑端点”窗格。
    • 创建新端点:选择新建。此时会显示“创建端点”窗格。
  2. 创建或编辑 FTP 端点:创建或编辑 FTP 端点

配置活动

  1. 核对表中选择配置任务。此时会显示“配置”窗格。
  2. 配置此窗格中的所有字段,如下表所述:
    表 2.
    字段 描述
    目录 指定 FTP 服务器上的目录,Integration Appliance 将在其中生成文件列表。 您可以使用以下选项之一来指定目录:
    • 通过在字段中单击并输入下列目录路径之一直接输入目录路径:
      • 相对目录路径,例如:/process。(假定已为连接到 FTP 服务器的用户帐户配置了 FTP 主目录。请参阅下方的说明以获取更多信息。)
      • 完整目录路径,例如在 UNIX 机器上:/home/user/process
    • 单击浏览... 以填充可用目录的下拉列表。从下拉列表中选择相应的目录。
    注: UNIX:如果在连接到 UNIX 机器上的 FTP 服务器时指定相对目录路径,请验证是否已针对连接到 FTP 服务器的用户帐户在 /etc/password 文件中正确指定了 FTP 主目录。
    文件名 指定用于定义要从 FTP 服务器获取的文件名的 glob 模式。由 FTP 服务器完成对 glob 模式的处理。有关更多信息,请参阅有关 glob 模式的 FTP 服务器文档。
    仅列出文件 (NLST) 仅列出文件 (NLST) 复选框确定运行时期间通过“测试”按钮返回的目录列表类型。此外,此复选框还确定 fileListingdirectoryListing 输出参数是否显示在映射输出任务中并由活动在运行时期间返回。
      如果已选中仅列出文件 (NLST) 复选框,那么在单击测试按钮时仅会返回文件名(如果受 FTP 服务器支持),如图 1 中所示。此外,当选中了仅列出文件 (NLST) 复选框时,在“映射输出”任务中会列出 fileListing 输出参数。在运行时期间,在 fileListing 输出参数的 fileName 重复节点中会返回文件集。您连接的 FTP 服务器必须支持 NLST 命令。这样会返回 FTP 服务器提供的响应。
      如果已清除仅列出文件 (NLST) 复选框,那么在单击测试按钮时会返回完整目录列表(包括目录许可权、时间戳记和所有权),如图 2 中所示:此外,当选中了仅列出文件 (NLST) 复选框时,在映射输出任务中会列出 directoryListing 输出参数。在运行时期间,完整目录列表会作为单个字符串提供并通过使用 directoryListing 输出参数进行返回。
    图 1. 当选中仅列出文件 (NLST) 时的列表示例。
    bidAcmeInc.txtbidBudgetManufacture.txtbidCrankCo.txtbidSamAndSons.txtbidWidgetRUs.txt
    图 2. 当清除仅列出文件 (NLST) 时的列表示例。
    -rw-r--r--  1 551    551      65 May  3 11:39 bidAcmeInc.txt
    -rw-r--r--  1 551    551     43 May  3 11:39 bidBudgetManufacture.txt
    -rw-r--r--  1 551    551       0 May  3 11:39 bidCrankCo.txt
    -rw-r--r--  1 551    551      73 May  3 11:39 bidSamAndSons.txt
    -rw-r--r--  1 551    551      33 May  3 11:39 bidWidgetRUs.txt

指定重试选项

  1. 核对表中选择重试任务。这样会显示“重试”窗格。
  2. 配置用于连接到 FTP 服务器的重试选项。下表定义用于连接到 FTP 服务器的重试选项:
    表 3.
    字段 描述
    重试  
    1) 在两次重试之间等待 ___ 秒。 Integration Appliance 在尝试与 FTP 服务器建立连接之前等待的秒数。
    2) 在尝试连接 ___ 次后失败。 指定重试计数 - Integration Appliance 在发出错误之前尝试与 FTP 服务器建立连接的最大次数。

    如果已部署以 FTP 列出文件活动开始的编排,并且 Integration Appliance 无法连接到指定的 FTP 服务器,那么 Integration Appliance 会在系统日志中将连接错误记录为警告,直至达到重试计数值。在达到了重试计数时,Integration Appliance 会在系统日志中记录错误,将连接错误计数重置为零,并且继续尝试与 FTP 服务器建立连接。

    例如,您将重试计数设置为 3。第一个、第二个和第三个连接错误在系统日志中显示为“警告”。Integration Appliance 将第四个连接错误记录为错误并将连接错误计数重置为零。因此,第五个连接错误会在系统日志中生成警告。Integration Appliance 会继续尝试与 FTP 服务器建立连接。

映射活动的输入

  1. 核对表中选择映射输入任务。这样会显示“重试”窗格。活动的输入参数会显示在“至活动”窗格中。
  2. 可以选择映射 FTP 列出文件活动的输入参数。FTP 列出文件活动具有下列可选输入参数:
    • directory
    • connection

    如果“映射输入”窗格的“至活动”窗格中未显示下表中列出的输入参数,请从工具栏菜单中选择映射 > 显示可选参数,或者在“至活动”窗格中右键单击,然后选择显示可选参数选项。 如果映射 > 显示可选参数选项在工具栏菜单中不可选,请单击“映射输入”窗格中的节点以激活此选项。

    您可以选择性地覆盖运行时期间在核对表配置选取端点任务中指定的设置,方法是使用下表中定义的输入参数。

    例如,可以在配置任务中将 Integration Appliance 获取文件列表所在的 FTP 服务器上的目录设置为名为 input 的目录。在运行时期间,可能会使用 directory 输入参数将目录名 inputXML 传递到此活动中。在运行时期间动态指定的目录名称覆盖“配置”窗格中指定的原始设置。在此示例中,文件列表是从 inputXML 目录中生成的。

表 4.
输入参数名称/节点 描述 是否覆盖任务中的设置?
directory 指定 FTP 服务器上的目录,Integration Appliance 将在其中生成文件列表。 directory 输入参数覆盖配置任务的目录字段。
connection/timeout 指定在 Integration Appliance 尝试与端点建立连接和端点响应连接请求之间发生超时情况前的时间量(以秒为单位)。对于 FTP 删除文件活动,指的是在超时之前 Integration Appliance 尝试与 FTP 服务器建立连接所花费的时间量。 connection 输入参数的 timeout 节点覆盖 FTP 端点的连接超时 - 在与端点建立连接 ___ 秒后将超时字段。
connection/host 指定 FTP 服务器的主机名或 IP 地址。 connection 输入参数的 host 节点覆盖 FTP 端点的主机名字段。
connection/port 为所指定的主机名指定端口号。FTP 流量的标准端口为 21。SFTP 流量的缺省端口为 22。 connection 输入参数的 port 节点覆盖 FTP 端点的端口字段。
connection/username 指定用于连接到 FTP 服务器的帐户的用户名。 connection 输入参数的 username 节点覆盖 FTP 端点的用户名字段。
connection/password 指定用于连接到 FTP 服务器的帐户的密码。 connection 输入参数的 password 节点覆盖 FTP 端点的密码字段。

映射活动的输出

  1. 核对表中选择映射输出任务。此时在“自活动”窗格中会显示 directoryListingfileListing 输出参数。
  2. directoryListingfileListing 输出参数映射到变量。请参阅创建映射,以获取与映射有关的常规指示信息。

在运行时期间,FTP 列出文件活动会使用 directoryListingfileListing 输出参数向编排返回文件列表。

如果在配置任务中清除了仅列出文件 (NLST) 复选框,那么在 directoryListing 输出参数中会将完整目录列表(包括目录许可权、时间戳记和所有权)作为单个字符串返回。将完整目录列表作为字符串返回时,必须将平面文件模式与“读取平面文件”活动配合使用来解析目录列表。您可以使用平面文件模式编辑器来创建平面文件模式。有关使用平面文件模式解析目录列表的示例编排,请参阅解析目录列表示例:解析目录列表示例

如果已选中仅列出文件 (NLST) 复选框,并且 FTP 列出文件活动支持 FTP 服务器的目录列表格式,那么在 fileListing 输出参数中会返回仅包含文件名(如果受 FTP 服务器支持)的重复结构。在返回了文件名重复结构时,无需解析目录列表,可以只是使用针对每个While 循环活动通过列表进行迭代。