> ## 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.

# OFTP 端口

> 知行之桥OFTP 端口的配置和使用指南，该端口通过 Odette FTP 协议发送和接收文件。

export const TrustedIp = () => <>
    <p><strong>可信 IP 地址</strong> 部分提供以下功能：</p>

    <table>
      <thead>
        <tr><th>功能</th><th>描述</th></tr>
      </thead>
      <tbody>
        <tr><td><strong>添加</strong></td><td>输入新的 IP 地址范围。</td></tr>
        <tr><td><strong>编辑</strong></td><td>修改选定的 IP 地址范围。</td></tr>
        <tr><td><strong>删除</strong></td><td>从列表中删除选定的 IP 地址范围。</td></tr>
      </tbody>
    </table>

    <p>以下限制适用于此功能：</p>

    <ul style={{
  listStyleType: 'disc',
  paddingLeft: '1.5rem'
}}>
      <li style={{
  display: 'list-item'
}}><code>localhost</code> 不能被修改或从列表中删除。</li>
      <li style={{
  display: 'list-item'
}}>任何超出定义范围的 IP 地址都将被拒绝。</li>
      <li style={{
  display: 'list-item'
}}>支持 IP 范围。例如，条目 <code>100.10.100.1-15</code> 表示允许 <code>100.10.100.1</code> 和 <code>100.10.100.15</code> 之间的 IP 地址。</li>
      <li style={{
  display: 'list-item'
}}>支持无类别域间路由 (CIDR) 表示法。例如，条目 <code>100.10.100.0/24</code> 表示允许 <code>100.10.100.0</code> 和 <code>100.10.100.255</code> 之间的 IP 地址。</li>
      <li style={{
  display: 'list-item'
}}>支持通配符模式。例如，条目 <code>100.10.100.*</code> 表示允许以 <code>100.10.100</code> 开头的 IP 地址。</li>
    </ul>

    <Note>
      <p>为了让客户端能够访问服务器，需要有清晰的网络路径。在云环境中，可能需要在三个地方进行更改：</p>
      <p style={{
  paddingLeft: '1.5rem',
  marginTop: '0.25rem',
  marginBottom: '0.25rem'
}}>• 云控制台中的网络规则。</p>
      <p style={{
  paddingLeft: '1.5rem',
  marginTop: '0.25rem',
  marginBottom: '0.25rem'
}}>• 托管应用程序的机器上的防火墙规则。例如，在使用 Amazon AMI 时，可以使用 <em>简单防火墙</em>（UFW）来允许所需端口上的流量。Linux 环境中的常见策略是将流量从低于 1024 的端口转发到高于 1024 的非标准端口，同时将应用程序配置为使用非标准端口。这可以避免与非 root 用户绑定到低于 1024 的端口相关的权限问题。</p>
      <p style={{
  paddingLeft: '1.5rem',
  marginTop: '0.25rem',
  marginBottom: '0.25rem'
}}>• <a href="/26.2/self-hosted/zh/getting-started/administration/settings/security">安全</a> 选项卡的 <a href="/26.2/self-hosted/zh/getting-started/administration/settings/network-access">网络访问</a> 部分。</p>
    </Note>
  </>;

export const CommonProxySettings = () => <>
    <p>这是一组用于识别连接所经代理并对其进行身份验证的设置。默认情况下，本节使用 <a href="/26.2/self-hosted/zh/getting-started/administration/settings/security">安全设置</a> 页面的 <a href="/26.2/self-hosted/zh/getting-started/administration/settings/proxy-settings">代理设置</a> 部分中的全局设置。清除此复选框可为您的端口提供特定的设置。</p>
    <table>
      <thead>
        <tr><th>设置</th><th>描述</th></tr>
      </thead>
      <tbody>
        <tr>
          <td><strong>代理类型</strong></td>
          <td>基于代理的防火墙使用的协议。</td>
        </tr>
        <tr>
          <td><strong>代理主机</strong></td>
          <td>基于代理的防火墙的名称或 IP 地址。</td>
        </tr>
        <tr>
          <td><strong>代理端口</strong></td>
          <td>基于代理的防火墙的 TCP 端口。</td>
        </tr>
        <tr>
          <td><strong>代理用户</strong></td>
          <td>用于通过基于代理的防火墙进行身份验证的用户名。</td>
        </tr>
        <tr>
          <td><strong>代理密码</strong></td>
          <td>用于对基于代理的防火墙进行身份验证的密码。</td>
        </tr>
        <tr>
          <td><strong>身份验证方案</strong></td>
          <td>保留默认值 <strong>None</strong> 或选择以下身份验证方案之一：<strong>Basic</strong>、<strong>Digest</strong>、<strong>Proprietary</strong> 或 <strong>NTLM</strong>。</td>
        </tr>
      </tbody>
    </table>
  </>;

