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

# 文件工作流程對映

> 在知行之橋中配置並測試交易夥伴文件與源或目標端口之間的 EDI 文件工作流程對映。

export const siteNameShort = "知行之橋";

TPMC 的一個重要組成部分是配置傳入或傳出 EDI 文件與儲存資料或傳送資料的端口之間的對映。

*傳入* 對映依賴於透過 MFT 協議從交易夥伴接收 EDI 文件，使用 EDI 標準將其從 EDI 轉換為 XML，然後將其對映到目的地端口（如資料庫）。

*傳出* 對映依賴於從源端口（如資料庫）中提取 XML 資料，將資料對映到 EDI 標準的 XML 表示形式，將 XML 轉換為 EDI，然後透過 MFT 協議將 EDI 文件傳送給交易夥伴。

文件工作流程有兩種定義方式。

* 在[交易夥伴](./edi-partners-tab#select-or-add-documents)索引標籤中，單擊交易夥伴的名稱，然後選擇 **工作流程** 索引標籤。有關如何新增文件和啟動工作流程的說明，請參閱[選擇或新增文件](./edi-partners-tab#select-or-add-documents)。
* 在[文件](./edi-documents-tab)索引標籤中，單擊現有文件的名稱，或選擇 **新增文件** 來建立新文件。有關如何新增文件和啟動工作流程的說明，請參閱[從文件索引標籤建立文件](./edi-documents-tab#creating-a-document-from-the-documents-tab)。

## 新增文件工作流程

定義文件工作流程包括以下步驟：

1. 完成 **新增文件工作流程** 螢幕。
   1. 從 **交易夥伴** 索引標籤新增文件時，單擊 **新增工作流程** 啟動文件工作流程。在這種情況下，**新增文件工作流程** 螢幕上的欄位是預填的。可以更改文件名稱，但所有其他欄位都是固定的。
   2. 從 **文件** 索引標籤新增文件時，必須手動填寫 **新增文件工作流程** 螢幕上的欄位。
2. [選擇並配置來源或目標端口](#選擇並配置來源或目標端口)
3. [配置對映](#配置對映)。除了不使用對映的 [File](../connectors/file)、[AMQP](../connectors/amqp) 和 [Apache Kafka](../connectors/apachekafka) 以外，對映適用於所有端口。有關更多資訊，請參閱[無需對映的文件工作流程](./workflow-nomapping)。

### 選擇並配置來源或目標端口

建立*傳入*文件時，必須指定要新增資料的目標端口。建立*傳出*文件時，必須指定要從中提取資料的源端口。可用的端口包括 {siteNameShort} [資料庫端口](../connectors/database-connectors)和[其他端口](../connectors/other-connectors)、[File](../connectors/file) 端口、[Workspace Send](../connectors/workspace-send) 端口（僅適用於傳入文件）以及 [Workspace Receive](../connectors/workspace-receive) 端口（僅適用於傳出文件）。

下圖顯示瞭如何配置傳出文件的來源，但相同的原則也適用於傳入文件的目標。在此範例中，源是從交易夥伴的 **工作流程** 索引標籤定義的，但也可以從 **文件** 索引標籤獲得相同的結果。

1. 在 **工作流程** 索引標籤中，單擊 **新增源**。

   <img src="https://mintcdn.com/qiao/Pa-LScG1ebkabWPi/public/images/edi_add_source.png?fit=max&auto=format&n=Pa-LScG1ebkabWPi&q=85&s=b44930a069c3197544d70ae4d3dc14c6" alt="Add Source button on the Workflow tab" width="600" data-path="public/images/edi_add_source.png" />

2. 在 **選擇來源** 清單中突出顯示一個端口，然後單擊 **新增**。

   <img src="https://mintcdn.com/qiao/bVtjD3fvHFZBo1vE/public/images/edi_select_source_connector.png?fit=max&auto=format&n=bVtjD3fvHFZBo1vE&q=85&s=e5036500e7ac7a2343478d8be3f30996" alt="Select Source connector dialog" width="300" data-path="public/images/edi_select_source_connector.png" />

3. 使用加號建立一個新的 **連線**，或使用下拉功能表選擇現有連線。

   <img src="https://mintcdn.com/qiao/bVtjD3fvHFZBo1vE/public/images/edi_source_config.png?fit=max&auto=format&n=bVtjD3fvHFZBo1vE&q=85&s=862ff9a9e993b6686be000119f51ff57" alt="Source connector configuration" width="300" data-path="public/images/edi_source_config.png" />

4. 新增新連線時，請在 **新增連線** 視窗中填寫以下欄位：
   * 名稱
   * Server
   * Port
   * User
   * Password
   * AWS Access Key (optional)
   * AWS Secret Key (optional)
   * AWS Role ARN (optional)

5. 單擊 **測試連線**。

6. 對於傳出的文件，唯一可用的操作是 `Select`，因此當新增並測試連線後，單擊 **下一步**。（傳入文件的操作是 `Upsert`。請參閱[操作](#操作)以瞭解更多資訊。）

這將開啟端口的 **操作** 配置索引標籤，可以在其中完成對映。有關如何使用此索引標籤的說明，請參閱[配置對映](#配置對映)。

<img src="https://mintcdn.com/qiao/Ucivuk3ay0Gk5vqt/public/images/edi_mapping_source_structure.png?fit=max&auto=format&n=Ucivuk3ay0Gk5vqt&q=85&s=ef1e0fc063c3577ec9c4ab380f4e44c9" alt="操作索引標籤上的源結構" width="800" data-path="public/images/edi_mapping_source_structure.png" />

<Note>
  * 使用其他配置索引標籤（例如 **設定** 和 **自動化**）完成端口配置。有關配置選項的詳細資訊，請單擊問號幫助圖示以開啟端口文件。
  * 如果需要在原始設定後修改連線，請使用 **設定** 索引標籤上的 **連線** 欄位。
</Note>

## 配置對映

建立連線後，必須定義要對映的資料結構。如果要建立傳入文件，請點選**新增目標結構**；如果要建立傳出文件，請點選**新增源結構**。

對於傳出文件，可以在源結構編輯器中選擇**父表和子表**或**聯接表**結構型別，配置要包含的列並應用篩選器。詳情請參閱[配置源結構](./edi-source-structure)。

以下已完成對映的影像已註釋以解釋螢幕上的每個元素。每個數字對應下面的描述。

<img src="https://mintcdn.com/qiao/Pa-LScG1ebkabWPi/public/images/edi_mapping_outgoing_annotated.png?fit=max&auto=format&n=Pa-LScG1ebkabWPi&q=85&s=8948eb1dcba939e69daec2bbac8810dc" alt="Annotated outgoing document mapping" width="800" data-path="public/images/edi_mapping_outgoing_annotated.png" />

1. 文件或端口名稱。
2. 端口型別。
3. 文件的操作。傳入文件的值為 **Upsert**，傳出文件的值為 **Select**。
4. 對映的測試狀態。值為 **測試成功**、**測試有錯誤** 或 **未測試**。
5. 切換 XML 流式處理的開啟或關閉。開啟時，對映引擎在完成迴圈後，刪除對映中最頂層 `Foreach` 的當前迭代的文件物件模型 (DOM)。這可以顯著提高大 XML 文件的效能。在對映引擎無法解析對映的情況下，它會自動關閉 XML 流式處理。
6. 切換是否顯示或隱藏 XML 屬性。
7. 重新整理對映。
8. 開啟 **測試對映** 頁面。測試結果顯示在 #4 中。（有關更多資訊，請參閱[測試對映](#測試對映)。）
9. 儲存對映。
10. 配置資料來源中的目標表。
11. 對映的方向。
12. EDI 文件的架構（本例中為 810 發票）。
13. 源端和目標端的搜尋欄。
14. 源表的結構。
15. 表的名稱。這也稱為表節點。
16. 表中的列。這也稱為列節點。
17. 目標文件的結構。
18. 已完成的對映。

對映頁面可建立 EDI 文件與來源或目標端口之間的連結。對於傳入文件，EDI 文件結構位於左側窗格中，端口表結構位於右側窗格中。對於傳出文件則相反，如在上面的帶註釋圖片中看到的那樣。

有關如何使用對映編輯器的詳細說明，請參閱[對映](../mapping)文件中的[配置對映](../mapping/mapping-config)。

<Note>要編輯之前儲存的對映，請單擊 **EDI > 文件**，然後單擊文件名稱。在 **文件工作流程** 部分中，單擊 **文件目標**（用於傳入文件）或 **文件源**（用於傳出文件）中的端口連結。</Note>

### 瞭解來源和目標

如前所述，當建立*傳入*文件時，必須指定將傳送資料的目標端口。EDI 文件結構位於左側窗格中，端口表結構位於右側窗格中。

當建立*傳出*文件時，必須指定要從中提取資料的源端口。此處，端口表結構位於左側窗格中，EDI 文件結構位於右側窗格中。

{siteNameShort} 提供了多種方式來操作表和文件結構中的資訊。有關詳細資訊，請參閱[表結構節點](#表結構節點)和[文件節點](#文件節點)。

要更改文件架構，或上傳代表源或目標 XML 結構的範本檔案，請單擊文件架構的連結並選擇 **上傳檔案**。如果交易夥伴提供了他們希望傳送和/或接收的範例文件，這將很有幫助。例如，如果交易夥伴提供了一個範例 X12 850，可以在常規工作區中以 `X12 to XML` 模式透過 [X12 端口](../connectors/x12) 將其轉換為 XML。然後，可以將輸出 XML 上傳為範本檔案。

<img src="https://mintcdn.com/qiao/bVtjD3fvHFZBo1vE/public/images/edi_upload_template_file.png?fit=max&auto=format&n=bVtjD3fvHFZBo1vE&q=85&s=164993752e8104853f66bc6c6b901a80" alt="Upload Template File dialog" width="300" data-path="public/images/edi_upload_template_file.png" />

瀏覽到範本檔案，然後單擊 **上傳範本檔案**。

#### 操作

配置端口時，有兩個操作可用：

* Upsert 是針對傳入文件的操作。此操作將資料插入或更新到目標表中。如果目標表中已存在記錄，則使用輸入提供的值對現有資料執行更新。
* Select 是針對傳出文件的操作。此操作從目標資料來源檢索資料。

### 表結構節點

本節介紹顯示源表或目標表結構的對映窗格中可用的選項。結構中有兩種型別的節點：表節點和列節點。表節點表示表本身，列節點表示表中的列。

#### 表節點

表節點用表圖示表示。將滑鼠懸停在表節點上時，有兩個附加選項：

* 單擊漏斗圖示開啟 **新增對映條件** 頁面，該頁面可向對映新增過濾條件。有關更多資訊，請參閱[使用條件編輯器](../mapping/mapping-condition-editor)。（僅適用於傳入文件對映。）

* 單擊省略號開啟該表節點的選項清單：

  * **重新命名表** 可更改節點的名稱。
  * **刪除表** 可刪除節點。
  * **表設定** 開啟一個編輯視窗，可在其中選擇要包含在對映中的列，以及是否應用[篩選器](./edi-source-structure#篩選器)。（僅適用於傳出文件對映。）
  * **編輯列** 開啟一個編輯視窗，可在其中選擇要包含在對映中的列。（僅適用於傳入文件對映。）
  * **新增** 開啟一個新的節點清單，可以在對映中建立和使用這些節點。（僅適用於傳入文件對映。）選項包括：
    * **新增標題** 建立一個可以將值對映到的標頭節點。對映的值不包含在輸出檔案中，但會作為標頭新增到對映輸出訊息中。
    * **新增迴圈** 在所選節點上方建立一個迴圈節點，該節點將巢狀在迴圈節點內。有關更多資訊，請參閱[對映迴圈](../mapping/mapping-config#mapping-loops)。
    * **新增條件** 可讓您向目標節點新增條件，以便只有條件為真時資料才會更新插入到目標。有關詳細資訊，請參閱[使用條件編輯器](../mapping/mapping-condition-editor)。
    * **新增程式碼指令碼** 開啟 **新增指令碼** 視窗，可以在其中命名指令碼節點並提供自定義 ArcScript。
    * **新增變數** 在所選節點下方建立一個變數節點。有關更多資訊，請參閱[變數](../mapping/mapping-node-value-editor#variables)。

#### 列節點

列節點表示表中的列。每個列節點都有一個型別，即資料庫中列的資料型別。共有七種不同的資料型別，每種都有自己的符號。將滑鼠懸停在列上可檢視其資料型別、大小以及是否可以為空。資料型別包括：

* String（字串）
* Number（數字）
* Binary（二進位）
* Boolean（布林值）
* Date（日期）
* Time（時間）
* Date and Time（日期和時間）

將滑鼠懸停在列行上並單擊省略號以開啟該節點的選項清單：

* **重新命名列** 可更改節點的名稱。
* **刪除列** 可刪除節點。
* **新增** 開啟一個新的節點清單，可以在對映中建立和使用這些節點。（僅適用於傳入文件對映。）選項包括：
  * **新增標題** 建立一個可以將值對映到的標頭節點。對映的值不包含在輸出檔案中，但會作為標頭新增到對映輸出訊息中。
  * **新增迴圈** 在所選節點上方建立一個迴圈節點，該節點將巢狀在迴圈節點內。有關更多資訊，請參閱[對映迴圈](../mapping/mapping-config#mapping-loops)。
  * **新增程式碼指令碼** 開啟 **新增指令碼** 視窗，可以在其中命名指令碼節點並提供自定義 ArcScript。
  * **新增變數** 在所選節點下方建立一個變數節點。有關更多資訊，請參閱[變數](../mapping/mapping-node-value-editor#variables)。
* **新增跟蹤** 將[跟蹤的標頭](../getting-started/administration/activity#tracked-headers)新增到對映中。當節點啟用跟蹤時，它會顯示一個指南針圖示。

### 文件節點

文件節點是指對映另一側的節點：非資料庫側。這些節點與資料來源（帶有列的表）沒有明確關聯，而是以 XML 結構表示 EDI 資料。對於傳出文件，這些節點被對映到；對於傳入文件，則從這些節點進行對映。

對於傳出文件（使用 Select 操作），單擊漏斗圖示以開啟 **新增對映條件** 頁面，該頁面可向對映新增過濾條件。有關更多資訊，請參閱[使用條件編輯器](../mapping/mapping-condition-editor)。單擊省略號以在目標文件中使用以下選項：

* **重新命名節點** 可更改節點的名稱。
* **編輯 XPath** 可編輯節點 XPath（僅適用於已對映為 `Foreach` 的元素）。
* **刪除節點** 可從文件中刪除節點。
* **新增節點**
  * **新增兄弟節點** 可在與所選節點相同的級別新增節點。
  * **新增屬性** 可向所選節點新增屬性。
  * **新增子節點** 可將節點新增為所選節點的子節點。
  * **新增標題** 建立一個可以將值對映到的標頭節點。對映的值不包含在輸出檔案中，但會作為標頭新增到對映輸出訊息中。
  * **新增迴圈** 在所選節點上方建立一個迴圈節點，該節點將巢狀在迴圈節點內。有關更多資訊，請參閱[對映迴圈](../mapping/mapping-config#mapping-loops)。
  * **新增條件** 開啟[條件編輯器](../mapping/mapping-condition-editor)，可以在其中新增條件，以便只有當條件為真時，資料才會更新插入到目標。
  * **新增程式碼指令碼** 開啟 **新增指令碼** 視窗，可以在其中命名指令碼節點並提供自定義 ArcScript。
  * **新增變數** 在所選節點下方建立一個變數節點。有關更多資訊，請參閱[變數](../mapping/mapping-node-value-editor#variables)。
* **剪下節點** 從當前位置剪下所選節點。
* **複製節點** 複製所選節點。
* **貼上為子節點** 將剪下或複製的節點貼上為所選節點的子節點。

對於傳入文件（使用 Upsert 操作），單擊源文件結構中的省略號以使用以下選項：

* **重新命名節點** 可更改節點的名稱。
* **刪除節點** 可從文件中刪除節點。
* **新增節點**
  * **新增兄弟節點** 可在與所選節點相同的級別新增節點。
  * **新增屬性** 可向所選節點新增屬性。
  * **新增子節點** 可將節點新增為所選節點的子節點。
* **剪下節點** 從當前位置剪下所選節點。
* **複製節點** 複製所選節點。
* **貼上為子節點** 將剪下或複製的節點貼上為所選節點的子節點。

也可以使用 **編輯節點** 開啟 **編輯節點值** 頁面。請參閱[使用節點值編輯器](../mapping/mapping-node-value-editor)。

## 測試對映

配置對映後，應該對其進行測試。單擊頁面頂部的 **測試對映** 按鈕。下圖顯示了測試傳入文件。

<img src="https://mintcdn.com/qiao/bVtjD3fvHFZBo1vE/public/images/edi_test_mapping.png?fit=max&auto=format&n=bVtjD3fvHFZBo1vE&q=85&s=1d19abd71b4a8245419742c6e14b8b04" alt="Test Mapping page" width="800" data-path="public/images/edi_test_mapping.png" />

測試頁面的源端有兩個索引標籤：**XML** 和 **標頭**（**標頭** 索引標籤僅適用於傳入文件）。源中填充了要測試的文件或表結構的 XML 表示，但可以根據需要對其進行編輯。對於傳入文件，單擊 **標頭** 索引標籤以新增要在對映中使用的任何標頭（有關更多資訊，請參閱[跟蹤的標頭](../getting-started/administration/activity#tracked-headers)）。準備就緒後，單擊 **測試對映**。

測試結果指示器顯示在交易夥伴 **工作流程** 頁面和對映本身上。對映上的值為 **測試成功**、**測試有錯誤** 或 **未測試**。**工作流程** 頁面顯示成功測試的勾選、未測試對映的棕色感嘆號和有錯誤測試的紅色感嘆號。將滑鼠懸停在圖示上可檢視有關錯誤的詳細資訊。

<Note>測試傳入文件時，正在使用即時資料進行測試。單擊 **測試對映** 時，{siteNameShort} 會在測試對映後嘗試執行 `upsert`。</Note>

## 篩選器和查詢檢視

有關篩選連接器所選資料、建立篩選器和篩選器組以及使用查詢檢視的資訊，請參閱[配置源結構](./edi-source-structure#篩選器)中的“篩選器”。
