Skip to main content
X12 端口支援從 XML 生成 X12 檔案以及將 X12 檔案轉換為 XML。

核心功能

  • 完整的雙向 EDI X12 與 XML 文件處理,支援所有交易集
  • 交換頭和功能群組頭的驗證與生成
  • 支援 997/999 功能確認(ACK)及自動路由
  • 提供 HIPAA 合規性所需的 SNIP 驗證等高階功能

概覽

接收 X12 報文時,X12 端口會驗證 X12 互動標頭並將 X12 報文轉換為 XML。這是一個非常有用的準備步驟,因為 XML 是 用於處理工作流程中資料的主要格式。X12 端口自動讀取輸入檔案以確定與報文相匹配的 X12 Schema,然後根據該 Schema 解析報文。 生成 X12 報文時,X12 端口將 XML 檔案轉化為符合 X12 語法規則的 X12 報文,並應用此端口配置的 X12 交換頭資訊。這對於建立 X12 報文非常重要,此步驟發生在 XML 資料已在工作流程其他位置完成取得和轉換之後。
可以透過在端口的測試指示符設定中選擇 Test Data 來跳過交換頭驗證。
X12 端口還可以自動為傳入的 X12 報文生成 ACK。有關更多資訊,請參閱 X12 ACK 部分。

必要條件

開始之前,請確保已為需要處理的文件型別安裝了正確的 Schema。X12 端口本身支援以下 Schema 定義:00401、00403 和 00501。可以在 安裝目錄的 app_data/x12_schemas 目錄中找到它們。 下載並解壓 zip 存檔後,將整個資料夾放入 app_data/x12_schemas 目錄下適當命名的子目錄中。

端口配置

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

設定索引標籤

轉換配置

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

EDI 交易夥伴

交換頭配置

與 X12 文件的交換頭相關的設定。生成文件時,這些設定將作為交換頭應用到生成的文件中。解析文件時,交換頭設定用於驗證傳入文件。

ACK

與生成和請求確認相關的設定。

範例檔案索引標籤

進階設定索引標籤

EDI 分隔符號

指定哪些字元作為元素、段等的分隔符號。

交換頭配置

與 X12 交換頭相關的其他設定。

功能群組配置

與 X12 文件的功能群組頭相關的設定。這些可選識別碼可以幫助對類似的交換進行分組或促進組織中的子定址。

進階設定

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

訊息

日誌

其他

EDI 交易夥伴索引標籤

自動化索引標籤

自動化設定

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

效能

告警索引標籤

SLA 索引標籤

轉換格式

以下各節詳細介紹了將 X12 轉換為 XML 的過程,以及將 XML 轉換為 X12 的過程。

X12 轉換為 XML

轉換型別設定為 X12 轉換為 XML 指示端口將傳入的 X12 文件解析為 XML。端口首先讀取文件”交換”和”功能群組”部分的所有標頭資訊,並根據配置的端口設定驗證它們(除非測試指示符設定為 Test Data)。然後,端口解析文件中使用的特定 X12 Schema,並從磁碟上的 x12_schemas 資料夾載入 Schema。使用該 Schema,端口生成表示文件 X12 結構的 XML,使用文件中的值填充 XML,並以 XML 註釋或 XML 元素屬性(基於生成描述為的值)的形式為每個值提供上下文。 要使用一組測試 X12 文件檢視此過程,請導航到 X12 端口的交易索引標籤(將轉換型別設定為 X12 轉換為 XML)並選擇更多 > 建立測試檔案。發票、採購訂單、採購訂單確認和發貨通知的 X12 文件會自動生成並放置在交易目錄中。端口處理這些測試檔案後,導航到交易索引標籤以檢視生成的 XML。 一旦 X12 報文被轉換成 XML,資料就可以透過多種方式進行轉換和操作。通常,X12 資料需要儲存在資料庫或其他後端應用系統中。因為 使用 XML 來表示這些後端系統中的插入,所以儲存 X12 資料就變成了簡單地將一個 XML 結構對映到另一個 XML 的問題。通常是用視覺化設計器驅動 XML Map 端口

XML 轉換為 X12