export const SlasTab = ({siteName = "知行之桥"}) => <>
    <p><em>与配置服务级别协议 (SLA) 相关的设置。</em></p>
    <p>
      SLA 允许配置预期流程中端口发送或接收的数据量，并设置预期达到该数据量的时间范围。当 SLA 未达到时，{siteName} 会发送电子邮件警告用户，并将 SLA 标记为 <em>存在风险</em>，这意味着如果 SLA 未能尽快达到，则会被标记为 <em>已违反</em>。这让用户有机会介入并确定 SLA 未达到的原因，并采取适当的措施。如果在风险时间段结束时仍未达到 SLA，则会将 SLA 标记为已违反，并再次通知用户。
    </p>
    <p>
      要定义 SLA，请启用 <strong>预期数据量</strong>，然后点击 <strong>设置</strong> 选项卡。
    </p>
    <img src="/public/images/sla_empty.png" alt="SLA Empty" />
    <ul>
      <li>如果端口具有单独的发送和接收操作，请使用单选按钮指定 SLA 适用的方向。</li>
      <li>在窗口的 <strong>预计至少</strong> 部分中：
        <ul>
          <li>设置预计处理的最小事务数量（交易量）</li>
          <li>使用 <strong>每个</strong> 字段指定时间范围</li>
          <li>指示 SLA 生效的时间。如果选择 <strong>开始于</strong>，请填写日期和时间字段。</li>
          <li>勾选希望 SLA 生效的星期几对应的复选框。如有必要，请使用下拉菜单选择 <strong>每天</strong>。</li>
        </ul>
      </li>
      <li>在窗口的 <strong>将状态设置为“有风险”</strong> 部分中，指定应将 SLA 标记为有风险的时间。
        <ul>
          <li>默认情况下，只有在违反 SLA 的情况下才会发送通知。要更改此设置，请勾选 <strong>发送“有风险”通知</strong>。</li>
        </ul>
      </li>
    </ul>
    <p>
      以下示例显示了为端口配置的 SLA，该端口预计在周一至周五每天接收 1000 个文件。如果尚未收到 1000 个文件，则会在时间段结束前 1 小时发送风险通知。
    </p>
    <img src="/public/images/sla_defined.png" alt="SLA Configuration Example" />
    <Note>
      如果有必要，可以关闭 SLA 通知。这在维护窗口期间非常有用。点击导航栏上的 <strong>设置</strong>，然后跳转到 <strong>通知 &gt; 通用通知</strong>。点击平板和铅笔图标进行编辑，并取消勾选 <strong>SLA 通知</strong> 设置。
    </Note>
  </>;

export const AlertsTab = ({siteNameShort = "知行之桥"}) => <>
    <p><em>与配置通知相关的设置。</em></p>
    <p>
      在执行服务级别协议 (SLA) 之前，需要设置电子邮件通知以接收通知。默认情况下，{siteNameShort} 使用 <a href="/26.2/self-hosted/zh/getting-started/administration/settings/alerts">通知</a> 选项卡上的全局设置。要为此端口使用其他设置，请启用 <strong>覆盖全局设置</strong>。
    </p>
    <p>
      默认情况下，错误通知处于启用状态，这意味着每当出现错误时都会发送电子邮件。要关闭错误通知，请取消选中 <strong>启用</strong> 复选框。
    </p>
    <p>
      输入 <strong>主题</strong>（必填），然后（可选）输入以逗号分隔的 <strong>收件人</strong> 电子邮件列表。
    </p>
  </>;

