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

# AS4 端口

> 知行之橋AS4 端口的配置和使用指南，支援使用 AS4 協議傳送和接收訊息。

AS4 端口支援使用 Applicability Statement 4 (AS4) 協議傳送和接收訊息。

## 核心功能

* 現代基於 SOAP 的 B2B 訊息傳遞，支援多種配置檔案（ENTSOG、e-SENS、BDEW 和 eDelivery）
* 具有權杖認證和憑證管理的進階安全功能
* 支援推送和拉取兩種訊息模式
* 支援透過服務和操作定義處理業務協議
* 全面支援訊息屬性和自定義請求頭
* 已獲得 [Drummond Group](https://www.drummondgroup.com/certified-products/b2b-interoperability/) 認證

## 概觀

AS4 連線需要在兩個位置進行配置。首先在 AS4 [配置檔案](https://docs.kasoftware.com/26.4/self-hosted/zh-Hant/getting-started/administration/profiles.md)頁面配置本地 AS4 參與方識別碼和私密金鑰憑證。然後，為單個交易夥伴在各個 AS4 端口中配置專用連線設定。當輸入檔案由 AS4 端口處理時，它會被打包並傳送到指定的交易夥伴。

當 知行之橋 透過 AS4 接收檔案時，會嘗試將檔案路由到特定的 AS4 端口。應用程式使用 AS4 訊息中的 AS4 參與方識別碼來確定應由哪個 AS4 端口接收該檔案。檔案路由到 AS4 端口後，會放入該端口的**交易** Tab，或傳遞到工作流程中下一個已連線的端口。

AS4 端口支援共享連線。這意味著在一個端口中建立的連線和配置也會顯示在**設定 > 連線** Tab 中，以便在其他 AS4 端口中重複使用。

## 配置檔案配置

必須先配置 AS4 配置檔案，才能與各個 AS4 端口建立連線。單擊導覽列上的**配置檔案**，然後單擊 **AS4** Tab。

### AS4 配置檔案 Tab

#### 個人 ID

*用於標識本地配置檔案的設定。*

| 設定 | 說明 |
| - | - |
| **參與方識別碼** | 你的 AS4 識別碼。知行之橋 傳送的訊息必須定址到此識別碼，傳出訊息也使用此值標識訊息發起方。識別碼區分大小寫。 |
| **參與方識別碼型別** | **參與方識別碼**的可選型別宣告。如果指定，請提供該識別碼所屬的域。 |

#### 個人憑證

*與私有解密憑證和可選簽章憑證相關的設定。*

| 設定 | 說明 |
| - | - |
| **私密金鑰憑證** | 用於解密傳入訊息的私密金鑰憑證；除非設定了單獨的**簽章憑證**，否則也用於簽章傳出訊息。切勿與外部方共享此憑證。單擊**建立憑證**按鈕可生成可用於 AS4 交易的自簽章憑證；同時還會生成一個同名、副檔名為 `.cer` 的對應公開金鑰憑證。支援 PKCS#12 憑證（.pfx 或 .p12）。 |
| **私密金鑰憑證密碼** | 存取**私密金鑰憑證**所需的密碼。 |
| **簽章憑證** | 用於簽章傳出訊息的可選私密金鑰憑證。設定後，將使用它代替**私密金鑰憑證**進行簽章。當交易夥伴要求使用單獨的簽章和解密憑證時（例如 eDelivery V2 或 ENTSOG V4 配置檔案），請設定此項。 |
| **簽章憑證密碼** | 存取**簽章憑證**所需的密碼。 |

#### 輪轉憑證

| 設定 | 說明 |
| - | - |
| **輪轉私密金鑰憑證** | 一個輔助私密金鑰憑證；如果使用**私密金鑰憑證**解密失敗，可用它解密傳入訊息。僅在更換憑證且需要重疊期以接收使用舊憑證或新憑證加密的傳入訊息時，才使用此設定。輪轉憑證絕不會用於簽章傳出訊息；傳送給仍在使用舊憑證的交易夥伴時，這可能導致簽章驗證問題。 |
| **輪轉私密金鑰憑證密碼** | 存取**輪轉私密金鑰憑證**所需的密碼。 |

#### 日誌

*用於管理日誌建立和儲存的設定。*

<table><thead><tr><th>設定</th>
<th>描述</th></tr></thead>
<tbody><tr><td>**日誌級別**</td>
<td>端口生成的日誌的詳細程度。當請求支援時，請將其設定為 **Debug**。</td></tr>
<tr><td>**日誌輪換間隔**</td>
<td>建立新日誌檔案之前等待的天數。</td></tr>
<tr><td>**日誌刪除間隔**</td>
<td>刪除舊日誌檔案之前等待的天數。</td></tr></tbody></table>

#### 應用程式 URL

*與從公網存取 知行之橋 相關的設定和顯示值。*

| 設定 | 說明 |
| - | - |
| **接收 URL** | 知行之橋 偵聽傳入 AS4 訊息的 URL。請與所有交易夥伴共享此 URL。 |

#### 其他

*特殊設定適用於特定用例。*

<table><thead><tr><th>設定</th>
<th>描述</th></tr></thead>
<tbody><tr><td>**其他設定**</td>
<td>允許在以分號分隔的清單中配置隱藏的端口設定，例如 `setting1=value1;setting2=value2`。正常的端口用例和功能不需要使用這些設定。</td></tr></tbody></table>

## 端口配置

配置全域 AS4 配置檔案設定後，可在[工作流程](docs/flows/flows)頁面為每個交易夥伴建立並配置單獨的 AS4 端口。

### 設定 Tab

#### 配置

| 設定 | 說明 |
| - | - |
| **端口 ID** | 端口的靜態唯一識別碼。 |
| **端口型別** | 顯示端口名稱及其功能說明。 |
| **端口描述** | 可選欄位，用於自由描述端口及其在工作流程中的作用。 |
| **連線** | 可用 AS4 連線清單。選擇現有連線，或單擊**建立**新增新連線。有關**新增連線**頁面中選項的說明，請參閱[建立連線](#建立連線)。 |

#### 連線資訊

*與指定交易夥伴連線參數相關的設定。*

| 設定 | 說明 |
| - | - |
| **訊息傳送安全性** | 是否簽章和/或加密傳出的 AS4 訊息。強烈建議使用簽章和加密。 |
| **訊息接收安全性** | 是否要求傳入的 AS4 訊息包含簽章和/或加密。如果收到的訊息缺少必需的安全參數，將引發錯誤。 |
| **壓縮** | 是否壓縮傳出訊息的負載。 |
| **訊息分割區通道** | AS4 交換應透過的通道。如果未指定通道，則會隱式分配預設訊息分割區通道（MPC）。傳送或接收拉取請求時，MPC 很重要，因為只有分配的 MPC 中排隊的訊息才會作為拉取請求的回應傳回。 |

#### 回執

*與傳送 AS4 訊息時請求回執相關的設定。*

| 設定 | 說明 |
| - | - |
| **啟用回執** | 是否應傳回回執以回應傳入 AS4 訊息，以及是否期望對傳出的 AS4 訊息傳回回執。 |
| **傳輸** | 回執是作為傳出 AS4 訊息的直接回應傳回（同步），還是稍後透過單獨連線傳回（非同步）。除非 AS4 訊息非常大（常見閾值為 50MB），導致處理訊息並傳遞同步回執可能使連線逾時時長緊張，否則建議使用同步回執。 |

#### 業務協議詳情

*與 AS4 業務協議共享詳情相關的設定。配置前應與交易夥伴確認這些值。*

| 設定 | 說明 |
| - | - |
| **服務** | 接受訊息的業務流程。 |
| **服務操作** | 業務流程中正在執行的操作或活動。 |
| **服務型別** | 為**服務**提供上下文的可選限定符。 |
| **傳送方角色** | 訊息來源方的角色。根據夥伴協議，傳送和接收 AS4 請求時這些角色可以顛倒，也可以保持不變。此值用於生成的 AS4 SOAP 信封的 `PartyInfo` 元素中。 |
| **接收方角色** | 訊息交付目標方的角色。根據夥伴協議，傳送和接收 AS4 請求時這些角色可以顛倒，也可以保持不變。此值用於生成的 AS4 SOAP 信封的 `PartyInfo` 元素中。 |

#### 進階設定

| 設定 | 說明 |
| - | - |
| **本地檔案命名方案** | 為端口輸出的訊息分配檔名的方案。可以在檔名中動態使用宏，以包含識別碼、時間戳等資訊。更多資訊，請參閱[宏](#宏)。 |

### 進階 Tab

#### 訊息屬性

可以提供一組以名稱-值對形式指定的自定義訊息屬性，作為傳出訊息的一部分包含在內。在 UI 中設定名稱-值對，等同於在訊息到達 AS4 端口之前對訊息執行 `<arc:set attr="Header:AS4-MessageProperty" value="Name=Value" />`。

可以根據訊息內容動態覆蓋訊息屬性，或指定 `string` 以外的型別。為此，請使用類似以下指令碼新增訊息頭：

```xml theme={null}
<arc:set attr="Header:AS4-MessageProperty" value="PModeName=http://example.org/pmode;Country=LU" />
<arc:set attr="Header:AS4-MessagePropertyType" value="PModeName=string;Country=string" />
```

`AS4-MessagePropertyType` 中指定的名稱必須與 `AS4-MessageProperty` 中使用的名稱匹配。多個屬性用分號分隔。例如，以下範例在上述指令碼基礎上擴充套件了一個 `integer` 屬性：

```xml theme={null}
<arc:set attr="Header:AS4-MessageProperty" value="PModeName=http://example.org/pmode;Country=LU;MessageCount=5" />
<arc:set attr="Header:AS4-MessagePropertyType" value="PModeName=string;Country=string;MessageCount=integer" />
```

#### 其他設定

*先前類別中未包含的設定。*

| 設定 | 說明 |
| - | - |
| **附加 XML 檔案** | XML 負載應作為 MIME 附件打包到 SOAP 訊息中，還是直接包含在 SOAP 正文中。 |
| **重複訊息操作** | 當端口收到包含此前見過的 Message Id 的 AS4 訊息時，應如何處理。端口透過\_記住\_在**重複間隔**指定分鐘數內接收的 Message Id 來檢測重複訊息。選項： **繼續** — 像處理其他檔案一樣處理重複檔案。 **忽略** — 忽略傳入檔案，且不將其寫入接收資料夾。 **失敗** — 引發錯誤且不處理該檔案。 |
| **重複間隔** | 具有相同 Message Id 的訊息被視為重複的分鐘數。如果設定為 0，Message Id 將一直儲存到伺服器重啟。 |
| **拉取 URL** | 傳送拉取請求的 URL 端點。僅當它與**夥伴 URL** 不同時才需要。 |
| **回執 URL** | 傳送回執的 URL 端點。僅當它與**夥伴 URL** 不同時才需要。 |
| **處理延遲** | 放入**交易** Tab 的檔案延遲處理的時間（秒）。這是一箇舊設定。最佳實踐是[使用檔案端口](https://docs.kasoftware.com/26.4/self-hosted/zh-Hant/flows/designing-a-flow.md#與本地檔案系統互動)來管理本地檔案系統，而不是使用此設定。 |

#### 代理設定

這是一組用於識別連線所經代理並對其進行身分驗證的設定。預設情況下，本節使用 [安全設定](https://docs.kasoftware.com/26.4/self-hosted/zh/getting-started/administration/settings/security.md) 頁面的 [代理設定](https://docs.kasoftware.com/26.4/self-hosted/zh/getting-started/administration/settings/proxy-settings.md) 部分中的全域設定。清除此核取方塊可為您的端口提供特定的設定。

<table><thead><tr><th>設定</th><th>描述</th></tr></thead>
<tbody><tr><td>**代理型別**</td>
<td>基於代理的防火牆使用的協議。</td></tr>
<tr><td>**代理主機**</td>
<td>基於代理的防火牆的名稱或 IP 地址。</td></tr>
<tr><td>**代理端口**</td>
<td>基於代理的防火牆的 TCP 端口。</td></tr>
<tr><td>**代理使用者**</td>
<td>用於透過基於代理的防火牆進行身分驗證的使用者名稱。</td></tr>
<tr><td>**代理密碼**</td>
<td>用於對基於代理的防火牆進行身分驗證的密碼。</td></tr>
<tr><td>**身分驗證方案**</td>
<td>保留預設值 **None** 或選擇以下身分驗證方案之一：**Basic**、**Digest**、**Proprietary** 或 **NTLM**。</td></tr></tbody></table>

#### 訊息

*訊息設定確定端口如何搜尋訊息並在處理後管理它們。*

**注意：**以下設定已棄用，預設處於隱藏狀態。只有先前已啟用這些設定或將其配置為非預設值的端口才會顯示它們。若要保留成功處理的檔案副本，請在工作流程中右鍵單擊該端口，選擇**顯示成功路徑**，然後將成功路徑連線到 [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>

### 自動化 Tab

#### 自動化設定

*與端口自動處理檔案相關的設定。*

| 設定 | 說明 |
| - | - |
| **傳送** | 到達端口的檔案是否會自動作為 AS4 訊息傳送。 |
| **重試間隔（分鐘）** | 傳送失敗後重試前等待的分鐘數。當伺服器未回應傳送嘗試，或傳回否定回應表示未收到檔案時，將觸發重試。 |
| **最大嘗試次數** | 端口處理輸入檔案的最大次數。是否成功取決於伺服器成功確認以及回執驗證（同步請求回執時）。如果設定為 0，端口將無限期重試該檔案。 |
| **重發間隔（分鐘）** | 重新傳送未確認訊息前等待的分鐘數。當伺服器收到檔案，但未在預期時間範圍內提供非同步回執時，將觸發重發。 |
| **最大嘗試次數（非同步）** | 請求非同步回執時，端口處理輸入檔案的最大次數。是否成功取決於伺服器成功確認後，非同步回執是否在**重發間隔**內傳回。如果未傳回成功的伺服器確認，則改用**最大嘗試次數**。如果設定為 0，端口將無限期重發該檔案。 |
| **接收** | 端口是否應自動發出拉取請求，以從交易夥伴接收訊息。 |
| **間隔** | 自動拉取請求之間的間隔。 |
| **整點後分鍾數** | 小時計劃的分鐘偏移量。僅當上述間隔設定為\_每小時\_時適用。 |
| **時間** | 嘗試發生的具體時間。僅當上述間隔設定為\_每天\_、\_每週\_或\_每月\_時適用。 |
| **日期** | 嘗試發生的日期。僅當上述間隔設定為\_每週\_或\_每月\_時適用。 |
| **分鐘數** | 嘗試下載前等待的分鐘數。僅當上述間隔設定為\_分鐘\_時適用。 |
| **Cron 運算式** | 表示 cron 運算式的五段字串，用於確定嘗試發生的時間。僅當上述間隔設定為\_進階\_時適用。 |
| **開始日期和時間** | 自動化首次執行的日期和時間。之後的每次執行都遵循上方的間隔設定。上次和下次執行時間顯示在 [自動化狀態](#自動化狀態) 區段中。 |

#### 自動化狀態

*唯讀摘要，顯示自動化是否正在執行、上次執行的結果以及下次執行的時間。*

**自動化狀態**卡片顯示在 **自動化** 索引標籤的 **啟用** 核取方塊下方，適用於 **接收**、**下載** 和 **定時傳送** 自動化。該卡片回答三個問題：自動化是否已執行、執行是否成功，以及下次執行的時間。

在儲存端口之前，當您變更 **啟用** 核取方塊，或者變更 **間隔** 或 **開始日期和時間** 設定時，卡片會隨之更新。

![自動化索引標籤上的自動化狀態卡片，顯示已暫停狀態、失敗的上次處理結果以及下次執行時間](https://docs.kasoftware.com/26.4/images/automation-status-card.png)

狀態

端口自動化的目前狀態。

<table><thead><tr><th>狀態</th>
<th>描述</th></tr></thead>
<tbody><tr><td>**進行中**</td>
<td>目前有一次執行正在進行，或者其他執行個體已鎖定該排程時段。</td></tr>
<tr><td>**閒置**</td>
<td>自動化正在等待下一次排程執行。</td></tr>
<tr><td>**已暫停**</td>
<td>端口在多次執行失敗後處於[退避](https://docs.kasoftware.com/26.4/self-hosted/zh/connectors/connector-backoff.md)狀態，自動化服務會略過該端口。</td></tr>
<tr><td>**已停用**</td>
<td>該端口的自動化已關閉。</td></tr></tbody></table>

上次執行時間

最近一次執行的結果。

<table><thead><tr><th>欄位</th>
<th>描述</th></tr></thead>
<tbody><tr><td>**日期**</td>
<td>上次執行的排程時間。</td></tr>
<tr><td>**上次處理開始時間**</td>
<td>端口實際開始處理上次執行的時間。該時間可能略晚於排程時間。</td></tr>
<tr><td>**上次處理結果**</td>
<td>上次執行的結果：
<ul><li>**成功**：執行已完成並處理了資料。</li>
<li>**無資料**：執行已完成，但沒有需要處理的內容，例如查詢未傳回任何資料列。</li>
<li>**失敗**：執行未完成。</li></ul></td></tr>
<tr><td>**上次成功時間**</td>
<td>最近一次成功執行的日期和時間。當上次執行失敗或未傳回資料時，會顯示此欄位，讓您瞭解端口已有多長時間未成功執行。</td></tr></tbody></table>

下次執行時間

**日期** 欄位顯示自動化下一次排程執行的時間。自動化停用時，該欄位為空白。

檢視詳細資料

**已暫停** 狀態、**失敗** 結果和 **無資料** 結果都包含一個 **檢視詳細資料** 連結，點選後會開啟一個顯示完整訊息的對話方塊：

<ul><li>**已暫停**：列出每個處於退避狀態的執行個體、其失敗次數以及自動化服務恢復的時間。有關端口如何退出此狀態，請參閱[端口退避](https://docs.kasoftware.com/26.4/self-hosted/zh/connectors/connector-backoff.md)。</li>
<li>**失敗**：顯示上次失敗執行的錯誤訊息。</li>
<li>**無資料**：顯示端口回報的訊息，例如 `0 rows returned`。</li></ul>

未執行與無資料

該卡片會區分尚未執行的端口與已執行但未找到任何內容的端口。如果 **上次處理結果** 為空白，表示自動化尚未執行，請檢查 **下次執行時間** 和排程設定。如果結果為 **無資料**，表示自動化已按排程執行，但資料來源未傳回任何內容，請檢查資料來源中是否有新資料。

已停用的端口

已停用的端口會保留其上次執行資訊，因此您仍可以檢視其上次執行的時間及結果。只有 **下次執行時間** 會被清除。

#### 效能

*與端口資源分配相關的設定。*

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

### 警示 Tab

*與配置通知相關的設定。*

在執行服務級別協議 (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 Tab

*與配置服務級別協議 (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 通知** 設定。

## 建立連線

建立新連線時，首先提供一個**名稱**，然後完成以下設定。

*用於識別並連線到特定 AS4 交易夥伴的設定。*

| 設定 | 說明 |
| - | - |
| **參與方識別碼** | 目標交易夥伴專用的 AS4 參與方識別碼。此值用於傳出請求的報頭中以指示預期接收者，也用於將傳入的 AS4 訊息路由到相應的 AS4 端口。識別碼區分大小寫。 |
| **參與方識別碼型別** | **參與方識別碼**的可選型別宣告。如果指定，請提供該識別碼所屬的域。 |
| **URL** | 傳送傳出 AS4 訊息的交易夥伴公共端點。 |
| **協議** | 管理交換的共享 AS4 協議。在 ENTSOG 配置檔案中，此項為必需。 |
| **連線逾時（秒）** | 端口在擲回逾時錯誤之前等待連線回應的時長（秒）。 |
| **配置檔案** | AS4 交換中使用的 AS4 配置檔案。配置檔案有助於確定共享配置設定，以確保夥伴之間相容。可用配置檔案包括：`Standard`、`ENTSOG`、`e-SENS`、`BDEW`、`ENTSOG V4` 和 `eDelivery V2`。如果使用 BDEW，則需要一些額外配置。詳情請參閱[配置 BDEW 配置檔案](#配置-bdew-配置檔案)。 多個進階設定（包括**加密演算法**、**簽章演算法**、**安全權杖格式**和 **SSL 啟用協議**）允許選擇 `Auto` 值。使用 `Auto` 時，端口會根據配置檔案設定自動為每個設定選擇適當的值。如有需要，仍可手動覆蓋這些值。 |
| **加密憑證** | 傳送訊息時用於 AS4 加密的公開金鑰憑證。該憑證必須與交易夥伴的私密金鑰憑證配對，交易夥伴在共享 AS4 配置詳情時應提供公開金鑰憑證。 |
| **驗證憑證** | 接收訊息時用於驗證 AS4 簽章的公開金鑰憑證。此欄位通常不是必需的；大多數 AS4 參與方使用同一個私密金鑰憑證進行簽章和解密。如果未指定此值，應用程式將使用**加密憑證**驗證簽章。 |
| **TLS 伺服器憑證** | 用於驗證 TLS/SSL 伺服器身份的公開金鑰憑證。如果交易夥伴未提供 TLS 伺服器憑證，可以將此設定留空，以允許底層 OS/JVM 執行憑證驗證；也可以將其設定為 `Any Certificate`，以無條件信任目標伺服器的身份。 |
| **輪轉驗證憑證** | 一個輔助憑證；如果使用**驗證憑證**驗證失敗，可用它驗證訊息簽章。僅在更換憑證且需要重疊期時使用此設定。 |

### 進階連線設定

單擊**進階** Tab 設定以下連線選項。

#### 權杖認證

*與使用和要求權杖認證相關的設定。*

| 設定 | 說明 |
| - | - |
| **權杖認證（接收）** | 傳入 AS4 訊息是否必須包含認證權杖。如果啟用，傳入訊息必須包含與此選項下設定的**使用者名稱**和**密碼**欄位匹配的使用者名稱憑據。 |
| **權杖認證（傳送）** | 傳出 AS4 訊息是否應包含認證權杖。如果啟用，傳出訊息將包含與此選項下設定的**使用者名稱**和**密碼**欄位匹配的使用者名稱憑據。 |
| **密碼型別** | 使用者名稱權杖應採用純文字格式還是加密摘要格式。 |

#### 備用本地配置檔案

*此特定 AS4 端口中用於覆蓋**配置檔案**頁面 AS4 配置的設定。設定備用本地配置檔案後，可以為某些交易夥伴使用不同的本地憑證和識別碼。*

| 設定 | 說明 |
| - | - |
| **參與方識別碼** | 你的 AS4 識別碼。覆蓋“配置檔案”頁面上的**參與方識別碼**。 |
| **參與方識別碼型別** | 你的 AS4 識別碼型別（可選）。覆蓋“配置檔案”頁面上的**參與方識別碼型別**。 |
| **私密金鑰憑證** | 用於解密傳入訊息的私密金鑰憑證；除非設定了單獨的**簽章憑證**，否則也用於簽章傳出訊息。覆蓋“配置檔案”頁面上的**私密金鑰憑證**。 |
| **私密金鑰憑證密碼** | 存取本地私密金鑰憑證所需的密碼。 |
| **簽章憑證** | 用於簽章傳出訊息的可選私密金鑰憑證。設定後，覆蓋“配置檔案”頁面上的**簽章憑證**。 |
| **簽章憑證密碼** | 存取**簽章憑證**所需的密碼。 |
| **憑證主題** | 指定憑證庫中本地憑證的唯一名稱（DN），用於簽章或解密訊息。 |

#### TLS 用戶端認證

*需要雙向 TLS 認證時，與用戶端認證相關的設定。*

| 設定 | 說明 |
| - | - |
| **使用配置檔案設定** | 是否使用“配置檔案”頁面上配置的**私密金鑰憑證**作為用戶端認證的 TLS 憑證。 |
| **私密金鑰憑證** | TLS 用戶端認證期間提供的私密金鑰憑證。僅當不使用“配置檔案”頁面中的同一私密金鑰憑證時適用。 |
| **私密金鑰憑證密碼** | 存取 TLS 用戶端憑證所需的密碼。 |
| **憑證主題** | 指定憑證庫中本地憑證的唯一名稱（DN），用於 TLS 認證。 |

#### 其他設定

*先前類別中未包含的設定。*

| 設定 | 說明 |
| - | - |
| **協議引用 P-Mode** | 共享 AS4 協議的處理模式屬性。如果使用此項，請提供 `PMode.Id` 參數。 |
| **接收協議引用 P-Mode** | 共享 AS4 接收協議的處理模式屬性。如果使用此項，請提供 `PMode.Id` 參數。 |
| **協議引用型別** | 共享 AS4 協議的引用型別屬性。雙方應協商確定此值的含義。 |
| **加密演算法** | 如果需要訊息加密，應使用哪種加密演算法。 |
| **安全權杖格式** | 指定在加密和簽章時包含在訊息中的安全權杖格式。選項： **Auto**（根據配置檔案自動選擇）。 **X.509**（DN 格式的主題）。 **Binary**（Base64 編碼的公開金鑰）。 **KeyIdentifier**（X.509 Subject-Key-Identifier 格式）。 **BinaryPKIPath**（Base64 編碼的 X509 公開金鑰憑證有序清單）。 |
| **簽章安全權杖格式** | 指定簽章時使用的安全權杖格式（可選）。如果設定此值，則簽章時將使用該值，而不是**安全權杖格式**的值。選項： **Auto**（根據配置檔案自動選擇）。 **X.509**（DN 格式的主題）。 **Binary**（Base64 編碼的公開金鑰）。 **KeyIdentifier**（X.509 Subject-Key-Identifier 格式）。 **BinaryPKIPath**（Base64 編碼的 X509 公開金鑰憑證有序清單）。 |
| **簽章演算法** | 簽章傳出訊息時使用的演算法。相應回執也會請求使用同一演算法。設定為 `Auto` 時，端口會根據選定配置檔案自動選擇適當的值。 |
| **啟用的 TLS 協議** | 建立傳出連線時支援的 TLS/SSL 協議清單。最佳實踐是僅使用 TLS 協議。SSL v2 和 SSL v3 被認為存在漏洞，只有在夥伴不支援更高版本時才應使用。請注意，TLS v1.3 尚未被普遍採用，如果目標伺服器不支援，可能會被拒絕。 |
| **簽章憑證** | 用於為此端口簽章傳出訊息的可選私密金鑰憑證。設定後，覆蓋 AS4 配置檔案頁面上配置的**簽章憑證**。 |
| **簽章憑證密碼** | 存取和使用與**簽章憑證**關聯的私密金鑰所需的密碼。 |
| **RSA 雜湊演算法** | RSA 簽章操作中用於建立訊息摘要的加密雜湊演算法（例如 SHA-256）。 |
| **引用雜湊演算法** | 引用中使用的加密雜湊演算法（例如 SHA-256），用於確保單個訊息部分的完整性。 |
| **標準化頒發者主題** | 允許標準化憑證頒發者和主題唯一名稱的格式，以實現一致的憑證驗證。預設值為 `false`。 |
| **金鑰加密演算法** | 用於加密保護訊息負載的對稱會話金鑰的演算法（例如 RSA-OAEP 或 RSA-v1.5）。 |
| **MGF1 雜湊演算法** | 金鑰加密期間作為 RSA-OAEP 填充一部分，在掩碼生成函式 1（MGF1）中使用的雜湊演算法。 |
| **OAEP 參數** | 最佳非對稱加密填充（OAEP）中使用的可選參數，用於在 RSA 加密期間提供額外隨機化。 |
| **轉換回執** | 在簽章前對回執和確認訊息應用 XML 規範化或其他轉換的設定。預設值為 `true`。 |
| **簽章拉取請求** | 是否對傳送的 AS4 拉取請求訊息進行數字簽章，以從交易夥伴伺服器檢索訊息。 |
| **啟用引用權杖型別** | 是否在訊息頭中包含安全權杖引用資訊，以指定如何識別憑證和金鑰。 |
| **接收方金鑰** | 訊息接收方的公開金鑰或憑證，用於加密訊息負載以進行機密傳輸。 |
| **金鑰派生方法** | AS4 安全處理中用於從共享金鑰或金鑰協商協議派生加密金鑰的演算法。 |

### 配置 BDEW 配置檔案

BDEW（Bundesverband der Energie- und Wasserwirtschaft，即德國能源和水工業聯合會）AS4 配置檔案是由德國能源和水務行業定義的訊息規範。配置 AS4 端口使用 BDEW 配置檔案時，必須先新增以下訊息頭，然後才能將訊息傳遞給端口。

```xml theme={null}
<arc:set attr="output.header:AS4-DataProperty#" value="[Filename]; BDEWDocumentType=MSCONS" />
<arc:set attr="output.header:AS4-DataProperty#" value="[Filename]; BDEWDocumentDate=202205011630" />
<arc:set attr="output.header:AS4-DataProperty#" value="[Filename]; BDEWDocumentNo=1234567AB" />
<arc:set attr="output.filepath" value="[filepath]" />
<arc:push item="output" />
```

## 個人配置檔案配置

AS4 配置檔案包含交易夥伴用於識別你的關鍵資訊。它在“配置檔案”頁面的 [AS4 Tab](#as4-配置檔案-tab) 中配置。

首先，請指定以下資訊：

* [參與方識別碼](#參與方識別碼)
* [個人憑證](#個人憑證)

### 參與方識別碼

與電子郵件交換中的電子郵件地址類似，它用於標識 AS4 傳輸中的夥伴。

將**參與方識別碼**設定為能有意義地標識你或你的組織的值。此處設定的值會在 知行之橋 發起的 AS4 傳輸標頭中傳送。

參與方識別碼是共享配置檔案資訊時與交易夥伴交換的資訊之一。交易夥伴應在其 AS4 系統中使用此值，以便處理來自該識別碼的請求。

### 個人憑證

私密金鑰憑證用於解密傳入訊息；除非配置了單獨的**簽章憑證**，否則也用於簽章傳出訊息。AS4 配置檔案使用 PKCS#12 格式（.pfx 或 .p12 檔案）的私密金鑰憑證。

某些 AS4 配置檔案（包括 eDelivery V2 和 ENTSOG V4）要求簽章和解密使用不同的憑證。在這些情況下，除了**私密金鑰憑證**外，還需要配置**簽章憑證**。簽章憑證是僅用於簽章傳出訊息的獨立私密金鑰憑證；私密金鑰憑證仍用於解密。

> [!NOTE]
>
> 配置簽章憑證後，**驗證憑證**欄位必須填入交易夥伴簽章憑證的公開金鑰，而不是其加密憑證。如果兩者不匹配，傳出訊息將因簽章驗證錯誤而失敗。

> [!NOTE]
>
> 如果使用要求簽章和解密憑證分離的配置檔案（例如 eDelivery V2 或 ENTSOG V4），交易夥伴很可能也使用單獨的簽章憑證。在這種情況下，請與交易夥伴確認用於簽章驗證的憑證，並將**驗證憑證**設定為其簽章憑證的公開金鑰，而不是其加密憑證。

* 在**私密金鑰憑證**下拉功能表中單擊**上傳憑證**，從磁碟選擇現有憑證。
* 單擊**建立憑證**建立新的自簽章憑證。這會建立一個新的私密金鑰憑證以及同名的公開金鑰憑證（.cer 檔案）。

### 接收 URL

此值基於**設定 > 進階**中的**基礎 URL** 和預設的 知行之橋 偵聽端點生成。

請與交易夥伴共享此值，以便他們能夠成功向 知行之橋 傳送 AS4 訊息。

## 交易夥伴設定

交易夥伴負責提供連線其 AS4 端點所需的特定設定。每個 AS4 端口都必須配置為單一交易夥伴關係。

以下 AS4 配置選項為必需：

* [交易夥伴識別碼](#交易夥伴識別碼)
* [夥伴 URL](#夥伴-url)
* [交易夥伴憑證](#交易夥伴憑證)
* [使用回執](#使用回執)
* [服務和服務操作](#服務和服務操作)

### 交易夥伴識別碼

交易夥伴提供其**參與方識別碼**，這是其配置檔案中用於在 AS4 傳輸中標識組織的部分。該識別碼用於傳出請求的標頭，以指示預期接收者。

> [!NOTE]
>
> 此值區分大小寫，因此配置新的交易夥伴時，請確保大小寫正確。

### 夥伴 URL

**夥伴 URL** 是交易夥伴的 AS4 系統偵聽傳入訊息的公共端點。收到交易夥伴提供的 URL 後，請使用 Web 瀏覽器測試該 URL，以檢測任何網路或連線問題。

在某些情況下，如果交易夥伴使用不同 URL 推送 AS4 傳輸、拉取 AS4 傳輸以及傳回非同步回執，可能會提供多個 URL。請在“進階” Tab 的**拉取 URL** 和**回執 URL** 下配置其他 URL。

### 交易夥伴憑證

每個 AS4 端口都必須配置目標交易夥伴的公開金鑰憑證。交易夥伴會提供加密和驗證與其交換的 AS4 訊息所需的憑證。知行之橋 接受 X.509 公開金鑰憑證（副檔名為 .cer、.der 或 .pem 的檔案）。

通常，交易夥伴會提供一個憑證，應將其配置在**加密憑證**欄位中。

如果交易夥伴提供多個憑證，則必須說明每個憑證的用途。如果夥伴提供完整憑證鏈（例如從商業憑證頒發機構取得），則只需配置葉子憑證（憑證鏈中的最後一個憑證）。有時可能需要單獨的公開金鑰憑證來驗證夥伴的數字簽章。在這種情況下，請在[設定 Tab](#設定-tab) > **交易夥伴憑證** > **驗證憑證**中設定簽章驗證憑證。

如果交易夥伴要求 TLS/SSL 連線，他們可以提供其 TLS 伺服器的公開金鑰憑證。應在 **TLS 伺服器憑證**下設定該憑證。或者，可以將此欄位設定為 <var>Any Certificate</var>，以隱式信任目標 TLS 伺服器的身份。

### 使用回執

請求回執可確保 AS4 訊息的不可否認性；換句話說，訊息成功送達後不可被否認。因此，強烈建議啟用**使用回執**欄位。請務必提前與交易夥伴就回執使用達成一致。

預設情況下，回執會同步傳遞，也就是作為 AS4 訊息的直接回應傳回。非同步回執則稍後透過單獨連線傳遞。除非 AS4 訊息非常大，導致處理並傳遞同步回執可能使連線逾時時長緊張，否則建議使用同步回執。

### 服務和服務操作

服務、服務操作和其他業務協議詳情應與交易夥伴溝通確認。這些值有助於定義與所交換 AS4 訊息關聯的業務邏輯，以及各方應如何解讀這些訊息。

### 從 SMP 匯入

如果交易夥伴具有服務中繼資料釋出者（SMP）配置檔案，可以在設定 Tab > **交易夥伴資訊**中單擊**從 SMP 匯入**按鈕匯入這些設定。隨後出現的提示需要提供用於取得 SMP 配置檔案的 SML 域、參與者 ID 和 Scheme，以及文件 ID 和 Scheme。端口設定會自動填充從 SMP 配置檔案讀取的值。

## 傳送和接收檔案

配置 AS4 配置檔案和特定於夥伴的 AS4 端口後，即可安全地傳送和接收檔案。

### 傳送檔案

在 AS4 端口中，**交易** Tab 顯示應傳送到目標交易夥伴的檔案。如果在自動化 Tab 上啟用了**傳送自動化**，到達端口**交易** Tab 的檔案會自動封裝並傳送。展開與已傳輸檔案關聯的行，即可存取所有傳輸的日誌檔案。

**建立測試檔案**按鈕可生成一組簡單的測試檔案，以傳送給交易夥伴。

### 重發和重試

當預期交易夥伴傳回非同步回執，但其未在**重發間隔**時長內（預設為 60 分鐘）傳回時，將觸發 AS4 重發。隨後應用程式會嘗試重新傳送該傳輸。應用程式將繼續重發訊息，直到收到回執或\*\*最大嘗試次數（非同步）\*\*用盡為止。

當交易夥伴的 HTTP 回應表明伺服器未收到傳輸（回應不是肯定的 200 OK 狀態）時，將觸發重試。這可能表示網路或連線問題，且通常是暫時性的。應用程式每隔**重試間隔**分鐘重試一次傳輸，直到傳輸被接收或**最大嘗試次數**用盡為止。

### 接收檔案

在 AS4 端口中，**交易** Tab 顯示應用程式已接收並路由到該端口的檔案（基於傳入 AS4 訊息中的 AS4 識別碼）。展開每個檔案行可顯示該傳輸的可用日誌清單。

這些檔案可在端口的**交易** Tab 中檢視。如果端口連線到工作流程中的其他端口，檔案會自動從 AS4 端口的**交易** Tab 移動到工作流程中下一個端口的**交易** Tab。

## 宏

在檔案命名策略中使用宏可以提高組織效率和對資料的上下文理解。透過將宏合併到檔名中，可以動態地包含相關資訊，例如識別碼、時間戳和訊息頭資訊，從而為每個檔案提供有價值的上下文。這有助於確保檔名反映對組織重要的詳細資訊。

知行之橋 支援這些宏，它們都使用以下語法：`%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.