轉換型別設定為 XML 轉換為 X12 指示端口根據文件的 XML 表示形式生成 X12 文件。端口根據從 XML 解析的資料構建 X12 訊息後,會根據配置的端口設定新增功能群組和交換標頭。 要使用一組測試 XML 檔案檢視此過程,請導航到 X12 端口的交易索引標籤(將轉換型別設定為 XML 轉換為 X12)並選擇更多 > 建立測試檔案。發票、採購訂單、採購訂單確認和發貨通知的 XML 檔案將自動生成並放置在交易目錄中。端口處理這些測試檔案後,導航到交易索引標籤以檢視生成的 X12 文件。

列印檢視

與 XML Map 端口配合使用

上傳測試檔案

X12 ACK

以下章節詳細介紹了三種 X12 ACK,以及 期待、處理和生成 ACK 的方式。

交換 ACK、997 和 999

TA1 是一種普遍接受的交換確認形式。這表明雙方之間已經發生了資料交換,儘管不一定交換了具體報文。這作為接收方發給發件人的收據,表明接收方已成功收到 EDI 訊息,但未指定在處理訊息內容時是否存在任何問題。 997(版本 4010)、997(版本 5010)或 999 確認被視為功能性 ACK,即單個訊息(例如發票或採購訂單)已被接受的確認。這些是根據雙方的雙向協議生成的。

期待 ACK、處理 ACK 和生成 ACK

期待 ACK

X12 端口在 XML 轉換為 X12 模式下執行時,可以進行配置,以便可以要求交換和功能確認。在”設定”索引標籤的 ACK 部分中選中 TA1 ACK功能 ACK 時,端口將保持傳輸的”Pending ACK”狀態,直到傳回並處理相應的 ACK。這意味著端口狀態可用於確定收件人是否已確認他們收到了交換。 下圖顯示了從發票文件期待 ACK 時涉及的邏輯流程: 接收 X12 ACK 上圖中,以 XML 轉換為 X12 模式執行的 X12 端口生成要交換的文件 (1),在文件傳輸到交易夥伴時保持為 Pending ACK 狀態。交易夥伴根據其業務邏輯處理傳輸,並根據配置的交換參數建立確認 (2)。當確認傳回後,將根據下一部分 (3) 中的資訊進行處理。

處理 ACK

在典型的工作流程中,X12 ACK 將到達以 X12 轉換為 XML 模式執行的 X12 端口。可以將該 X12 端口配置為自動將所有收到的 ACK 路由到最初生成被確認文件的 X12 端口。在畫布上,可以透過將 X12 轉換為 XML 模式下 X12 端口底部的灰色點拖動到 XML 轉換為 X12 模式下的 X12 端口上,來視覺化配置 X12 端口之間的 ACK 路由。 一旦 XML 轉換為 X12 模式下的 X12 端口接收到路由的 ACK,會將 ACK 與原始訊息進行匹配,並將其狀態從 “Pending ACK” 更新為 “Sent”。

生成 ACK

當處於 X12 轉換為 XML 模式的 X12 端口收到一條訊息並生成相應的 XML 時,它可以自動為收到的訊息生成確認。為此,請在”設定”索引標籤的 ACK 部分中啟用 TA1 ACK 和/或Functional ACK expected。必須將這些確認路由到另一個 X12 端口(處於 XML 轉換為 X12 模式)以最終確定 ACK。ACK 路由到的端口將應用交換標頭,並將 ACK 傳遞到工作流程中的下一個端口,就像其他 X12 訊息一樣。要適當路由 ACK,請將 X12 轉換為 XML 模式下 X12 端口底部邊緣的灰色點拖動到 XML 轉換為 X12 模式下的 X12 端口上。 下圖顯示了為收到的發票文件建立 ACK 時涉及的邏輯流程: 建立 X12 ACK 如上圖所示,在交易夥伴傳送了一條要求確認的訊息後 (1),X12 轉換為 XML 模式下的 X12 端口解析文件會自動生成一個 ACK (2)。該 ACK 是一個 XML 檔案,其中包含與交易相關的交易資訊。然後,此 XML ACK 將以 XML 轉換為 X12 模式 (3) 路由至 X12 端口,以便在將 ACK 傳送至交易夥伴之前使用交換標頭(和其他 EDI 方協議設定)。