export const Message = () => <>
    <p><em>消息设置确定端口如何搜索消息并在处理后管理它们。</em></p>
    <table>
      <thead>
        <tr><th>设置</th><th>描述</th></tr>
      </thead>
      <tbody>
        
          <tr>
            <td><strong>保存到已发送文件夹</strong></td>
            <td>选中此项可将端口处理的文件复制到该端口的“已发送”文件夹中。</td>
          </tr>
        
        <tr>
          <td><strong>已发送文件夹方案</strong></td>
          <td>端口根据选定的时间间隔对 <strong>已发送</strong> 文件夹中的文件进行分组。例如，<strong>Weekly</strong> 选项指示端口每周创建一个新的子文件夹，并将本周发送的所有文件存储在该文件夹中。空白设置告诉端口将所有文件直接保存在 <strong>已发送</strong> 文件夹中。对于处理许多事务的端口，使用子文件夹可以帮助保持文件有序并提高性能。</td>
        </tr>
      </tbody>
    </table>
  </>;

export const MiscConnector = () => <>
    <p><em>特殊设置适用于特定用例。</em></p>
    <table>
      <thead>
        <tr>
          <th>设置</th>
          <th>描述</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td><strong>其他设置</strong></td>
          <td>允许在以分号分隔的列表中配置隐藏的端口设置，例如 <code>setting1=value1;setting2=value2</code>。正常的端口用例和功能不需要使用这些设置。</td>
        </tr>
      </tbody>
    </table>
  </>;

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

export const ProfileLogging = () => <>
    <p><em>用于管理日志创建和存储的设置。</em></p>
    <table>
      <thead>
        <tr>
          <th>设置</th>
          <th>描述</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td><strong>日志级别</strong></td>
          <td>端口生成的日志的详细程度。当请求支持时，请将其设置为 <strong>Debug</strong>。</td>
        </tr>
        <tr>
          <td><strong>日志轮换间隔</strong></td>
          <td>创建新日志文件之前等待的天数。</td>
        </tr>
        <tr>
          <td><strong>日志删除间隔</strong></td>
          <td>删除旧日志文件之前等待的天数。</td>
        </tr>
      </tbody>
    </table>
  </>;

export const MacrosExamples = ({extraMacros = []}) => <>
    <p>
      某些宏（例如 %Ext% 和 %ShortDate%）不需要参数，但其他宏则需要。所有带有参数的宏都使用以下语法：<code>%Macro:argument%</code>
    </p>

    <p>以下是带有参数的宏的一些示例：</p>

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

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

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

export const MacrosTable = ({siteName = "知行之桥", extraMacros = []}) => <>
    <p>
      在文件命名策略中使用宏可以提高组织效率和对数据的上下文理解。通过将宏合并到文件名中，可以动态地包含相关信息，例如标识符、时间戳和消息头信息，从而为每个文件提供有价值的上下文。这有助于确保文件名反映对组织重要的详细信息。
    </p>

    <p>{siteName} 支持这些宏，它们都使用以下语法：<code>%Macro%</code>。</p>

    <table>
      <thead>
        <tr><th>宏</th><th>描述</th></tr>
      </thead>
      <tbody>
        <tr><td>ConnectorID</td><td>替换为端口的 ConnectorID。</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:<em>pattern</em></td><td>将正则表达式模式应用于端口当前正在处理的文件的文件名。</td></tr>
        <tr><td>Header:<em>headername</em></td><td>替换为端口正在处理的当前消息的目标消息头（<code>headername</code>）的值。</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:<em>format</em></td><td>以指定格式（<code>format</code>）计算系统的当前日期时间。有关可用的日期时间格式，请参阅 <a href="/26.2/self-hosted/zh/scripting/value-formatters/date-formatters#date-formats-with-literal-characters">示例日期格式</a>。</td></tr>
        <tr><td>Vault:<em>vaultitem</em></td><td>计算指定保管库项目的值。</td></tr>
        {extraMacros.map(item => <tr key={item.name}>
            <td>{item.name}</td>
            <td>{item.description}</td>
          </tr>)}
      </tbody>
    </table>
  </>;

