> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kasoftware.com/llms.txt
> Use this file to discover all available pages before exploring further.

# IATA 端口

> 知行之桥IATA PADIS 端口的配置与使用指南。

国际航空运输协会 (IATA) 乘客和机场数据交换标准 (PADIS) 端口支持从 XML 生成 PADIS 文档以及将 PADIS 文档转换为 XML。

## 核心功能

* 支持 IATA PADIS 标准，提供 IATA PADIS 与 XML 之间的双向转换
* 针对航空业消息，提供自动的 EDIFACT 子集架构检测与验证
* 支持 CONTRL 回执生成与处理，具备用于路由的交换报文头管理功能

## 概述

当收到 PADIS 文档时，IATA PADIS 端口验证文件交换头，并将 PADIS 文件转换成 XML。这样分步实现很有用，因为 XML 是 知行之桥 用于处理工作流中数据的主要格式。IATA PADIS 端口自动读取输入文件以确定适当的 PADIS schema，然后根据该 schema 解析文档。IATA PADIS 是 EDIFACT 标准的一个子集，IATA PADIS 端口的许多特性和功能与更通用的 [EDIFACT 端口](https://docs.kasoftware.com/26.4/self-hosted/zh/connectors/edifact.md)共享。

在生成 PADIS 文档时，IATA PADIS 端口将 XML 转换为 PADIS 文档语法，并应用适当的交换头。在工作流中的其他地方提取并转换了 XML 数据之后，这是创建 PADIS 文档的最后一步。

> [!NOTE]
>
> 通过启用 **测试指示器** 设置，可以避免交换头验证。

IATA PADIS 端口还可以对收到的 PADIS 文件自动生成 ACK。如需了解更多信息，请参阅 [IATA PADIS ACK](#iata-padis-ack)。

## 端口配置

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

### 设置

#### 转换配置

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

| 设置 | 描述 |
| - | - |
| **端口 ID** | 端口的静态唯一标识符。 |
| **端口类型** | 显示端口名称及其功能描述。 |
| **端口描述** | 可选字段，用于对端口及其在工作流中的角色进行自由格式描述。 |
| **转换类型** | 端口是否应将 PADIS 文档转换为 XML，或从 XML 生成 PADIS 文档。 |
| **动态处理交易伙伴** | 启用后，端口会自动从 EDI 事务中识别和跟踪交易伙伴关系。禁用时，您必须手动定义交易伙伴关系。更多信息，请参阅 [EDI 伙伴选项卡](#edi-伙伴选项卡)。 |

#### EDI 交易伙伴

| 设置 | 描述 |
| - | - |
| **交易伙伴标识符 (UNB2.1)** | 在 PADIS 通信中用于标识发送方的唯一 ID。生成 PADIS 文档时，此项应为您的标识符。仅在未勾选"**动态处理交易伙伴**"时适用。 |
| **接收方标识符 (UNB3.1)** | 在 PADIS 通信中用于标识接收方的唯一 ID。生成 PADIS 文档时，此项应为您的交易伙伴的标识符。仅在未勾选"**动态处理交易伙伴**"时适用。 |

#### 交换头配置

*与 IATA PADIS 交换头相关的设置。从 XML 生成 PADIS 文档时，这些设置用于生成文档标题。解析 PADIS 文档时，这些设置用于验证传入文档。*

| 设置 | 描述 |
| - | - |
| **语法标识符（UNB1.1）** | 标识 PADIS 文档中使用的字符集。 |
| **语法版本（UNB1.2）** | 与 **语法标识符** 结合使用，确定 PADIS 文档中使用的语法。根据在此处的选择，其他交换设置选项会在[高级设置](#高级设置)选项卡上出现或消失。 |
| **交易伙伴代码限定符 (UNB2.2)** | **交易伙伴标识符** 的限定符，用于为该值提供上下文（例如 EAN 位置代码）。 |
| **个人代码限定符 (UNB3.2)** | **个人标识符** 的限定符，用于为该值提供上下文（例如 EAN 位置代码）。 |
| **测试指示器（UNB11）** | 交换处于测试模式还是生产模式。如果选中此选项，则在收到文档时不会验证交换头。 |
| **功能组** | 选中此选项可自动将发件人和收件人标识符添加到 **高级** 选项卡上的[功能组配置](#功能组配置)。 |

#### ACK

*与生成和请求 ACK 相关的设置。*

| 设置 | 描述 |
| - | - |
| **请求技术性 ACK（CONTRL）** | 是否应该返回（接收时）和请求（发送时）技术性 ACK。技术性 ACK 作为交换的凭据。 |
| **请求功能性 ACK（CONTRL）** | 是否应返回（接收时）和请求（发送时）功能性 ACK。功能性 ACK 作为接收交换／交易集的接受／拒绝的指示。 |

### 样本文件选项卡

*上传示例文件可以方便地在任何连接的 CSV Map 或 XML Map 端口中进行映射。*

使用 **示例文件** 选项卡生成用于 [CSV Map](https://docs.kasoftware.com/26.4/self-hosted/zh/connectors/map.md) 或 [XML Map](https://docs.kasoftware.com/26.4/self-hosted/zh/connectors/xml-map/xml-map.md) 端口的源或目标 XML 模板。单击 **添加示例文件**。

1. 如果您已有反映数据预期格式和结构的示例文件，请选择 **文件上传** 并浏览到您的文件。或者，选择 **手动创建** 直接在应用程序中创建文件。如果您选择 **手动创建**，请为示例文件命名。单击 **下一步**。

2. 如果您浏览到现有文件，**查看文件** 选项卡将填充其内容。如果您选择手动创建文件，请在此选项卡上输入示例数据。单击 **下一步**。

3. **翻译和预览** 选项卡显示将示例数据转换为 XML 的预览。当您对示例满意时，单击 **添加**。

### 高级设置

#### EDI 分隔符

*指定了段、元素等的分隔设置。*

| 设置 | 描述 |
| - | - |
| **数据元素分隔符** | 分隔文档中各个数据元素的字符。 |
| **组件元素分隔符** | 分隔文件中复合数据结构内元素的字符。 |
| **段终止符** | 指示文件中段结尾的字符。 |
| **转义字符** | "释放"或"转义"下一个字符的字符，覆盖其通常的含义。只要保留字符前面带有版本字符，它就可以将它们与数据一起显示在文档中。 |
| **重复元素分隔符** | 标识元素值重复的字段。 |
| **后缀** | 追加到 **段终止符** 后，区分多个段。 |

#### 交换头配置

*与 IATA PADIS 交换头相关的其他设置。这些选项的显示或消失取决于"设置"选项卡上指定的 **语法版本**。*

| 设置 | 描述 |
| - | - |
| **服务代码列表目录版本号（UNB1.3）** | 进一步规定了 IATA 文档中使用的语法。仅适用于 EDIFACT 语法版本 4。 |
| **字符编码（UNB1.4）** | 指定字符的编码方式（例如，ASCII、UTF-8）。仅适用于 EDIFACT 语法版本 4。 |
| **反向路由地址（UNB2.3）** | 发送方系统内的可选地址，响应交换应发送至该地址。仅适用于版本 4 之前的 EDIFACT 语法版本。 |
| **交易伙伴内部识别码 (UNB2.3)** | 额外的发送方标识符，用于辅助响应交换报文的内部路由。仅适用于 PADIS 语法第 4 版。 |
| **交易伙伴内部子识别码 (UNB2.4)** | 当需要子级身份识别时，用于进一步标识发送方。仅适用于 PADIS 语法第 4 版。 |
| **路由地址 (UNB3.3)** | 接收方系统中可选的地址，用于路由交换报文。仅适用于第 4 版之前的 PADIS 语法版本。 |
| **个人内部识别码 (UNB3.3)** | 额外的接收方标识符，用于辅助已接收交换报文的内部路由。仅适用于 PADIS 语法第 4 版。 |
| **个人内部子识别码 (UNB3.4)** | 当需要子级身份识别时，用于进一步标识接收方。仅适用于 PADIS 语法第 4 版。 |
| **交易伙伴密码 (UNB6.1)** | 用于访问接收方系统的引用或密码。 |
| **交易伙伴密码限定符 (UNB6.2)** | 如果适用，为 **交易伙伴密码** 提供上下文的限定符。 |
| **应用程序引用标识（UNB7）** | 标识交换中的消息所涉及的应用程序组。 |
| **处理优先级代码（UNB8）** | 请求交换处理优先级的代码。 |
| **通信协议（UNB10）** | 定义控制交换的通信协议类型。 |

#### 功能组配置

*与 IATA PADIS 文档的功能组标题相关的设置。这些可选的标识符可能有助于将类似的交换组在一起，或者有助于组织内的子寻址。*

| 设置 | 描述 |
| - | - |
| **应用程序交易伙伴标识符 (UNG2.1)** | 标识发送文档的应用程序（例如部门、分支机构或计算机系统）。 |
| **应用程序个人标识符 (UNG2.1)** | 标识文档拟发送至的应用程序。 |

#### 高级设置

*未包含在先前类别中的设置。*

| 设置 | 描述 |
| - | - |
| **批处理** | 一个交换可以包含多个事务。如果未选中此选项，端口将为交换中的每个事务创建一个单独的输出文件。选中后，端口会将所有事务分组到单个输出文件中。仅当 **转换类型** 为 IATA 到 XML 时适用。 |
| **编码** | 指定字符编码（例如 ASCII 或 UTF-8）。 |
| **扩展限定符值** | 选中时，包含 PADIS 限定符的 XML 元素包括包含限定符代码和值的子元素。例如： `<N101>`   `<Code>ST</Code>`   `<Value>Ship To</Value>` `</N101>` |
| **功能性 ACK** | 默认情况下，所有功能确认（997、999）都会路由到流程图中选择的端口，并且 **交易** 选项卡中不会接收 XML 转换。选中此项以使转换后的确认也包含在 **交易** 选项卡中。除了新的 PADIS 文档之外，这还允许将功能确认集成到目标源中。 |
| **将描述生成为** | 将 PADIS 转换为 XML 时，可以提供 PADIS 段和元素的描述作为 PADIS 数据的上下文。使用此下拉列表可以选择是否将此上下文添加为 XML 注释或 XML 属性。 |
| **本地文件命名方案** | 为端口输出消息分配文件名的方案。可以在文件名中使用宏来动态包含标识符和时间戳等信息。更多信息，请参阅[宏](#宏)。 |
| **嵌套循环** | 选中时，端口会检测 PADIS 数据中嵌入了层次关系的 PADIS 结构，并生成 XML，其中这些层次关系表示为父子关系。 |
| **处理延迟** | 放置在 **交易** 选项卡中的文件处理延迟的时间量（以秒为单位）。这是一个旧版设置。最佳实践是[使用文件端口](https://docs.kasoftware.com/26.4/self-hosted/zh/flows/designing-a-flow.md#与本地文件系统交互)来管理本地文件系统，而不是此设置。 |
| **严格模式验证** | 当检测到以下情况时，端口是否应忽略、警告或失败：重复计数超过允许的数量、缺少必需的元素或段、无效的限定符和代码值、不允许的元素长度以及无效元素值。选择"禁用"会关闭 schema 验证检查。 |
| **跟踪 UNB2.1** | 是否将 UNB2.1 值作为跟踪头添加到已处理的消息中。 |
| **跟踪 UNB3.1** | 是否将 UNB3.1 值作为跟踪头添加到已处理的消息中。 |
| **跟踪事务类型** | 是否将事务类型作为跟踪头添加到已处理的消息中。 |
| **验证标识符** | 检查此项以确保翻译文档中的标识符与端口配置中的标识符匹配。 |
| **重复文件操作** | 当端口收到控制号已见过的消息（重复）时应如何处理。设置为 `Ignore` 时，端口静默跳过重复并继续处理。设置为 `Warn` 时，端口处理文件但返回警告。设置为 `Fail` 时，端口不接受文件并返回错误。 |
| **上传 Schema** | 使用此选项上传 schema 并将其安装在端口的 Schema 文件夹中。如果 schema 已存在，系统会询问是否要覆盖。 |
| **重置状态** | EDI 端口跟踪已使用的控制号并递增该数字，以确保将来的运行不会重复数据。使用此按钮将计数器重置为初始状态，而不更改任何已配置的设置。 |

#### 消息

*消息设置确定端口如何搜索消息并在处理后管理它们。*

**注意：**以下设置已弃用，默认处于隐藏状态。只有先前已启用这些设置或将其配置为非默认值的端口才会显示它们。若要保留成功处理的文件副本，请在工作流中右键单击该端口，选择**显示成功路径**，然后将成功路径连接到 [File 端口](https://docs.kasoftware.com/26.4/self-hosted/zh/connectors/file.md)。

<table><thead><tr><th>设置</th><th>描述</th></tr></thead>
<tbody><tr><td>**保存到已发送文件夹**（已弃用）</td>
<td>将端口处理的文件复制到 Sent 文件夹。默认禁用。保存到 Sent 文件夹中的文件不受[静态加密](https://docs.kasoftware.com/26.4/self-hosted/zh/getting-started/administration/settings/encryption-at-rest.md)保护。</td></tr>
<tr><td>**已发送文件夹方案**（已弃用）</td>
<td>按所选时间间隔对 **Sent** 文件夹中的文件进行分组。仅在启用**保存到已发送文件夹**时适用。</td></tr></tbody></table>

#### 日志

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

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

#### 杂项

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

<table><thead><tr><th>设置</th>
<th>描述</th></tr></thead>
<tbody><tr><td>**其他设置**</td>
<td>允许在以分号分隔的列表中配置隐藏的端口设置，例如 `setting1=value1;setting2=value2`。正常的端口用例和功能不需要使用这些设置。</td></tr></tbody></table>

### EDI 伙伴选项卡

默认情况下，端口 **设置** 页面上的 **动态处理交易伙伴** 复选框是启用的。这意味着端口会自动从 EDI 事务中识别并跟踪交易伙伴关系。在这种情况下，不需要手动配置交易伙伴，因为端口会在许可限制范围内动态管理所有交易伙伴，并在达到限制时发出通知。端口根据其处理的文件跟踪标识符，这意味着可能可以使用单个端口来处理所有交易伙伴。

![Dynamically process partners setting](https://docs.kasoftware.com/26.4/images/edi_dynamically_process_partners.png)

仅当知行之桥正在动态处理交易伙伴时，**EDI 交易伙伴** 选项卡才会被启用。该选项卡会填充端口识别出的每个关系的交易伙伴标识符和个人标识符，以及该交易伙伴最后一次处理文件的日期。在 **EDI 交易伙伴** 选项卡中，可以通过将鼠标悬停在交易伙伴上并点击垃圾桶图标，删除最后处理日期超过 30 天的交易伙伴。

![EDI Partners tab](https://docs.kasoftware.com/26.4/images/edi_iatapadis_partners_tab.png)

启用此设置后，端口识别出的所有交易伙伴关系都会自动跟踪以用于许可计量。它们会出现在 **设置 > 许可** 页面的 [端口使用情况](https://docs.kasoftware.com/26.4/self-hosted/zh/getting-started/administration/settings/license-settings.md#connector-usage) 部分。在此处，您可以查看交易伙伴标识符和个人标识符、关联的端口以及日期信息。

![EDI partner licenses](https://docs.kasoftware.com/26.4/images/edi_partner_licenses.png)

如果禁用此设置，则必须在 **设置** 页面的 **交易伙伴标识符** 和 **个人标识符** 字段中显式配置交易伙伴关系，如下图所示。

![Dynamically process partners disabled](https://docs.kasoftware.com/26.4/images/edi_shared_partner_config_disabled.png)

手动定义的交易伙伴关系也会出现在 **设置 > 许可** 页面的 [端口使用情况](https://docs.kasoftware.com/26.4/self-hosted/zh/getting-started/administration/settings/license-settings.md#connector-usage) 部分。

### 自动化

#### 自动化

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

| 设置 | 描述 |
| - | - |
| **发送** | 指示端口在文件就绪时自动发送文件的开关。 |
| **重新发送间隔** | 端口在重新发送收到否定 ACK 的文件之前等待的时间间隔。例如，如果交易伙伴收到文件但文件有问题并发回否定 ACK，此设置指定再次发送文件前等待的时间。 |
| **最大尝试次数（异步）** | 当请求功能性 ACK 时，端口处理输入文件的最大次数。是否成功基于在 **重新发送间隔** 内返回的功能性 ACK。如果未返回成功的功能性 ACK，端口将重新发送文件直到达到 **最大尝试次数**。如果设置为 0，端口将无限次重新发送文件。 |

#### 性能

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

<table><thead><tr><th>设置</th>
<th>描述</th></tr></thead>
<tbody><tr><td>**最大工作线程数**</td>
<td>此端口上处理文件时从线程池中消耗的最大工作线程数。如果设置，则会覆盖 [高级设置](https://docs.kasoftware.com/26.4/self-hosted/zh/getting-started/administration/settings/advanced-settings.md) 页面的 [性能设置](https://docs.kasoftware.com/26.4/self-hosted/zh/getting-started/administration/settings/performance-settings.md) 部分的默认设置。</td></tr>
<tr><td>**最大文件数**</td>
<td>分配给端口的每个线程发送的最大文件数。如果设置，则会覆盖 [高级设置](https://docs.kasoftware.com/26.4/self-hosted/zh/getting-started/administration/settings/advanced-settings.md) 页面的 [性能设置](https://docs.kasoftware.com/26.4/self-hosted/zh/getting-started/administration/settings/performance-settings.md) 部分的默认设置。</td></tr></tbody></table>

### 告警选项卡

*与配置通知相关的设置。*

在执行服务级别协议 (SLA) 之前，需要设置电子邮件通知以接收通知。默认情况下，知行之桥 使用 [通知](https://docs.kasoftware.com/26.4/self-hosted/zh/getting-started/administration/settings/alerts.md) 选项卡上的全局设置。要为此端口使用其他设置，请启用 **覆盖全局设置**。

默认情况下，错误通知处于启用状态，这意味着每当出现错误时都会发送电子邮件。要关闭错误通知，请取消选中 **启用** 复选框。

输入 **主题**（必填）。勾选**允许在主题中使用 ArcScript**，即可在**主题**字段中使用 ArcScript。选中后会显示 **ArcScript 编辑器**按钮（![ArcScript 编辑器按钮](https://docs.kasoftware.com/26.4/images/rest_arcscript_editor.png)）。

（可选）输入以逗号分隔的**收件人**电子邮件地址列表。

### SLA 选项卡

*与配置服务级别协议 (SLA) 相关的设置。*

SLA 允许配置预期流程中端口发送或接收的数据量，并设置预期达到该数据量的时间范围。当 SLA 未达到时，知行之桥 会发送电子邮件警告用户，并将 SLA 标记为 *存在风险*，这意味着如果 SLA 未能尽快达到，则会被标记为 *已违反*。这让用户有机会介入并确定 SLA 未达到的原因，并采取适当的措施。如果在风险时间段结束时仍未达到 SLA，则会将 SLA 标记为已违反，并再次通知用户。

SLA 转换为 *存在风险* 或 *已违反* 状态时，也会写入[应用程序日志](https://docs.kasoftware.com/26.4/self-hosted/zh/getting-started/administration/activity.md#应用程序日志)，这意味着应用性能监控 (APM) 和日志采集工具也可以针对这些状态发出警报。

要定义 SLA，请启用 **预期数据量**，然后点击 **设置** 选项卡。

![SLA Empty](https://docs.kasoftware.com/26.4/images/sla_empty.png)
<ul><li>如果端口具有单独的发送和接收操作，请使用单选按钮指定 SLA 适用的方向。</li>
<li>在窗口的 **预计至少** 部分中：
<ul><li>设置预计处理的最小事务数量（交易量）</li>
<li>使用 **每个** 字段指定时间范围</li>
<li>指示 SLA 生效的时间。如果选择 **开始于**，请填写日期和时间字段。</li>
<li>勾选希望 SLA 生效的星期几对应的复选框。如有必要，请使用下拉菜单选择 **每天**。</li></ul></li>
<li>在窗口的 **将状态设置为“有风险”** 部分中，指定应将 SLA 标记为有风险的时间。
<ul><li>默认情况下，只有在违反 SLA 的情况下才会发送通知。要更改此设置，请勾选 **发送“有风险”通知**。</li></ul></li></ul>

以下示例显示了为端口配置的 SLA，该端口预计在周一至周五每天接收 1000 个文件。如果尚未收到 1000 个文件，则会在时间段结束前 1 小时发送风险通知。

![SLA Configuration Example](https://docs.kasoftware.com/26.4/images/sla_defined.png)

> [!NOTE]
>
> 如果有必要，可以关闭 SLA 通知。这在维护窗口期间非常有用。点击导航栏上的 **设置**，然后跳转到 **通知 > 通用通知**。点击平板和铅笔图标进行编辑，并取消勾选 **SLA 通知** 设置。

## 转换类型

以下各节详细介绍了将 PADIS 转换为 XML 的过程，以及将 XML 转换为 PADIS 的过程。

### PADIS to XML

将 **转换类型** 设置为 *IATA to XML* 指示端口将传入的 PADIS 文档解析为 XML。端口首先读取文档的"交换"和"功能组"部分的所有消息头信息，并根据配置的端口设置对其进行验证（除非启用了 **测试指示器**）。然后，端口解析文档中使用的特定 PADIS schema，并从磁盘上的 `edifact_schemas` 文件夹加载 schema。

使用该 schema，端口生成表示文档结构的 XML，使用文档中的值填充 XML，并以 XML 注释或 XML 元素中的属性的形式为每个值提供上下文（基于 **将描述生成为** 的值）。

要通过一组测试 PADIS 文档查看此过程，请导航到 IATA PADIS 端口的 **交易** 选项卡（将 **转换类型** 设置为 *IATA to XML*）并选择 **更多 > 创建测试文件**。发票、采购订单、采购订单确认和发货通知的 PADIS 文档会自动生成并放置在 **交易** 目录中。端口处理这些测试文件后，导航到 **交易** 选项卡以查看生成的 XML。

PADIS 文档转换为 XML 后，可以通过多种方式转换和操作数据。通常，PADIS 数据需要存储在数据库或其他后端应用系统中。由于 知行之桥 使用 XML 来表示对这些后端系统的 `inserts`，因此存储 PADIS 数据就变成了将一种 XML 结构映射到另一种 XML 结构的问题。这通常是通过可视化设计器驱动的 [XML Map 端口](https://docs.kasoftware.com/26.4/self-hosted/zh/connectors/xml-map/xml-map.md) 完成的。

### XML to PADIS

将 **转换类型** 设置为 *XML to IATA* 指示端口根据文档的 XML 表示形式生成 PADIS 文档。端口根据从 XML 解析的数据构建 PADIS 消息后，会根据配置的端口设置添加功能组和交换消息头。

要使用一组测试 XML 文件查看此过程，请导航到 IATA PADIS 端口的 **交易** 选项卡（将 **转换类型** 设置为 *XML to IATA*）并选择 **更多 > 创建测试文件**。代表发票、采购订单、采购订单确认和发货通知的 XML 文件会自动生成并放置在 **交易** 目录中。端口处理这些测试文件后，导航到 **交易** 选项卡以查看生成的 PADIS 文档。

## 与 XML Map 端口一起使用

IATA PADIS 端口执行两项操作之一：接收 XML 输入或生成 XML 输出。为确保输入和输出文件具有正确的 XML 结构，我们强烈建议在生成出站 IATA PADIS 文档时将 [XML Map 端口](https://docs.kasoftware.com/26.4/self-hosted/zh/connectors/xml-map/xml-map.md) 用作流程中的上一步，或在接收入站 IATA PADIS 文档时将其用作流程中的下一步。下面描述的 **上传测试文件** 功能使 XML Map 端口和 IATA PADIS 端口之间的交互变得简单。

### 上传测试文件

按照以下步骤生成输入文件的 XML 模板：

1. 在端口的 **交易** 选项卡中，单击 **更多** 下拉菜单，然后单击 **上传测试文件**。

2. 导航到磁盘上要建模为 XML 的文件，选择它，然后单击 **OK**。

3. 将 IATA PADIS 端口连接到流中的 XML Map 端口。此连接可以在任一方向进行——入站到 XML Map 端口，或从 XML Map 端口出站。

XML Map 端口会自动检测测试文件的结构。根据您放置 IATA PADIS 端口的位置，该文件将出现在 XML Map 端口的 **源文件** 或 **目标文件** 下拉菜单中。

> [!NOTE]
>
> XML Map 端口需要源模板和目标模板，因此必须根据数据来源结构或应转换为的结构来设置剩余模板。例如，如果需要将 IATA PADIS 文档中的数据插入数据库，则 XML Map 端口中的另一个模板将是数据库插入的 XML 模型。有关在两个模板文件之间创建映射的更多信息，请参阅 XML Map 端口的 [使用映射编辑器](https://docs.kasoftware.com/26.4/self-hosted/zh/connectors/xml-map/xml-map-designer.md)。

## IATA PADIS ACK

以下各节详细介绍了两种类型的 IATA PADIS ACK，以及 知行之桥 期望、处理和生成 ACK 的方式。

### 技术性 ACK 与功能性 ACK

技术性 ACK，有时称为交换 ACK，是双方之间已经发生交换的一种表示，尽管不一定表示已经交换了任何单独的消息。这些作为发送者的收据，指示成功接收到 IATA PADIS 消息，但是它没有指定在处理消息内容时是否存在任何问题。

功能性 ACK 是接收方已经处理了交换的指示。它可以报告接受、有问题的接受或拒绝接收的文件。这些既可以作为交换成功接收的收据，也可以作为交换被完全处理的收据。

### 期待 ACK、处理 ACK 和生成 ACK

#### 请求 ACK

可以配置以 XML 到 IATA 模式运行的 IATA PADIS 端口，以便消息能够收到技术和／或功能 ACK。在"设置"选项卡的 [ACK](#ack) 部分中选中 **请求技术性 ACK（CONTRL）**／**请求功能性 ACK（CONTRL）** 之一或两者时，端口将保持传输的待处理 ACK 状态，直到返回并处理了适当的 ACK。这意味着端口状态可用于确定收件人是否已确认他们收到了交换。有关 EDIFACT 端口中此功能的详细说明，请参阅 [EDIFACT 端口](https://docs.kasoftware.com/26.4/self-hosted/zh/connectors/edifact.md)。IATA PADIS 端口的工作原理相同。

当需要确认的 EDI 消息未收到确认时，会在消息中添加一个 Pending-Timeout 标头。在等待 ACK 期间，消息处于 *Pending* 状态。如果在规定时间内未收到 ACK，则会将消息状态更改为 *Error* 的日期和时间填充到 Pending-Timeout 标头中。当收到 ACK 并将消息更新为 *Success* 时，会添加一个包含空字符串值的新标头。

#### 处理 ACK

在典型工作流中，PADIS ACK 到达以 IATA 到 XML 模式运行的 IATA PADIS 端口。此 IATA PADIS 端口可配置为自动将任何收到的确认路由到最初生成被确认文档的 IATA PADIS 端口。IATA PADIS 端口之间的路由 ACK 可以在[工作流](https://docs.kasoftware.com/26.4/self-hosted/zh/flows/flows.md)画布上进行可视化配置，方法是将 IATA 到 XML 模式下的 IATA PADIS 端口底部的灰点拖动到 XML 到 IATA 模式下的 IATA PADIS 端口上。

XML 到 IATA 模式下的端口收到路由的 ACK 后，会将 ACK 与原始消息配对，并将其状态从 Pending ACK 更改为已发送。

#### 生成 ACK

当 IATA 到 XML 模式下的 IATA PADIS 端口接收消息并生成相应的 XML 时，它可以自动为接收到的消息生成 CONTRL 确认。为此，请在"设置"选项卡的 [ACK](#ack) 部分中选中 **请求技术性 ACK（CONTRL）**／**请求功能性 ACK（CONTRL）**。这些确认必须路由到另一个 IATA PADIS 端口（以 XML 到 IATA 模式）以最终确定 ACK。ACK 路由到的端口应用交换标题，并将 ACK 传递到流中的下一个端口，就像任何其他 IATA PADIS 消息一样。要正确路由 ACK，请将 IATA 到 XML 模式下的 IATA PADIS 端口底部的灰点拖到 XML 到 IATA 模式下的 IATA PADIS 端口上。

有关 EDIFACT 端口中此功能的详细说明，请参阅[生成回执](https://docs.kasoftware.com/26.4/self-hosted/zh/connectors/edifact.md#生成-ack)。IATA PADIS 端口的工作原理相同。

## 宏

在文件命名策略中使用宏可以提高组织效率和对数据的上下文理解。通过将宏合并到文件名中，可以动态地包含相关信息，例如标识符、时间戳和消息头信息，从而为每个文件提供有价值的上下文。这有助于确保文件名反映对组织重要的详细信息。

知行之桥 支持这些宏，它们都使用以下语法：`%Macro%`。

<table><thead><tr><th>宏</th><th>描述</th></tr></thead>
<tbody><tr><td>ConnectorID</td><td>替换为端口的 ConnectorID。</td></tr>
<tr><td>ConnectorName</td><td>替换为端口名称。可用于在文件名或路径中包含连接名称，例如按生成备份文件的数据库连接标记文件。</td></tr>
<tr><td>Ext</td><td>替换为端口当前正在处理的文件的文件扩展名。</td></tr>
<tr><td>Filename</td><td>替换为端口当前正在处理的文件的文件名（包括扩展名）。</td></tr>
<tr><td>FilenameNoExt</td><td>替换为端口当前正在处理的文件的文件名（不带扩展名）。</td></tr>
<tr><td>MessageId</td><td>计算端口输出的消息的 MessageId。</td></tr>
<tr><td>RegexFilename:*pattern*</td><td>将正则表达式模式应用于端口当前正在处理的文件的文件名。</td></tr>
<tr><td>Header:*headername*</td><td>替换为端口正在处理的当前消息的目标消息头（`headername`）的值。</td></tr>
<tr><td>LongDate</td><td>以常规格式计算系统的当前日期时间（例如，2024 年 1 月 24 日星期三）。</td></tr>
<tr><td>ShortDate</td><td>以 yyyy-MM-dd 格式计算系统的当前日期时间（例如 2024-01-24）。</td></tr>
<tr><td>DateFormat:*format*</td><td>以指定格式（`format`）计算系统的当前日期时间。有关可用的日期时间格式，请参阅 [示例日期格式](https://docs.kasoftware.com/26.4/self-hosted/zh/scripting/value-formatters/date-formatters.md#date-formats-with-literal-characters)。</td></tr>
<tr><td>Vault:*vaultitem*</td><td>计算指定保管库项目的值。</td></tr></tbody></table>

### 示例

某些宏（例如 %Ext% 和 %ShortDate%）不需要参数，但其他宏则需要。所有带有参数的宏都使用以下语法：`%Macro:argument%`

以下是带有参数的宏的一些示例：

<ul><li>%Header:headername%：其中 `headername` 是消息上消息头的名称。</li>
<li>%Header:mycustomheader% 解析为输入消息上设置的 `mycustomheader` 消息头的值。</li>
<li>%Header:ponum% 解析为输入消息上设置的 `ponum` 消息头的值。</li>
<li>%RegexFilename:pattern%：其中 `pattern` 是正则表达式模式。例如，`%RegexFilename:^([\w][A-Za-z]+)%` 匹配并解析为文件名中的第一个单词，并且不区分大小写（`test_file.xml` 解析为 `test`）。</li>
<li>%Vault:vaultitem%：其中 `vaultitem` 是 [vault](https://docs.kasoftware.com/26.4/self-hosted/zh/getting-started/administration/settings/global-settings-vault.md) 中项目的名称。例如，`%Vault:companyname%` 解析为存储在保管库中的 `companyname` 项的值。</li>
<li>%DateFormat:format%：其中 `format` 是可接受的日期格式（有关详细信息，请参阅 [示例日期格式](https://docs.kasoftware.com/26.4/self-hosted/zh/scripting/value-formatters/date-formatters.md#sample-date-formats)）。例如，`%DateFormat:yyyy-MM-dd-HH-mm-ss-fff%` 解析为文件上的日期和时间戳。</li></ul>

还可以创建更复杂的宏，如以下示例所示：

<ul><li>将多个宏组合在一个文件名中：`%DateFormat:yyyy-MM-dd-HH-mm-ss-fff%%EXT%`</li>
<li>包括宏之外的文本：`MyFile_%DateFormat:yyyy-MM-dd-HH-mm-ss-fff%`</li>
<li>在宏中包含文本：`%DateFormat:'DateProcessed-'yyyy-MM-dd_'TimeProcessed-'HH-mm-ss%`</li></ul>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.