主從層次結構:轉換 HLLoop

在 EDI 文件中,大多數層次結構關係由 EDI 段的順序表示。但一些 EDI 結構,例如 HLLoop(見於_預先裝運通知_或 X12 856s 中)不遵循此約定,而是將層次結構關係嵌入到 EDI 元素資料本身中,這使得將 EDI 資料轉換為 XML 時保留這些層次關係變得困難。 X12 端口透過高階索引標籤進階設定中的巢狀主從細節迴圈設定支援在 HLLoop 中保留層次結構關係。啟用後,端口將解析 HLLoop 段中的元素,以確定哪些段”屬於”層次關係中的其他段。這些層次結構關係在輸出的 XML 中反映為”父子關係”。換句話說,此設定將 EDI 內容隱含的層次結構轉換為 XML 結構表示的層次結構。 本節將簡要說明如何在 HLLoop 資料中編碼層次結構,以及在啟用巢狀主從細節迴圈時如何將此層次結構轉換為 XML。

HLLoop 層次結構

所有 HL 段均具有兩個有助於建立層次結構的值:
  • ID 值,它標識當前的 HL 段(此值儲存在 HL01 或 HL 段中的第一個元素中)
  • 父 ID 值,標識當前 HL 段的層次結構父級(此值儲存在 HL02 或 HL 段中的第二個元素中)
例如,假設 HL 段的 ID 值為 ‘2’。如果下一個 HL 段以分層關係”屬於”該段,則下一個 HL 段的父 ID 應為 “2”。 如果 HL 段的父 ID 為 “0”,則表示該段沒有父級(即位於層次結構的頂層)。

HLLoop 範例

為了進一步闡明 HLLoop 資料中的層次結構關係,請使用以下 EDI 程式碼段作為樣本輸入(僅以 HL 開頭的行與確定資料層次結構相關;其餘段被包括在內以更緊密地代表實際的 EDI 資料):
在此資料中,第二個 HL 段以分層關係”屬於”第一個 HL 段。可以透過檢視以下段的 HL01 和 HL02 的值來確定:
  • 第一個 HL 段的 HL01(ID)的值為 “1”
  • 第二個 HL 段的 HL02(父 ID)的值也為 “1”
將父 ID 值與 ID 值進行匹配相同的過程可用於確定資料中的所有層次關係。

將 HLLoop 層次結構轉換為 XML

啟用巢狀主從細節迴圈時,X12 端口會自動處理 HL 層次結構到 XML 層次結構的轉換。端口從 EDI 輸入中解析 HL01 和 HL02 元素值,並確保 XML 元素正確巢狀(縮排)在代表其父元素的元素內。 檢視 HL 層次結構如何轉換為 XML 層次結構,啟用巢狀主從細節迴圈時,將從上面的範例 HL 資料生成以下 XML 輸出:
快速辨別差異有一定難度,但需要注意的關鍵是,HLLoop 段包含在其他段中(即,在 XML 中具有父子關係),這與原始 HL01 和 HL02 的值一致。

範例

X12 操作

除了 提供的操作之外,端口還可以提供將功能擴充套件到 ArcScript 中的操作。這些端口操作可以像任何其他 ArcScript 操作一樣呼叫,但必須透過 connector.rsc 端點呼叫,並且必須包含身分驗證權杖。 下面列出了 X12 端口特定功能的操作。

x12Scan

從 X12 文件的標題中掃描標題值。

必須的參數

  • file:X12 檔案的路徑。

可選的參數

  • format:檔案格式。預設值為 ‘X12’。

輸出屬性

  • InterchangeSenderIdQualifier:傳送方 ID(ISA05)限定符。
  • InterchangeSenderId:傳送方 ID(ISA06)。
  • InterchangeReceiverIdQualifier:接收方 ID(ISA07)限定符。
  • InterchangeReceiverId:接收方 ID(ISA08)。
  • InterchangeControlNumber:唯一標識 EDI 交換的值(ISA13)。
  • FunctionalGroupSenderId:功能群組配置中傳送方 ID(GS02)。
  • FunctionalGroupReceiverId:功能群組配置中接收方 ID(GS03)。
  • DocumentType:檔案型別或交易集識別碼程式碼(ST01)。
  • StandardVersion:此交換中使用的 X12 標準的主要版本(例如 00401、00501)。