export const Performance = () => <>
    <p><em>与端口资源分配相关的设置。</em></p>
    <table>
      <thead>
        <tr>
          <th>设置</th>
          <th>描述</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td><strong>最大工作线程数</strong></td>
          <td>此端口上处理文件时从线程池中消耗的最大工作线程数。如果设置，则会覆盖 <a href="/26.2/self-hosted/zh/getting-started/administration/settings/advanced-settings">高级设置</a> 页面的 <a href="/26.2/self-hosted/zh/getting-started/administration/settings/performance-settings">性能设置</a> 部分的默认设置。</td>
        </tr>
        <tr>
          <td><strong>最大文件数</strong></td>
          <td>分配给端口的每个线程发送的最大文件数。如果设置，则会覆盖 <a href="/26.2/self-hosted/zh/getting-started/administration/settings/advanced-settings">高级设置</a> 页面的 <a href="/26.2/self-hosted/zh/getting-started/administration/settings/performance-settings">性能设置</a> 部分的默认设置。</td>
        </tr>
      </tbody>
    </table>
  </>;

export const siteNameShort = "知行之桥";

export const siteName = "知行之桥";

OFTP 端口通过 Odette FTP 协议发送和接收文件。

## 核心功能

* 支持 Odette FTP，适用于汽车和制造业的安全文件交换
* 支持基于证书加密、签名和压缩的双向文件传输
* 通过 SSID/SFID 配置，实现经由中间 OFTP 实体的消息路由
* 具备自动重试与重发逻辑，支持同步和异步回执处理

## 概述

OFTP 连接需要在两处配置。在 OFTP [个人设置](../getting-started/administration/profiles)页面中配置 Odette 标识符、本地 OFTP 服务器设置，以及所有 OFTP 连接共用的其他信息。然后为各个 OFTP 端口配置特定于单个交易伙伴（单个 OFTP 实体）的连接设置。

