跳转到主要内容
Finalize 端口用于完成被延迟的源消息。将其放在工作流成功路径的末端,用于确认工作流已成功处理某个文件,以便接收该文件的端口执行其后处理操作,例如删除源文件。Finalize 端口随知行之桥提供,无需单独的许可证。
只有 File 端口 可以延迟最终确定。其他源端口不支持此功能。

核心功能

  • 延迟清理源文件,在下游工作流成功之前不会删除已接收的文件
  • 自动处理超时,释放待处理文件以供再次接收,且不删除源文件
  • 无需配置即可关联到源端口,因为消息本身携带了查找源端口所需的信息
  • 消息无法最终确定时提供清晰的错误消息

概览

默认情况下,File 端口等源端口在接收到消息后会立即完成该消息。任何后处理操作(例如从源文件夹中删除文件)都会立即执行,即使下游工作流随后失败也是如此。 在 File 端口上启用 延迟最终确定接收的文件 后,端口会将每个接收到的文件保持为待处理状态。Finalize 端口会在工作流的其余部分成功后完成该待处理文件。 当消息到达 Finalize 端口时,该端口会:
  1. 读取消息携带的延迟源信息。
  2. 找到接收该文件的源端口。
  3. 通知源端口最终确定该文件,从而触发源端口中配置的清理操作(例如,启用 删除文件(接收后) 时删除该文件)。
Finalize 端口没有输出,只能作为工作流中的最后一个端口使用。

端口配置

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

设置选项卡

与端口核心配置相关的设置。
设置描述
端口 Id端口的静态、唯一标识符。
端口类型显示端口类型及其用途的描述。
端口描述一个可选字段,用于提供端口及其在流中的角色的自由格式描述。

高级选项卡

其他设置

日志

用于管理日志创建和存储的设置。

设置描述
日志级别指定要记录在端口日志目录中的信息类型:
  • None - 不创建任何日志。
  • Error - 仅当端口遇到错误时才创建日志。
  • Warning - 仅当端口发出警告时才创建日志。
  • Info - 记录工作流的一般信息,包括任何错误和警告(如果适用)。
  • Debug - 记录成功和失败工作流的详细调试信息。
  • Trace - 记录成功和失败工作流的详细跟踪信息。
请注意:Debug 和 Trace 级别的日志可能会记录敏感信息,包括消息内容和 SSL 证书。尽管连接属性(例如密码)被屏蔽了,但在与您的组织外部共享它们之前,请查看此级别的日志以避免泄漏敏感信息。
日志文件夹结构指示端口根据选定的时间间隔将日志文件夹中的文件分组。例如,Weekly 选项指示端口每周创建一个新的子文件夹,并将该周的所有日志存储在该文件夹中。空白设置告诉端口将所有日志直接保存在日志文件夹中。对于处理许多事务的端口,使用子文件夹有助于保持日志的有序性并提高性能。
保留消息副本指示端口在日志目录中保存最新消息副本的切换。请注意,端口每个子文件夹只保留一个消息,并且端口在再次运行时会覆盖以前保存的消息。

其它

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

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

自动化选项卡

自动化设置

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

性能

与端口资源分配相关的设置。

设置描述
最大工作线程数此端口上处理文件时从线程池中消耗的最大工作线程数。如果设置,则会覆盖 高级设置 页面的 性能设置 部分的默认设置。
最大文件数分配给端口的每个线程发送的最大文件数。如果设置,则会覆盖 高级设置 页面的 性能设置 部分的默认设置。

通知选项卡

SLA 选项卡

交易选项卡

此选项卡列出了与该端口关联的所有消息。使用搜索栏查找特定消息,或单击漏斗图标应用过滤器。可以按时间、消息方向和/或状态进行过滤。

将 Finalize 与 File 端口配合使用

要将已接收文件的删除操作延迟到工作流成功之后:
  1. 在接收文件的 File 端口上,启用 延迟最终确定接收的文件;如果希望删除源文件,还需启用 删除文件(接收后)。请参阅接收。
  2. 构建处理该文件的工作流的其余部分。
  3. 添加一个 Finalize 端口,并将其连接到处理该文件的最后一个端口的 成功路径。
例如,某个工作流先使用 File 端口接收文件,再使用 X12 端口对其进行转换,然后将数据 upsert 到 SQL Server,最后对文件进行最终确定,其配置如下: 包含 File 端口、X12 端口、SQL Server 端口和 Finalize 端口的工作流
  1. File 端口从其配置的路径接收文件,并将其保持为待处理状态。
  2. X12 端口将文件转换为 XML。
  3. SQL Server 端口将 XML 数据 upsert 到 SQL Server。
  4. SQL Server 端口的 成功路径 连接到 Finalize 端口,由 Finalize 端口完成该待处理文件。
只有在工作流开头接收文件的 File 端口才能延迟最终确定。工作流后面用于将文件发送到文件夹的 File 端口不会延迟任何操作,但工作流仍可以以一个 Finalize 端口结束,以完成原始文件。 在发生以下任一情况之前,文件会一直保持待处理状态,且不会被再次接收:
  • 文件到达 Finalize 端口。 File 端口完成该文件并执行配置的清理操作。
  • 达到待处理超时时间。 此超时由 File 端口 自动化选项卡 上的 接收待处理超时(分) 设置控制。消息会被标记为 Pending Timeout 错误,源文件不会被删除,并且该文件会被释放,以便可以再次接收。
并非来自启用了延迟最终确定的端口的消息无法被最终确定。将普通消息发送到 Finalize 端口会导致错误。

源文件变更

如果源文件在接收之后、最终确定之前发生了变更,端口不会删除该文件。应用程序日志中会包含以下消息,其中 {0} 为文件名: Source file '{0}' changed after it was received. Deferred finalization will not delete it.

待处理超时

File 端口 自动化 选项卡上的 接收待处理超时(分) 设置控制已接收文件保持待处理状态的时长。默认值为 10 分钟;设置为 0 时,文件会无限期保持待处理状态。如果待处理消息在超时之前未被最终确定:
  • 应用程序日志会记录该消息在等待最终确定时超过了待处理超时时间。
  • 系统会发送一封主题为 Send Failure: Pending Timeout 的错误通知。
  • 消息会被标记为 Pending Timeout 错误,在 交易 选项卡中显示为 Error。
  • 源文件不会被删除,该文件将可以被再次接收。
待处理消息检查作为 检查待处理 自动化操作运行。在 Debug 日志级别下,自动化日志会记录每次检查以及其处理的超时消息数量。

延迟消息信息

为延迟最终确定而保留的文件会在其消息头中携带额外信息。要查看这些消息头,请在 File 端口的 交易 选项卡中打开该消息,然后转到 详细信息 选项卡。

故障排除

当 Finalize 端口无法完成消息时,会报告以下错误。