常見錯誤

以下列出了常見錯誤,以及原因和建議的解決方案。

錯誤:找不到 Schema 檔案([schema 主要版本] [schema 文件型別])

原因 解析 X12 檔案時,首先在檔案中掃描 EDI 版本和文件型別,以確定在解析過程中使用哪種 Schema。該應用程式包含一組廣泛的 JSON 格式的 X12 Schema,儲存在應用程式目錄的 schemas 資料夾中(緊鄰 data 資料夾)。 此錯誤表明應用程式找不到與檔案報告的主要版本和文件型別相匹配的 Schema 檔案。 如果錯誤訊息中缺少 [schema major version] 值或 [schema document type] 值,則表明 EDI 文件不包含主要版本或文件型別。 否則,這表明 隨附的 Schema 定義集中未包含相應的 Schema。 解決 如果 EDI 檔案不包含 Schema 主版本或文件型別,請與交易夥伴(或 EDI 文件的其他來源)聯絡,告知他們這些值必須包含在訊息標頭中。 否則,請從免費下載頁面取得合適的 Schema 版本。下載 Schema 資料夾並將其放置在以下位置之一:
  1. 在磁碟上的 Schema 資料夾內(例如 <ConnectorDirectory>/Resources/Schemas/
  2. 如果一個 Schema 被多個端口使用,建議使用如下資料夾結構:<ApplicationDirectory>/schemas/<type>_schemas/<major version>。在此範例中,<type> 應為 x12

錯誤:第 [line number] 行中標記為 [segment name] 的段在指定 Schema([schema 主要版本] [schema 文件型別])中不處於有效位置。這可能表示輸入檔案包含順序錯誤的段。

原因 解析 X12 檔案時,首先在檔案中掃描 EDI 版本和文件型別,以確定在解析過程中使用哪種 Schema。該應用程式包含一組廣泛的 JSON 格式的 X12 Schema,儲存在根安裝目錄的 www\app_data 資料夾中。 此錯誤表明剖析器在檔案中遇到的 EDI 段與相關文件 Schema 中定義的段的順序不匹配。這可能表明幾個不同的問題:
  • 交易夥伴生成的 EDI 檔案有誤
  • EDI 檔案由不同於檔案中指示的 Schema 版本生成
  • EDI 檔案由自定義 Schema 生成
解決 如果 EDI 檔案由自定義 Schema 生成,請將自定義 Schema 檔案(JSON 格式)放在 讀取 EDI Schema 的資料夾中。端口透過按順序檢查以下位置來搜尋 Schema:
  1. 在磁碟上的 Schema 資料夾內(例如 <ConnectorDirectory>/Resources/Schemas/
  2. 如果一個 Schema 被多個端口使用,建議使用如下資料夾結構:<ApplicationDirectory>/schemas/<type>_schemas/<major version>。在此範例中,<type> 應為 x12
如果 EDI 檔案不是由自定義 Schema 生成的,則有兩種方法可以解決交易夥伴生成的 EDI 檔案與用於解析該檔案的 EDI Schema 之間的差異。
  1. 手動編輯適當的 EDI Schema 檔案(在上面的檔案路徑中找到),以調整段順序,使其與交易夥伴的 EDI 檔案匹配。錯誤訊息指示檔案中段與 Schema 定義不同的行。跟蹤段順序的 JSON 定義,直到找到差異為止,然後對 JSON 中的段重新排序以匹配交易夥伴提供的檔案。
  2. 與交易夥伴聯絡瞭解 EDI 檔案情況。確認檔案是根據檔案中報告的主要版本生成的,並說明未識別檔案中段的順序。
使用哪種方法取決於對特定文件型別的 EDI 段的熟悉程度(根據交易夥伴的檔案正確編輯 JSON Schema)和交易夥伴的靈活性(調整 EDI 檔案以回應有關錯誤的資訊)。