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

# 工作流程設計

> 如何在知行之橋工作流程設計器中建立、連線和配置端口。

export const companyName = "知行軟件";

export const siteNameShort = "知行之橋";

export const siteName = "知行之橋";

要存取工作流程設計器，請單擊 **工作流程** 索引標籤，然後建立一個新的[工作區](./workspaces)，或單擊想要使用的現有[工作區卡](./workspaces#工作區卡)。

將出現工作流程畫布。如果已有端口，這些端口會顯示在畫布上。在這裡，可以新增和配置新端口，連線並重新排列現有端口，以及配置現有端口。

* 左鍵單擊並按住畫布中的空白區域，可拖動設計器到合適的位置以獲得更好的檢視。
* 使用畫布左下角的縮放選項，根據需要重新定位端口。

<Note>如果滑鼠帶有滾輪，也可以使用滑鼠進行縮放。</Note>

## 建立端口

可以透過四種方式將新端口新增到工作流程中：

* 單擊畫布右上角的 **新增** 按鈕。
* 右鍵單擊畫布並選擇 **新增端口**。
* 單擊將滑鼠懸停在連線兩個現有端口的線上時出現的加號。
* 將滑鼠懸停在現有端口的輸入或輸出箭頭上，然後單擊出現的加號。

根據選擇的選項，將看到一個新增端口功能表，可用於選擇要新增的端口。如果選擇上述前兩個選項之一，{siteNameShort} 缺少有關正在設定內容的上下文，因此會顯示包含所有端口以及所有實現中包含的範例工作流程的下拉式清單。如果選擇後兩個選項之一，{siteNameShort} 只會顯示適用於當前上下文的端口。

下圖顯示了完整視窗。每一行都包含端口名稱和圖示以及端口型別。將滑鼠懸停在某一行上可檢視當前許可證剩餘的例項數。還可以按端口名稱搜尋，並按型別過濾清單。

<img src="https://mintcdn.com/qiao/Pa-LScG1ebkabWPi/public/images/designing_flow_add_modal.png?fit=max&auto=format&n=Pa-LScG1ebkabWPi&q=85&s=7f0ffc3be21275e92c64c5bb1ebf178d" alt="Add connector" width="400" data-path="public/images/designing_flow_add_modal.png" />

做出選擇後，**新增端口** 面板會開啟。可以在此處命名端口，並選擇它應執行的操作。有關面板中顯示的所有資訊的說明，請參閱[解釋新增端口面板](#解釋新增端口面板)。

根據端口選擇，面板中可見的選項會有所不同。例如，某些端口沒有任何操作，某些端口具有多選核取方塊，某些端口具有選項按鈕，某些端口具有單選下拉功能表。有關詳細資訊，請參閱[指定操作](#指定操作)。該面板還會顯示端口在工作流程中出現時的預覽，幷包含指向端口特定文件的連結。下圖顯示了 [AS2](../connectors/as2) 端口。

<img src="https://mintcdn.com/qiao/Pa-LScG1ebkabWPi/public/images/designing_flow_add_modal2.png?fit=max&auto=format&n=Pa-LScG1ebkabWPi&q=85&s=dde08a47dce6edab55eb1fd12b2f8067" alt="Add connector pane with AS2 settings" width="600" data-path="public/images/designing_flow_add_modal2.png" />

<Tip>命名端口時（在 **端口 ID** 欄位中），請務必選擇一個能夠清楚描述端口執行操作的名稱。有關一些最佳實踐建議，請參閱[端口命名約定](#端口命名約定)。</Tip>

單擊 **建立端口** 以建立端口並開啟其[配置](../connectors#configuration)索引標籤。有關詳細資訊，請參閱[配置端口](#配置端口)。

### 指定操作

建立端口時，**新增端口** 面板會要求指定要對端口使用的操作。

多操作 [MFT 端口](../connectors/mft-connectors)，例如 [AS2](../connectors/as2) 和 [AS4](../connectors/as4)，支援在一個端口例項內使用單獨的傳送和接收操作。使用核取方塊選擇一個或兩個操作，如下圖所示。

<img src="https://mintcdn.com/qiao/Pa-LScG1ebkabWPi/public/images/designing_flow_actions.png?fit=max&auto=format&n=Pa-LScG1ebkabWPi&q=85&s=93be6e8d190af95765292a72f54c271e" alt="Connector action checkboxes" width="600" data-path="public/images/designing_flow_actions.png" />

如果同時選擇傳送和接收操作，{siteNameShort} 會建立兩張端口卡片，每個操作一張。傳送操作的卡片具有 **轉到接收操作** 連結，接收卡片具有 **轉到傳送操作** 連結。下圖顯示了 AS4 端口：

<img src="https://mintcdn.com/qiao/Pa-LScG1ebkabWPi/public/images/designing_flow_multi-action.png?fit=max&auto=format&n=Pa-LScG1ebkabWPi&q=85&s=2f0f068167bcde9efda139ea16fb7817" alt="Multi-action AS4 connector cards" width="800" data-path="public/images/designing_flow_multi-action.png" />

<Note>對於多操作端口，未選擇的操作不會顯示在工作流程畫布中，但它們仍然有效。可以右鍵單擊端口卡並選擇顯示或隱藏操作，而無需重新建立端口。</Note>

單操作端口（例如 [Database 端口](../connectors/database-connectors)）支援每個例項一個操作（例如 Upsert、Select 或 Lookup）。使用下拉功能表選擇操作。

轉換[型別](../connectors#categories)中的某些端口沒有可選擇的操作，因為它們執行一項任務：轉換。這些端口上不會顯示面板的 **操作** 部分。

### 開始觸發器和流程終結

**開始觸發器** 出現在工作流程中第一個端口之前。它們指示哪些操作可以啟動工作流程。

<img src="https://mintcdn.com/qiao/Pa-LScG1ebkabWPi/public/images/designing_flow_start_trigger.png?fit=max&auto=format&n=Pa-LScG1ebkabWPi&q=85&s=dc33ee18c752d4a938db9ebd90037902" alt="Start trigger display" width="500" data-path="public/images/designing_flow_start_trigger.png" />

開始觸發器可以具有一種或多種狀態，具體取決於端口使用以下哪種配置：

* 主動接收：在端口啟用 **接收自動化** 時出現。觸發器會顯示 *下一次計劃接收* 以及下一次接收的日期時間。
* 被動接收：當端口支援被動接收時出現。這意味著外部用戶端可以隨時向端口傳送檔案或請求。例如，[AS2](../connectors/as2) 端口的觸發器顯示 *收到檔案時*，而 [Webhook](../connectors/webhook) 的觸發器顯示 *收到請求時*。
* 啟用自動化或手動接收：當使用者為特定時間間隔配置 **接收自動化** 時，啟用自動化會生效。手動接收意味著需要導航到端口輸出並單擊 **接收** 按鈕。這會觸發一次接收操作。

當 {siteNameShort} 將訊息交給底層磁碟，或訊息在端口傳送操作期間被該端口消耗且不生成輸出時，**流程終結** 會顯示在工作流程末尾的終端端口上。

<img src="https://mintcdn.com/qiao/Pa-LScG1ebkabWPi/public/images/designing_flow_terminal.png?fit=max&auto=format&n=Pa-LScG1ebkabWPi&q=85&s=2cbda16a75d319161cb6fee837cd3a1a" alt="Flow end on a terminal connector" width="450" data-path="public/images/designing_flow_terminal.png" />

## 使用註解

如果有權修改工作流程，則可以向工作區新增註解。註解可以明確說明工作流程的目的，並有助於組織工作流程。每個註解都包含使用者名稱和時間戳，詳細說明其建立時間和上次修改時間。註解可以放在畫布上的任何位置，並且可以隨時拖動到其他位置。由於註解與工作區相關聯，因此可以與其工作區一起[匯入和匯出](../getting-started/administration/importing-exporting-flows)。

* 要新增註解，請右鍵單擊工作流程畫布並選擇 **新增註解**。
* 為註解新增標題並提供正文。
* 單擊 **新增註解** 將註解儲存在畫布上。
* 使用註解上的省略號來編輯或刪除它。

<img src="https://mintcdn.com/qiao/bVtjD3fvHFZBo1vE/public/images/flows_add_note.png?fit=max&auto=format&n=bVtjD3fvHFZBo1vE&q=85&s=fe6115179326fc255197c12e512b55cf" alt="Add note dialog on a flow canvas" width="600" data-path="public/images/flows_add_note.png" />

## 連線端口

若要在設計器中重新排列端口，請拖動端口，讓它們在畫布上移動並重新排列到所需的配置中。

要連線端口，請從第一個端口 **輸出** 部分中的箭頭拖動到第二個端口左側的箭頭，如下圖所示：

<img src="https://mintcdn.com/qiao/Pa-LScG1ebkabWPi/public/images/designing_flow_1.png?fit=max&auto=format&n=Pa-LScG1ebkabWPi&q=85&s=5e069e7f37f5c03304c2709455511388" alt="Connecting two connectors in the flow designer" width="800" data-path="public/images/designing_flow_1.png" />

這會在兩個端口之間建立邏輯關係，以便第一個端口生成訊息或檔案後，將其直接傳遞給第二個端口進行處理。

要將端口連線到不同的端口，請將滑鼠懸停在連線線上，然後單擊並拖動要更改的連線末端的手柄。將連線放到新端口上。要斷開端口連線，請單擊連線兩端箭頭旁邊的手柄。

## 配置端口

要配置端口，請單擊畫布上的端口以開啟端口配置嚮導，如下圖所示：

<img src="https://mintcdn.com/qiao/Pa-LScG1ebkabWPi/public/images/designing_flow_2.png?fit=max&auto=format&n=Pa-LScG1ebkabWPi&q=85&s=82c6b920a61116450c296563dbc56b0d" alt="Connector configuration wizard" width="1394" height="462" data-path="public/images/designing_flow_2.png" />

在出現的一系列索引標籤上，可以配置和測試所有端口設定。完成更改後，選擇面板左側的灰色 x 以關閉端口配置嚮導，並將該空間傳回給畫布。

### 其他配置選項

右鍵單擊工作流程中的端口會顯示以下選項：

* **刪除端口** 刪除端口。
* **顯示錯誤路徑** 顯示錯誤路徑。使用它來指定應將引發錯誤的檔案路由到的端口。
* **顯示成功路徑** 顯示成功路徑。使用它來指定應將成功傳送的檔案路由到的端口。
* **匯出端口設定** 將端口設定從當前伺服器匯出為壓縮檔案（名為 `ConnectorId.arcflow`）。
* **複製端口** 使用新的端口 ID 建立已配置端口的副本。
* **建立工作流程 API 設定** 從選定的端口建立工作流程 API。有關更多詳細資訊，請參閱[工作流程 API](./flow-api)。
* **顯示接收操作** 僅在允許多個操作但 **接收** 操作當前隱藏的端口上可見。使用它在畫布上顯示端口的接收操作。
* **顯示傳送操作** 僅在允許多個操作但 **傳送** 操作當前隱藏的端口上可見。使用它在畫布上顯示端口的傳送操作。

## 解釋新增端口面板

下面的 AS2 **新增端口** 面板影像已新增註釋，用於解釋預覽中每個元素的用途。每個數字對應下面的描述。

<img src="https://mintcdn.com/qiao/bVtjD3fvHFZBo1vE/public/images/flows_add_conn_modal_details.png?fit=max&auto=format&n=bVtjD3fvHFZBo1vE&q=85&s=7e67d80f57dff7fee781ff1ef3956d1c" alt="Annotated Add Connector pane" width="600" data-path="public/images/flows_add_conn_modal_details.png" />

1. 使用此箭頭將端口與工作流程中的前一個端口連線。

2. 端口型別。將滑鼠懸停在圖示上可檢視其預期用途的靜態描述。

3. 將滑鼠懸停在資訊圖示上可檢視有關端口及其在工作流程中角色的使用者自定義資訊。顯示的內容來自 **設定** 索引標籤上的 **端口描述** 欄位。

4. 單擊省略號開啟上下文功能表。它包括 **顯示成功路徑**、**顯示錯誤路徑**、**複製**、**刪除** 等操作。

5. 使用者定義的端口名稱（來自 **端口 ID** 欄位）。

6. 這五個圖示顯示交易數量。如果沒有可顯示的交易，則隱藏警告和待處理圖示。

   <table>
     <thead>
       <tr><th>圖示</th><th>說明</th></tr>
     </thead>

     <tbody>
       <tr>
         <td style={{ verticalAlign: "middle", padding: "0.25rem 0.75rem" }}>
           <img src="https://mintcdn.com/qiao/U-KEZ9JbQY4Wqs1D/public/images/add_connector_preview_success.png?fit=max&auto=format&n=U-KEZ9JbQY4Wqs1D&q=85&s=a8abc994613d42e01f4ba695b538829e" alt="Successful transactions" noZoom style={{ display: "block", height: "24px" }} width="26" height="25" data-path="public/images/add_connector_preview_success.png" />
         </td>

         <td style={{ verticalAlign: "middle", padding: "0.25rem 0.75rem" }}>成功交易的計數。</td>
       </tr>

       <tr>
         <td style={{ verticalAlign: "middle", padding: "0.25rem 0.75rem" }}>
           <img src="https://mintcdn.com/qiao/U-KEZ9JbQY4Wqs1D/public/images/add_connector_preview_unsent.png?fit=max&auto=format&n=U-KEZ9JbQY4Wqs1D&q=85&s=a03e3b549ad2fc033cc701f8f37d5d01" alt="Unsent transactions" noZoom style={{ display: "block", height: "24px" }} width="22" height="25" data-path="public/images/add_connector_preview_unsent.png" />
         </td>

         <td style={{ verticalAlign: "middle", padding: "0.25rem 0.75rem" }}>未傳送交易的計數。</td>
       </tr>

       <tr>
         <td style={{ verticalAlign: "middle", padding: "0.25rem 0.75rem" }}>
           <img src="https://mintcdn.com/qiao/U-KEZ9JbQY4Wqs1D/public/images/add_connector_preview_warning.png?fit=max&auto=format&n=U-KEZ9JbQY4Wqs1D&q=85&s=d4db78e7abac35ab09ffaced2fd50c27" alt="Warning transactions" noZoom style={{ display: "block", height: "24px" }} width="25" height="25" data-path="public/images/add_connector_preview_warning.png" />
         </td>

         <td style={{ verticalAlign: "middle", padding: "0.25rem 0.75rem" }}>帶有警告的交易計數。</td>
       </tr>

       <tr>
         <td style={{ verticalAlign: "middle", padding: "0.25rem 0.75rem" }}>
           <img src="https://mintcdn.com/qiao/U-KEZ9JbQY4Wqs1D/public/images/add_connector_preview_error.png?fit=max&auto=format&n=U-KEZ9JbQY4Wqs1D&q=85&s=f7b26099daaebca65c46e0d961d66908" alt="Error transactions" noZoom style={{ display: "block", height: "24px" }} width="24" height="25" data-path="public/images/add_connector_preview_error.png" />
         </td>

         <td style={{ verticalAlign: "middle", padding: "0.25rem 0.75rem" }}>失敗交易的計數。</td>
       </tr>

       <tr>
         <td style={{ verticalAlign: "middle", padding: "0.25rem 0.75rem" }}>
           <img src="https://mintcdn.com/qiao/U-KEZ9JbQY4Wqs1D/public/images/add_connector_preview_pending.png?fit=max&auto=format&n=U-KEZ9JbQY4Wqs1D&q=85&s=815a822bf762c6db81ee9750ade03d72" alt="Pending transactions" noZoom style={{ display: "block", height: "24px" }} width="28" height="25" data-path="public/images/add_connector_preview_pending.png" />
         </td>

         <td style={{ verticalAlign: "middle", padding: "0.25rem 0.75rem" }}>待處理交易的計數。</td>
       </tr>
     </tbody>
   </table>

7. 狀態列指示已配置的服務級別協議（SLA）的狀態。SLA 在端口的 **提醒** 索引標籤上配置。有關詳細資訊，請參閱 [SLA](../getting-started/administration/activity#slas-tab)。狀態列有四種狀態：
   * 開始：顯示 SLA 開始的日期和時間。
   * 進行中：當 SLA 進行中且不存在風險時顯示。
   * 存在風險：當 SLA 進行中且配置的截止日期即將到來，但尚未滿足配置的數量時顯示。
   * 已違反：當 SLA 截止日期已過且未達到預期數量時顯示。

8. 端口中的灰色區域提供關鍵資訊。例如，AS2 端口顯示指定的操作（傳送和/或接收）和配置的 AS2 ID。資料庫端口顯示指定的操作（select、upsert、預存程序等）和根表。

9. 使用輸出箭頭將端口連線到工作流程中的下一個端口。

10. 引發錯誤的檔案應路由到的端口路徑。僅當右鍵單擊端口並選擇 **顯示錯誤路徑** 時才可見。

11. 成功傳送的檔案應路由到的端口路徑。僅當右鍵單擊端口並選擇 **顯示成功路徑** 時才可見。

## 最佳實踐

大多數工作流程都有一個觸發端口（資料在該端口處進入工作流程）和一個終端端口（資料在該端口處退出工作流程）。對於某些迴圈工作流程，入口點和出口點可能是同一端口。

例如，當外部交易夥伴透過 AS2 傳送業務文件時，資料可能會在 AS2 端口處進入工作流程。該業務文件中的資料可能需要匯入到資料庫等後端系統中。在這種情況下，AS2 端口是觸發端口，Database 端口是工作流程的終端端口。

建立新工作流程時，通常最容易從觸發端口和終端端口開始。然後“向內工作”，向工作流程中新增轉換端口，以填充入口點和出口點之間的步驟（例如，可能需要新增將入站 AS2 負載轉換為資料庫插入的端口）。

### 與本地檔案系統互動

{companyName} 建議在配置與本地檔案系統互動的工作流程時使用 [File 端口](../connectors/file)。這對於與外部監控處理程序共享的資料夾尤其重要。下面概觀了[檔案拾取](#檔案拾取)和[檔案輸出](#檔案輸出)的指南。

#### 檔案拾取

要監控目錄中待 {siteNameShort} 處理的檔案，請在工作流程開頭新增 File 端口作為觸發端口。在 **新增端口** 面板中取消選中 **傳送** 操作。

<img src="https://mintcdn.com/qiao/bVtjD3fvHFZBo1vE/public/images/file_pickup.png?fit=max&auto=format&n=bVtjD3fvHFZBo1vE&q=85&s=53c23148d2cb7f9a26e6d844138438bd" alt="File pickup connector configuration" width="600" data-path="public/images/file_pickup.png" />

然後按照以下步驟配置端口：

1. 開啟 **設定** 索引標籤。

2. 將 **路徑** 屬性設定為要監控的目錄。可以使用宏基於日期和時間動態解析路徑；將滑鼠懸停在 **路徑** 欄位上可瞭解更多資訊。

3. 使用要檢索的檔案模式配置 **檔案掩碼** 屬性。

4. 為避免重新處理已拾取的檔案，請根據最適合工作流程的方式配置以下兩個選項之一：

   * 在 **接收** 部分，選中 **刪除檔案（接收後）**。此選項會在檔案處理後刪除檔案。
   * 在 **快取** 部分，選中一個或兩個快取選項，以維護已處理檔案的檔案大小和/或時間戳記錄。應用程式會跳過已快取的檔案，但不會刪除它們。

5. 開啟 **自動化** 索引標籤。

6. **接收** 自動化應已啟用。為目錄設定所需的輪詢間隔。

   <img src="https://mintcdn.com/qiao/bVtjD3fvHFZBo1vE/public/images/file_pickup_automation.png?fit=max&auto=format&n=bVtjD3fvHFZBo1vE&q=85&s=397339c9314f682a05ae1bbac3ea0bf5" alt="Receive automation settings" width="500" data-path="public/images/file_pickup_automation.png" />

#### 檔案輸出

要將處理後的檔案輸出到本地檔案系統，請在工作流程末尾新增一個終端 File 端口。

<img src="https://mintcdn.com/qiao/bVtjD3fvHFZBo1vE/public/images/file_dropoff.png?fit=max&auto=format&n=bVtjD3fvHFZBo1vE&q=85&s=93a78f5c28739794547314a7b2d85682" alt="File drop-off connector configuration" width="600" data-path="public/images/file_dropoff.png" />

按照以下步驟配置端口：

1. 開啟 **設定** 索引標籤。

2. 將 **路徑** 屬性設定為要輸出檔案的目錄。可以使用宏基於日期和時間動態解析路徑；將滑鼠懸停在 **路徑** 欄位上可瞭解更多資訊。

3. 開啟 **高階** 索引標籤。

4. 使用 **覆蓋選項** 指定如何處理目標路徑中已存在的檔案。

### 檔案傳輸端口特定於交易夥伴

透過網路傳送或接收檔案的端口（例如 AS2、AS4、FTP、SFTP、OFTP 等）是雙向的，但它們針對單個交易夥伴進行配置。換句話說，一個 AS2 端口可以與 Amazon 傳送 *和* 接收 AS2 訊息，但不能同時也與 Walmart 傳送和接收檔案。

許多 MFT（可控檔案傳輸）端口需要設定配置檔案來交換檔案。[配置檔案頁面](../getting-started/administration/profiles)包含一個索引標籤，用於為每個支援的協議配置應用程式範圍的設定。例如，在 AS2 配置檔案中配置的資訊會用於所有 AS2 端口，而特定於夥伴的 AS2 連線詳細資訊則在每個 AS2 端口中配置。

### 端口命名約定

應始終為端口提供一個描述性名稱，以傳達端口在工作流程中的角色。

* MFT 端口的名稱（例如 AS2、AS4、FTP、SFTP、OFTP 等）應指示與之交換檔案的遠端方以及交換所用的協議（例如：*Walmart\_Production\_AS2*）。
* EDI 端口的名稱（例如 X12 和 EDIFACT）應指示與之交換 EDI 文件的夥伴名稱、轉換方向和文件格式（例如：*Walmart\_X12\_Outbound*）。
* 資料對映端口的名稱（例如 XML Map）應指示端口從何種格式/架構對映到何種格式/架構（例如：*Map\_850\_to\_Orders*）。
* 後端整合端口的名稱（例如 Database、MySQL、CData）應指示特定的後端系統以及該後端系統中的表（如果適用）（例如：*PostgreSQL\_Orders\_table*）。

如果使用端口上的 **端口描述** 欄位，則可以將游標懸停在資訊圖示上以檢視該端口的描述。如果沒有看到資訊圖示，則該欄位中沒有任何文字。

<img src="https://mintcdn.com/qiao/Pa-LScG1ebkabWPi/public/images/designing_flow_description.png?fit=max&auto=format&n=Pa-LScG1ebkabWPi&q=85&s=e79f3f98010f5911a1a37dd6cb9c53ec" alt="Connector description hover tooltip" width="600" data-path="public/images/designing_flow_description.png" />

### 使用 XML 進行資料轉換

{siteNameShort} 使用 XML 作為資料操作和轉換的中間格式。許多端口會將各種格式的檔案轉換為 XML，反之亦然（例如 X12 端口、EDIFACT 端口、CSV 端口等）。此外，{siteNameShort} 使用 XML 對後端系統輸入和輸出進行建模（例如對類似資料庫的系統執行 SELECT 和 INSERT）。

由於大多數源格式和目標格式都可以表示為 XML，因此資料轉換工作流程通常具有以下結構：

* 以原始（源）格式提取或接收資料的端口
* 將此源格式轉換為 XML 的端口（如果它還不是 XML）
* 將此源 XML 轉換為表示目標（目的地）格式的新結構的 XML Map 端口
* 將轉換後的 XML 轉換為目標格式的端口（如果需要非 XML 格式）
* 將最終檔案傳送到其預期目標的端口

[XML Map 端口](../connectors/xml-map/xml-map)是在這些資料轉換工作流程中執行關鍵工作的引擎。熟悉資料轉換通常意味著熟悉 XML Map 端口的視覺化設計器。

### 將工作流程組織到工作區

可以在同一個工作流程畫布中配置多個單獨的工作流程，而不會產生交叉汙染風險，但將工作流程劃分到不同的[工作區](./workspaces)有助於減少混亂並保持組織有序。

單擊 **工作流程** 索引標籤以開啟工作區清單。可以在此處建立新工作區、匯入或匯出工作區配置設定，以及刪除工作區（Default 工作區除外）。任何時候都只會顯示當前工作區中的端口。

不同工作區中的端口不能相互連線，並且特定於這些端口的資料和配置檔案儲存在單獨的資料夾結構中。
