跳转到主要内容
Branch 端口在工作流中起着分叉作用。文件会根据端口中指定的条件是否为真,沿流程中的不同路径发送。

核心功能

  • 基于可配置条件的智能流程路由:支持根据文件名、消息头、XPath 和 EDI 元数据进行跳转。
  • 支持多种数据类型:支持字符串 (String)、数字 (Number)、日期时间 (DateTime) 等类型,并配有灵活的比较操作符。
  • 高级 XPath 评估:支持针对 XML 文档路由的复杂 XPath 解析。
  • EDI 特定元数据分支:可根据文档类型进行 EDI 元数据分支。

概览

分支条件可以检查以下不同类型的值:
  • 文件名
  • 消息上的消息头
  • 所有匹配的 XPath
  • 第一个匹配的 XPath
  • 一个或多个匹配的 XPath
  • EDI 元数据
注意
  • 要使用 XPath 选项,正在评估的文件必须是 XML 文件。
  • EDI 元数据分支只能用于 EDI 文档。
Branch 端口配置确定要查找的值以及要比较的_目标_值。如果传入值与目标值匹配,则消息会沿蓝色虚线流程路径传递。可以有多个目标值,每个目标值会将消息沿不同流程路径发送。如果这些值与任何条件都不匹配,则消息会沿灰色虚线路径传递。 有关上图的详细说明,请参阅根据消息头进行分支

端口配置

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

Branch 配置选项卡

与配置分支条件相关的设置。 分支设置允许为单个源值指定多个条件来定义分支。
设置描述
示例文件如果上传示例 XML 文件,端口会在使用 XPath 进行比较时显示文档结构。示例如下。
如果使用下拉列表指定接收消息时要比较的属性。选项包括:消息头、文件名、所有匹配的 XPath、第一个匹配的 XPath、一个或多个匹配的 XPath,或 EDI 元数据。做出选择后,请使用右侧字段进一步定义条件,如上方示例文件图所示。
数据类型目标值是字符串、数字还是 DateTime。如果数据类型是 String,请使用 Trim stringIgnore case 复选框进一步细化比较。如果数据类型是 DateTime,请使用右侧字段指定 DateTime 值的结构。
修剪字符串字符串比较是否应忽略空格。
忽略大小写

字符串比较是否应区分大小写。

分支设置部分的中心区域(如下图所示)允许根据需要设置任意数量的条件。将鼠标悬停在白色窗格上方或下方,然后选择 Add Case 以添加条件。

每个条件由三个部分组成:

  • 运算符(例如 is equal to、contains、starts withmatches regex
  • 与文件中找到的值进行比较的值
  • Then output to 组件

创建流程时,将不同端口连接到 Branch 端口中的每个 case 语句,以建立 Then output to 端口。最后,将不同端口连接到 Else 条件,以告诉 在其他条件均不满足时应执行什么操作。

忽略缺失值是否将缺失的消息头或 XPath 视为空字符串(当 如果 选择为 Filename 时不适用)。这样可以避免缺少预期消息头或 XPath 时抛出错误,而是沿“does not match”流程路径传递消息。

设置

与端口核心操作相关的设置。

高级页面 (Advanced Tab)

消息

日志

其他设置

其他设置

自动化页面 (Automation Tab)

自动化设置

性能

通知选项卡

SLA 选项卡

使用 Branch 端口的示例

以下示例描述了常见的 Branch 端口用例。

根据消息头进行分支

在此示例中,您的企业从交易伙伴处收到多种类型的 EDI 文档,并且需要对不同类型的文档进行不同处理。 上图展示了您向交易伙伴发送采购订单的情况。随后他们向您发送两种不同类型的 EDI 文档:一种是 855 采购订单确认,另一种是 810 发票。流程中 Branch 端口之前的 X12 端口 会将 X12-TransactionCode 附加到每个消息头。 Branch 端口使用消息头中的交易代码来告诉 在收到 810 或 855 EDI 文档时要执行的操作,以及在收到不包含这两种交易代码的文档时要执行的操作。
  • 收到 810 文档后,流程中的下一步会将其发送到后端系统的发票表(本例中为 PostgreSQL)。
  • 收到 855 文档后,流程的下一步会将其发送到后端系统中的 PO 确认表。
  • 收到任何其他类型的文档时,Else 条件会使用 Notify 端口 向管理员发送电子邮件以进行手动处理。

基于 EDI 元数据的分支

在此示例中,您的企业从多家公司接收 X12 文档,并且需要将两家公司的文档发送到特定工作区进行进一步处理。 上图展示了两家公司向您发送 X12 文档的情况。Branch 端口使用 X12 元数据 InterchangeSenderId 来指定文档的发送目的地。
  • 收到来自 CompanyA 的文档时,流程的下一步会将其发送到 CompanyA 工作区。
  • 收到来自 CompanyB 的文档时,流程的下一步会将其发送到 CompanyB 工作区。
  • 收到任何其他类型的文档时,Else 条件会使用 Notify 端口 向管理员发送电子邮件,提醒他们传入的 X12 文档与两个预期公司之一不匹配。
公司特定的工作区随后可能包含一个用于接收传入文档的 Workspace Receive 端口(由于 Branch 流程中使用了 Workspace Send 端口,因此必须包含),一个带有标识符、可将原始 X12 数据转换为 XML 的 X12 端口,一个用于将 XML 映射到目标的 XML Map 端口,最后是目标端口(下图中的 PostgreSQL)。