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

# File 端口

> File 端口可將檔案從外部目錄拉入工作流程，並將工作流程中的檔案推送到外部目錄。

File 端口能夠：

* 將檔案從外部目錄拉入到 知行之橋 工作流程中。
* 將檔案從 知行之橋 工作流程匯出到外部目錄中。

## 核心功能

* 整合本地和網路檔案系統，支援 UNC 路徑
* 為受保護的網路位置提供可配置的身分驗證（僅限 .NET 版本）
* 支援 Glob 模式匹配的進階過濾功能及遞迴目錄查詢
* 支援帶暫存和重新命名操作的臨時檔案處理，確保傳輸的可靠性
* 提供可選的快取功能，確保僅下載新增或更新的檔案

## 概覽

每個 File 端口都需要配置磁碟路徑，該路徑決定了它將從哪個資料夾讀取檔案或向哪個資料夾寫入檔案。可以是本地磁碟路徑，也可以是網路上其它檔案位置的 UNC 路徑。

當 File 端口從配置的路徑接收到檔案時，它會將接收到的檔案傳遞給 知行之橋 工作流程中的下一個端口，不會修改檔案。這樣，File 端口可用於輪詢外部資料夾，以將檔案拉入工作流程。

當 知行之橋 工作流程中的檔案被 File 端口處理時，該檔案將被寫入到配置路徑下的資料夾中。透過這種方式，File 端口可用於將已處理的檔案放在應用程式外部的位置。

File 端口可以配置使用者名稱／密碼憑據，以提供對外部檔案路徑的存取，否則應用程式將無法存取這些路徑。這允許 知行之橋 從受保護的資料夾位置提取檔案，而不需要授予整個應用程式對受保護位置的存取權限。