有关通过单独 OFTP 实体（例如清算中心）路由 OFTP 消息的信息，请参见[消息路由](#消息路由)。

## 个人设置配置

必须先配置 OFTP 个人设置，才能与各个 OFTP 端口建立连接。在导航栏中单击 **个人设置 > OFTP**。

### OFTP 个人设置选项卡

#### 个人身份标识

*用于识别本地个人设置的设置。*

| 设置                      | 说明                                                                     |
| ----------------------- | ---------------------------------------------------------------------- |
| **Odette 标识符（SSID 代码）** | 你的 Odette 标识符。该值包含在传出传输中用于标识发送方，传入消息必须寻址到此标识符。Odette 标识符由 Odette 组织提供。 |
| **密码（SSID 密码）**         | 与 **Odette 标识符**关联的密码。只要交易伙伴在其系统中配置了相同值，你就可以自行选择此值。                    |

#### 服务器设置

*与 OFTP 服务器实现相关的设置。*

| 设置           | 说明                                     |
| ------------ | -------------------------------------- |
| **端口**       | 服务器监听传入连接的端口。                          |
| **SSL/TLS**  | 连接服务器时是否必须协商 SSL/TLS。                  |
| **TLS 私钥证书** | 如果启用 TLS/SSL，请指定验证服务器身份所需的 TLS/SSL 证书。 |
| **证书密码**     | 访问 TLS/SSL 证书所需的密码。                    |

#### 个人证书

*与私有解密和签名证书相关的设置。*

| 设置         | 说明                                                                                            |
| ---------- | --------------------------------------------------------------------------------------------- |
| **数据解密证书** | 用于解密传入消息并签名传出消息的证书。切勿与外部方共享此证书。单击**创建证书**按钮可生成可直接用于 OFTP 交易的自签名证书；还会生成同名且扩展名为 `.cer` 的对应公钥证书。 |
| **证书密码**   | 访问**数据解密证书**所需的密码。                                                                            |

#### 可选证书设置

*用于定义证书参数的可选设置。*

| 设置           | 说明                                                         |
| ------------ | ---------------------------------------------------------- |
| **认证质询私钥证书** | 带有私钥的证书，在服务器质询以验证真实性时使用。接受 `.pfx` 或 `.p12` 格式的 PKCS#12 证书。 |
| **证书密码**     | 私钥证书密码。                                                    |
| **签名私钥证书**   | 带有私钥的证书，用于签名已发送消息。接受 `.pfx` 或 `.p12` 格式的 PKCS#12 证书。       |
| **证书密码**     | 私钥证书密码。                                                    |
| **强证书验证**    | 仅允许来自受信任证书颁发机构的强证书验证。                                      |

#### 高级设置

| 设置       | 说明                   |
| -------- | -------------------- |
| **空闲超时** | 关闭服务器非活动连接前等待的时长（秒）。 |

#### 锁定

*与锁定服务器访问相关的可选设置。*

| 设置       | 说明                 |
| -------- | ------------------ |
| **失败次数** | 用户被锁定前允许的失败登录尝试次数。 |
| **锁定时间** | 用户被锁定的时长（分钟）。      |
| **检测周期** | 失败登录尝试记录保留的时长（分钟）。 |

#### 受信任的 IP 地址

<TrustedIp />

#### 日志

<ProfileLogging />

#### 其他设置

<MiscConnector />

## 端口配置

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

### 设置选项卡

#### 主机配置

*与要连接的远程 OFTP 实体相关的设置。*

| 设置              | 说明                                    |
| --------------- | ------------------------------------- |
| **端口 ID**       | 端口的静态唯一标识符。                           |
| **端口类型**        | 显示端口名称及其功能说明。                         |
| **端口说明**        | 可选字段，用于自由描述该端口及其在工作流中的作用。             |
| **Odette 标识符**  | 远程 OFTP 实体的 Odette 标识符（交易伙伴的标识符）。     |
| **密码**          | 与伙伴标识符关联的密码。                          |
| **版本**          | 交换文件时使用的 OFTP 协议版本。                   |
| **远程主机**        | 远程 OFTP 服务器的主机名或 IP 地址。               |
| **端口**          | 连接远程 OFTP 服务器时使用的端口。                  |
| **连接超时**        | 端口在抛出超时错误前等待连接响应的时长（秒）。               |
| **使用 SSL/TLS**  | 连接远程 OFTP 服务器时是否协商 SSL/TLS。           |
| **Odette 安全认证** | 是否执行应用层加密和解密。若要执行此认证，必须同时指定签名证书和加密证书。 |

#### 连接信息

*与 OFTP 连接参数相关的设置。*

| 设置            | 说明                  |
| ------------- | ------------------- |
| **虚拟文件格式**    | 传输文件时使用的 OFTP 文件格式。 |
| **虚拟传出文件安全性** | 是否签名和/或加密传出消息。      |
| **虚拟传入文件安全性** | 是否要求传入消息经过签名和/或加密。  |
| **压缩**        | 是否压缩传出消息。           |
| **签名回执**      | 传出消息是否应请求或要求返回签名回执。 |

#### 交易伙伴证书

*与交易伙伴提供的公钥证书相关的设置。*

| 设置            | 说明                                                                                                                                                    |
| ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| **加密证书**      | 发送消息时用于加密的公钥证书。该证书必须与交易伙伴的私有解密证书配对。交易伙伴在共享其 OFTP 配置详细信息时必须提供此公钥证书。                                                                                    |
| **TLS 服务器证书** | 用于验证 TLS/SSL 服务器身份的公钥证书。仅当伙伴的 OFTP 系统要求使用 HTTPS 而非 HTTP 时才需要。如果交易伙伴未提供 TLS 服务器证书，可以将此设置留空以允许底层 OS/JVM 执行证书验证，或将其设置为 `Any Certificate` 以无条件信任目标服务器的身份。 |

#### 路由

*与通过单独 OFTP 实体路由 OFTP 消息相关的设置。*

| 设置       | 说明                                                                            |
| -------- | ----------------------------------------------------------------------------- |
| **路由伙伴** | 如果传出的 OFTP 消息应通过独立于目标 OFTP 实体的 OFTP 实体进行路由，请将此字段设置为配置为连接中间 OFTP 服务器的 OFTP 端口。 |

例如，如果端口需要将文件发送到 `serverA` 并通过 `serverB` 路由该文件，请将端口配置为连接到 `serverA`，并将此字段设置为配置为连接到 `serverB` 的 OFTP 端口。有关更多信息，请参见[消息路由](#消息路由)。

### 高级选项卡

#### 可选证书（PEM/CER 格式）

*与用于增强安全性的其他证书相关的设置。*

| 设置         | 说明                              |
| ---------- | ------------------------------- |
| **认证质询证书** | 服务器质询以验证真实性时要出示的公钥证书。           |
| **验证证书**   | 验证传入消息上的数字签名时使用的公钥证书。           |
| **回执验证证书** | 验证传入回执上的数字签名时使用的公钥证书。           |
| **延期证书**   | 用于身份验证的附加证书。在更换证书时需要重叠期的情况下很有用。 |
| **延期验证证书** | 用于签名验证的附加证书。在更换证书时需要重叠期的情况下很有用。 |

#### 首选个人设置

*这些设置会覆盖个人设置页面上的 OFTP 配置。设置首选个人设置允许针对某些交易伙伴使用不同的本地证书和标识符。*

| 设置       | 说明                                                                                                                                                               |
| -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **SSID** | 你的 Odette 标识符。此项会覆盖个人设置选项卡上的 **Odette 标识符**。设置后，OFTP 服务器会为此伙伴使用备用 SSID 和密码。发送时，除非被中继伙伴覆盖，否则此 ID 会用作文件发送方并用于会话身份验证。如果同时设置了 **SSID** 和 **SFID**，发送文件时会使用 **SFID**。 |
| **密码**   | 本地标识符密码。                                                                                                                                                         |
| **SFID** | 接受传入 OFTP 文件时，{siteName} 会在此端口中处理消息，就好像它们是从本地 OFTP 个人设置中继而来一样。除非设置此值，否则传入网络连接会使用 OFTP 个人设置中的 SSID 和密码进行响应。如果同时设置了 **SSID** 和 **SFID**，发送文件时会使用 **SFID**。         |
| **私钥证书** | 用于解密传入消息并签名传出消息的证书。此项会覆盖个人设置页面上的**数据解密证书**设置。                                                                                                                    |
| **证书密码** | 访问本地私钥证书所需的密码。                                                                                                                                                   |

#### TLS 客户端认证

*当需要双向 TLS 身份验证时，与客户端身份验证相关的设置。*

| 设置         | 说明                    |
| ---------- | --------------------- |
| **使用个人设置** | 使用个人设置页面上的私钥证书。       |
| **私钥证书**   | TLS 客户端身份验证期间出示的私钥证书。 |
| **证书密码**   | 访问 TLS 客户端证书所需的密码。    |

#### 自动证书识别

本节中的字段允许你指定模式，使端口能够自动识别证书。每个字段中的默认通配符（\*）会指示端口不搜索相应模式。

#### 高级设置

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

| 设置             | 说明                                                                                                                                      |
| -------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| **信用计数**       | 初始连接（SSID 命令）中发送的最大信用值。                                                                                                                 |
| **加密算法**       | 加密传出消息时使用的算法。                                                                                                                           |
| **交换缓冲区大小**    | 初始连接（SSID 命令）中发送的数据交换缓冲区大小（字节）。                                                                                                         |
| **强制协议版本**     | 是否接受未为此伙伴配置的协议版本。                                                                                                                       |
| **文件描述映射**     | 用于设置发送文件的文件描述文本的映射。使用以分号分隔的 glob 模式列表来匹配文件名。例如，`INVOICE*=This is an invoice;*ORDER*=This is an order`。                                  |
| **最大记录大小**     | 当虚拟文件格式为 Fixed 或 Variable 时，此字段决定每条记录的最大大小。默认记录大小为 128。                                                                                 |
| **文件哈希算法**     | 要使用的文件哈希算法。                                                                                                                             |
| **回执哈希算法**     | 要使用的回执哈希算法。                                                                                                                             |
| **接收文件名格式**    | 传入文件会使用此文件名约定写入**交易**选项卡。可以使用以下宏确保生成唯一文件名：%VirtualFilename%、%VirtualFileDate%、%GUID%。                                                   |
| **启用的 TLS 协议** | 建立传出连接时支持的 TLS/SSL 协议列表。最佳实践是仅使用 TLS 协议。某些过时的操作系统不支持 TLS 1.2。                                                                           |
| **虚拟文件名映射**    | 发送文件时从本地文件名到传出虚拟文件名的映射。使用以分号分隔的 glob 模式列表来匹配文件名。例如，`INVOICE*=filename1;*ORDER*=filename2`。                                              |
| **本地文件方案**     | 为端口输出的消息分配文件名的方案。可以在文件名中使用宏，动态包含标识符和时间戳等信息。有关更多信息，请参见[宏](#宏)。                                                                           |
| **处理延迟**       | 放入**交易**选项卡的文件延迟处理的时长（秒）。这是一个旧版设置。最佳实践是[使用 File 端口](../flows/designing-a-flow#interacting-with-the-local-file-system)管理本地文件系统，而不是使用此设置。 |

#### 代理设置

<CommonProxySettings />

#### 消息

<Message />

#### 日志

<Logging />

#### 其他设置

<MiscConnector />

### 自动化选项卡

#### 自动化设置

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

| 设置           | 说明                                                                                                    |
| ------------ | ----------------------------------------------------------------------------------------------------- |
| **发送自动化**    | 到达端口的文件是否会自动作为 OFTP 消息发送。                                                                             |
| **重试间隔**     | 发送失败后重试前等待的分钟数。当服务器未响应发送尝试，或返回否定响应表示未收到文件时，会触发重试。                                                     |
| **最大次数**     | 端口处理输入文件的最大次数。成功与否基于服务器成功确认以及回执验证（同步请求时）。如果设置为 0，端口会无限期重试该文件。                                         |
| **重发间隔**     | 未确认消息重新发送前等待的分钟数。当服务器收到文件，但未在预期时间范围内提供异步 MDN 回执时，会触发重发。                                               |
| **最大次数（异步）** | 请求异步回执时，端口处理输入文件的最大次数。成功与否基于服务器成功确认后是否在**重发间隔**内返回异步回执。如果未返回成功的服务器确认，则改用**最大次数**。如果设置为 0，端口会无限期重发该文件。 |
| **接收**       | 端口是否应自动发出拉取请求以接收来自交易伙伴的消息。                                                                            |
| **间隔**       | 自动下载尝试之间的间隔。                                                                                          |
| **小时后分钟数**   | 小时计划的分钟偏移量。仅当上面的间隔设置为\_每小时\_时适用。例如，如果此值设置为 5，自动化服务会在 1:05、2:05、3:05 等时间下载。                            |
| **时间**       | 尝试发生的当天时间。仅当上面的间隔设置为\_每天\_、\_每周\_或\_每月\_时适用。                                                          |
| **日期**       | 尝试发生的日期。仅当上面的间隔设置为\_每周\_或\_每月\_时适用。                                                                   |
| **分钟**       | 尝试下载前等待的分钟数。仅当上面的间隔设置为\_分钟\_时适用。                                                                      |
| **Cron 表达式** | 表示 cron 表达式的五段字符串，用于确定尝试发生的时间。仅当上面的间隔设置为\_高级\_时适用。                                                    |

#### 性能

<Performance />

### 告警选项卡

<AlertsTab />

### SLA 选项卡

<SlasTab />

## 建立连接

建立传出 OFTP 连接需要以下设置：

* 标识符（交易伙伴的标识符）
* 密码（与交易伙伴标识符关联的密码）
* 远程主机
* 端口

建立连接后，必须先配置相应的交易伙伴证书，才能安全传输文件。

## 收发文件

完成 OFTP 个人设置和特定伙伴 OFTP 端口的配置后，即可安全地发送和接收文件。

### 发送文件

在 OFTP 端口中，**交易**选项卡会显示要发送给目标交易伙伴的文件。如果在[自动化](#自动化选项卡)选项卡上启用了**发送自动化**，到达端口交易选项卡的文件会自动打包并发送。展开与已传输文件关联的行可访问所有传输的日志文件。

**创建测试文件**按钮可生成一系列简单的测试文件，用于发送给交易伙伴。

### 重发和重试

当预期交易伙伴返回异步回执，但未能在**重发间隔**时长内（默认 60 分钟）返回时，会触发 OFTP 重发。随后应用程序会尝试重新发送传输。应用程序会继续重发消息，直到收到回执或耗尽**最大次数（异步）**。

当交易伙伴系统的协议响应指示服务器未收到传输时，会触发重试。这可能表示网络或连接问题，而此类问题通常是暂时性的。应用程序会每隔**重试间隔**分钟重试传输，直到传输被接收或耗尽**最大次数**。

### 接收文件

在 OFTP 端口中，**交易**选项卡会显示应用程序已接收并路由到该端口的文件。文件会根据传入 OFTP 消息中的 Odette 标识符路由到特定 OFTP 端口。展开每个文件行可显示该传输的可用日志列表。

这些文件位于端口的**交易**选项卡上。如果该端口连接到工作流中的其他端口，文件会自动从 OFTP 端口的**交易**选项卡移动到工作流中下一个端口的**交易**选项卡。

## 消息路由

每个 OFTP 端口都配置为连接到单个 OFTP 实体。有时使用 OFTP 需要路由场景：源自某个 OFTP 实体（下图中的代理 `A`）的文件需要通过另一个 OFTP 实体（代理 `B`）才能到达目标 OFTP 实体（代理 `C`）。

<img src="https://mintcdn.com/qiao/3lMD3uYuGJqErRlJ/public/images/oftp-relaying.png?fit=max&auto=format&n=3lMD3uYuGJqErRlJ&q=85&s=8319bcd7b6a3d7f72b4e2dde1a84448f" alt="OFTP 路由" width="574" height="354" data-path="public/images/oftp-relaying.png" />

在此场景中，代理 `B` 的 Odette 标识符是传输期间的 SSID 值，代理 `C` 的 Odette 标识符是 SFID。换句话说，SSID 标识发起方连接的“中间人”服务器，而 SFID 标识该“中间人”应将 OFTP 消息路由到的目标实体。

### {siteNameShort} 中的 OFTP 路由

若要在 {siteNameShort} 中实现此路由场景，请配置一个 OFTP 端口连接到代理 `B`（“中间人”服务器），并配置另一个 OFTP 端口连接到代理 `C`（目标服务器）。

将代理 `C` 端口（**设置**选项卡的[路由](#路由)部分中）的**路由伙伴**字段设置为配置为连接代理 `B` 的 OFTP 端口。

要发送到目标服务器的文件应由配置为连接代理 `C` 的 OFTP 端口处理。另一个 OFTP 端口（目标为代理 `B`）会在后台用于路由消息，但不会直接处理工作流中的文件。

### SSID 与 SFID

如果伙伴提供了一个称为 SFID 的单一标识符，请配置 OFTP 端口连接到此实体，并将该 SFID 用作 SSID。如果伙伴同时提供 SFID 值和 SSID 值，则在上述场景中，SFID 对应服务器 `C`，SSID 对应服务器 `B`。

## 宏

<MacrosTable />

### 示例

<MacrosExamples />