File 端口中配置的路徑可以使用宏動態填充。更多資訊，請參見[宏](#宏)部分。

## 端口配置

本節包含所有可配置的端口屬性。

### 設定

#### 端口設定

*與端口核心操作相關的設定。*

| 設定 | 描述 |
| - | - |
| **端口 ID** | 端口的靜態唯一識別碼。 |
| **端口型別** | 顯示端口名稱及其功能描述。 |
| **端口描述** | 一個可選欄位，用於對端口及其在工作流程中的角色進行自由說明。 |
| **路徑** | 端口從中取得檔案或將檔案推送到的外部檔案路徑。路徑可以包含宏以進行動態求值，詳情參見[宏](#宏)。 |

#### 接收

*與從外部檔案路徑提取檔案相關的設定。*

| 設定 | 描述 |
| - | - |
| **檔案掩碼** | 一種全域模式，用於過濾應該從已配置的**路徑**中提取的檔案。只有與檔案掩碼匹配的檔案才會被提取。此設定可與**進階**索引標籤中的**接收過濾規則**結合使用，以指定多個過濾器。 |
| **刪除檔案（接收後）** | 當檔案被取得到 知行之橋 工作流程後，是否從外部路徑中刪除檔案。啟用**延遲最終確定接收的檔案**時，檔案僅在成功最終確定後才會被刪除。 |
| **延遲最終確定接收的檔案** | 將接收到的檔案保持為待處理狀態，直到下游的 [Finalize](https://docs.kasoftware.com/26.4/self-hosted/zh-Hant/connectors/finalize.md) 端口完成對其的處理。待處理的檔案不會被再次接收。**自動化**索引標籤上的\*\*接收待處理逾時（分）\*\*會釋放這些檔案以供再次接收，但不會刪除來源檔案。此設定預設停用，且不影響傳送檔案。如需詳細資訊，請參閱[延遲最終確定](#延遲最終確定)。 |

#### 認證

| 設定 | 描述 |
| - | - |
| **使用者名稱** | 用於存取檔案的 Windows 使用者帳戶。如果未指定，端口將使用當前使用者帳戶。 |
| **密碼** | 指定使用者帳戶的密碼。 |
| **域** | Windows 使用者帳戶的域。如果指定的使用者是本地使用者帳戶，則該值可以為空。 |

#### 快取

*與快取及多次下載之間檔案比對相關的設定。*

| 設定 | 描述 |
| - | - |
| **檔案大小比對** | 選中此項可儲存已下載檔名和大小的記錄。之前已下載的檔案將被跳過，除非檔案大小與上次下載不同。 |
| **時間戳比對** | 選中此項可儲存已下載檔名和最後修改時間戳的記錄。之前已下載的檔案將被跳過，除非時間戳與上次下載不同。 |

> [!NOTE]
>
> 知行之橋會自動清理資源快取。此過程在每次接收週期的後臺執行，刪除遠端伺服器上已不存在的檔案對應的過期快取項目。這使得快取大小始終保持在可管理範圍內，無需任何手動操作。 預設情況下，檔案保留 30 天，但您可以在**進階**索引標籤的**其他設定**欄位中使用 `ResourceCacheRetentionDays` 設定來調整保留時間以適應您的環境。例如，`ResourceCacheRetentionDays=15` 表示檔案保留 15 天后將被刪除。 啟用快取後，檔名不區分大小寫。例如，端口無法區分 `TEST.TXT` 和 `test.txt`。

### 進階設定

#### 進階設定

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

| 設定 | 描述 |
| - | - |
| **最大下載檔案數** | 在單個接收間隔內將提取的最大檔案數。如果該值不是正整數，將不會應用任何限制。 |
| **複寫選項** | 當端口嘗試將檔案寫入外部路徑並且該檔案已經存在時，指定端口如何處理。端口可以將當前檔案重新命名為唯一的檔名，\_覆蓋\_現有檔案，\_追加\_當前檔案到現有檔案，\_跳過\_操作且不報錯，或者\_停止\_操作並擲回錯誤。 |
| **延遲接收** | 端口在從遠端路徑接收檔案之前等待的時間（秒）。 |
| **遞迴子目錄** | 設定為 true 以下載目標遠端路徑子資料夾中的檔案。為接收到的檔案保留目錄結構。 |
| **臨時傳送路徑** | 在將檔案移動到配置的目標路徑之前，用作暫存資料夾的目錄。 |
| **臨時傳送字首** | 如果指定，端口將上傳帶有臨時字首的檔案，然後在操作完成後將檔案重新命名為其原始檔名。 |
| **臨時傳送副檔名** | 如果指定，端口將上傳帶有臨時副檔名的檔案，然後在操作完成後將檔案重新命名為其原始檔名和副檔名。 |
| **最小檔案大小** | 要處理的最小檔案大小（以位元組為單位）。如果正在上傳的檔案小於指定大小，則最終確定為 **Skipped**。對於正在下載的檔案，端口會新增一個交易日誌項目，指示該檔案因其大小而被跳過。 |
| **本地檔案命名規則** | 用於為端口輸出訊息分配檔名的規則。可以在檔名中使用宏動態包含識別碼和時間戳等資訊。更多資訊，請參見[宏](#宏)。 |
| **接收過濾規則** | 一個全域模式過濾器，用於確定應該從遠端儲存下載哪些檔案（例如 \*.txt）。負模式可用於指示不應下載的檔案（例如 -\*.tmp）。當需要多個**檔案掩碼**模式時，應使用此設定。多個模式可以用逗號分隔，除非找到完全匹配，否則後面的過濾器優先。 |
| **處理延遲** | **交易**索引標籤中檔案處理延遲的時間（秒）。這是一箇舊版設定。最佳做法是[使用 File 端口](https://docs.kasoftware.com/26.4/self-hosted/zh-Hant/flows/designing-a-flow.md#與本地檔案系統互動)來管理本地檔案系統，而不是使用此設定。 |

#### 訊息

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

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

### 自動化

#### 自動化設定

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

| 設定 | 描述 |
| - | - |
| **傳送** | 切換開關，用於指示端口在檔案準備好後自動傳送檔案。 |
| **重試間隔** | 端口在重試失敗傳送之前等待的間隔時間。 |
| **最大重試次數** | 端口嘗試傳送訊息的次數。將此值設定為 *1* 表示端口僅進行初始傳送嘗試而不重試。端口在每次嘗試之間等待**重試間隔**指定的時長。 |
| **接收** | 切換開關，用於指示端口在檔案準備好後自動處理檔案並將其傳送到**交易**索引標籤。 |
| **間隔** | 端口處理所有待處理檔案並將其傳送到**交易**索引標籤的間隔時間。 |
| **整點後的分鐘數** | 每小時排程的分鐘偏移量。僅當上述間隔設定為\_每小時\_時適用。例如，如果此值設定為 5，自動化服務會在 1:05、2:05、3:05 等時間處理檔案。 |
| **時間** | 嘗試發生的具體時間。僅當上述間隔設定為\_每天\_、\_每週\_或\_每月\_時適用。 |
| **天** | 嘗試發生的日期。僅當上述間隔設定為\_每週\_或\_每月\_時適用。 |
| **分鐘** | 處理檔案前等待的分鐘數。僅當上述間隔設定為\_分鐘\_時適用。 |
| **Cron 運算式** | 表示 Cron 運算式的五段字串，用於確定嘗試發生的時間。僅當上述間隔設定為\_進階\_時適用。 |
| **開始日期和時間** | 自動化首次執行的日期和時間。之後的每次執行都遵循上方的間隔設定。上次和下次執行時間顯示在 [自動化狀態](#自動化狀態) 區段中。 |
| **接收待處理逾時（分）** | 接收到的檔案在等待下游 [Finalize](https://docs.kasoftware.com/26.4/self-hosted/zh-Hant/connectors/finalize.md) 端口完成處理時保持待處理狀態的分鐘數。逾時後，該訊息會被標記為 Pending Timeout 錯誤，來源檔案不會被刪除，並且該檔案會被釋放以便再次接收。預設值為 10 分鐘。設定為 0 可使檔案無限期保持待處理狀態。 |

#### 自動化狀態

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

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

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

![自動化索引標籤上的自動化狀態卡片，顯示已暫停狀態、失敗的上次處理結果以及下次執行時間](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>

### 告警索引標籤

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

在執行服務級別協議 (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 通知** 設定。

## 建立連線

File 端口必須具有適當的權限，才能從配置的**路徑**讀取／寫入。當配置的路徑是到網路上另一個伺服器的 UNC 路徑時，權限問題是主要關注的問題，但是當從本地磁碟上受保護的資料夾推送或提取檔案時，也可能出現權限問題。

如果執行 知行之橋 的使用者沒有存取該路徑的權限，請在**設定**索引標籤的[認證](#認證)部分，將**使用者名稱**、**密碼**和**域**欄位設定為具有相應權限的特定使用者。

## 傳送／接收檔案

### 傳送檔案

File 端口將檔案從**交易**索引標籤傳送到**路徑**中指定的外部資料夾。如果在[自動化](#自動化設定)索引標籤中啟用了**傳送**功能，檔案將自動傳送。

### 接收檔案

File 端口從**路徑**中指定的外部資料夾接收檔案，並將它們放置在端口的**交易**索引標籤中。如果 File 端口連線到工作流程中的另一個端口，則檔案不會保留在此資料夾中，而是傳遞到下一個連線的端口。

如果在[自動化](#自動化設定)索引標籤中啟用了**接收**功能，端口將自動輪詢外部資料夾以接收檔案。

端口將只提取與指定**檔案掩碼**匹配的檔案。如果**啟用時間戳比對**或**啟用檔案大小比對**已啟用，端口將快取從遠端路徑提取的檔名，並且僅接收以前未收到的檔案或自上次收到後已修改的檔案。

當一次接收操作中有多個符合條件的檔案時，端口會依最後修改時間戳記遞增順序處理這些檔案，因此較早的檔案會先進入工作流程。時間戳記相同的檔案會依一致且可預測的順序處理。

### 延遲最終確定

預設情況下，端口在接收檔案後會立即完成該檔案，任何已設定的清理操作（例如**刪除檔案（接收後）**）也會立即執行。如果工作流程中的後續步驟失敗，來源檔案已經不存在了。

啟用**延遲最終確定接收的檔案**後，端口會將每個接收到的檔案保持為待處理狀態，並等待下游的 [Finalize](https://docs.kasoftware.com/26.4/self-hosted/zh-Hant/connectors/finalize.md) 端口確認工作流程已成功。如果需要在處理完成之前保留來源檔案，這是使用\*\*刪除檔案（接收後）\*\*的建議方式。

若要使用延遲最終確定：

1. 在接收檔案的 File 端口上啟用**延遲最終確定接收的檔案**。
2. 在工作流程成功路徑的末尾新增一個 Finalize 端口。

檔案處於待處理狀態時：

* 端口不會再次接收該檔案。
* 如果檔案到達 Finalize 端口，端口會完成該檔案並執行已設定的清理操作。
* 如果檔案在\*\*接收待處理逾時（分）\*\*到期之前未到達 Finalize 端口，該訊息會被標記為 Pending Timeout 錯誤，並且該檔案會被釋放以便再次接收。來源檔案不會被刪除。端口會記錄一則 **Send Failure: Pending Timeout** 錯誤通知。
* 如果來源檔案在接收後發生了變化，即使該檔案已最終確定，端口也不會刪除它。

延遲最終確定僅適用於接收檔案，不會改變端口傳送檔案的方式。

### 子目錄訊息頭

如果**遞迴子目錄**設定為 **True**，File 端口從**路徑**接收檔案時：

* 收到的檔案訊息將在其中繼資料中包含子目錄訊息頭。
* 這個訊息頭包含子目錄，其相對於配置的**路徑**。
* 這個子目錄訊息頭可以被其它支援該功能的傳送端口所識別和支援。

當傳送檔案時，如果傳送到 File 端口**路徑**的訊息中存在子目錄訊息頭：

* 檔案將被放置在子目錄訊息頭中指定的子目錄（相對於 File 端口的路徑設定）中。
* 如果有權限，子目錄會被自動建立。

## 宏

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

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