天天看點

BizTalkServer 如何接收 EDI 消息(2)

接收到的 EDI 消息的協定解析、架構發現和授權

[除非特别注明,本主題中的内容适用于 BizTalk Server 2013 和 2013 R2。]

當 BizTalk Server 收到 EDI 消息時,EDI 接收管道将執行貿易合作夥伴協定查找、架構發現和授權過程以确定如何處理消息。

協定解析

EDI 接收管道執行貿易合作夥伴協定解析的方法是:通過執行一系列的步驟來确定消息中的标頭字段與協定定義中的屬性之間是否比對。一旦 BizTalk Server 确定協定,便可确定适用于交換的文檔架構(見下文)。它使用與比對協定關聯的屬性及相關架構來驗證并處理接收的消息。

若要執行協定解析,BizTalk Server 将按照以下方式繼續進行操作:

通過将資料交換标頭中的發送方限定符和辨別符及接收方限定符和辨別符與協定屬性中的相應内容進行比對來解析協定。

如果第 1 步不成功,則僅通過将資料交換标頭中的發送方限定符和辨別符與協定屬性中的相應内容進行比對來解析協定。此外,由于第一步未成功,是以可以放心地假定 BizTalk Server 會收到該消息。是以,BizTalk Server 會嘗試将接收方限定符和辨別符與以下值比對:

值“BT”和“HostX12Recvr”(适用于 X12 編碼的消息)以及

值“BT”和“HostEdifactRecvr”(适用于 EDIFACT 編碼的消息)

BizTalkServer 如何接收 EDI 消息(2)

重要提示

o    BizTalk Server 2013 R2、2013 和 2010:ISA5、ISA6、ISA7、ISA8、UNB2.1、UNB2.2、UNB3.1 和 UNB3.2 字段是協定設定中的必填字段。

o    BizTalk Server 2009 和 2006 R2:ISA7、ISA8、UNB3.1 和 UNB3.2 字段不是參與方設定中的必填字段。如果這些字段保留為空,則 EDI 引擎将根據 ISA5、ISA6、UNB2.1 和 UNB2.2 的值提供解析。

o    若要支援從 BizTalk Server 2009 和 2006 R2 解析到 BizTalk Server 的更新版本,請引入寫死 ID(HostX12Recvr 和 HostEdifactRecvr)和限定符 (BT)。

o    EDIFACT 消息應遵循UNECE 準則中的消息文法和規則。

如果第 2 步不成功,則使用後備協定屬性。

在第一步中,對于 X12,BizTalk Server 将使用以下值來進行比對:

ISA05(發送方限定符)

ISA06(發送方辨別符)

ISA07(接收方限定符)

ISA08(接收方辨別符)

對于 EDIFACT,BizTalk Server 将使用以下值進行比對:

UNB2.1(發送方辨別符)

UNB2.2(發送方限定符)

UNB3.1(接收方辨別符)

UNB3.2(接收方限定符)

用于比對的協定屬性在“協定屬性”對話框的方向特定的協定頁籤的“辨別符”頁中定義。

這四個接收端和發送端屬性唯一辨別貿易合作夥伴協定。使用這四個屬性可以更靈活地處理接收端。例如,利用這種協定解析的方法,你可以向多個參與方發送确認,而無需建立多個發送端口。

如果 BizTalk Server 使用所有這四個發送方和接收方限定符及辨別符都不能解析協定,它将嘗試隻使用發送方限定符和辨別符來解析協定。對于 X12,這些字段為 ISA05 和 ISA06;對于 EDIFACT,這些字段為 UNB2.1 和 UNB2.2。與發送方和接收方屬性比對一樣,BizTalk Server 會将交換标頭中的值與“協定屬性”對話框的方向特定的協定頁籤的“辨別符”頁中定義的協定屬性進行比對。如果隻使用發送方限定符和辨別符來解析協定,則不能在“協定屬性”對話框的雙向協定頁籤中定義接收方限定符和辨別符。

如果找不到協定,則除非端口設定要求驗證,否則 BizTalk Server 将使用備用貿易合作夥伴協定。如果端口設定要求驗證(如果在“接收端口屬性”的“正常”頁上選中“驗證失敗時删除消息”或“驗證失敗時保留消息”),則對于接收端口接收的任何交換都需要協定。在這種情況下,如果未通過比對交換标頭與協定屬性來解析協定,則不允許使用備用協定屬性來确定協定。交換将被視為與找不到協定時驗證失敗一樣處理,并且會被挂起。

BizTalkServer 如何接收 EDI 消息(2)

便箋

EDI 管道中的消息将轉到協定解析中的後續步驟,直到該消息在協定處于啟用狀态的情況下通過相應步驟得到解析。例如,如果消息在協定解析的第一步中得到解析,但協定處于禁用狀态,則消息将轉到後續步驟進行解析。

架構發現

BizTalk Server 确定解析為消息的協定之後,必須确定要用于驗證和處理消息的架構。它使用“協定屬性”對話框的單向(發送端)協定頁籤的“本地主機設定”頁中辨別的屬性來執行此操作。

若要确定架構,BizTalk Server 必須先确定架構命名空間。EDI 拆裝器将使用與 BizTalk Server 一起提供的标準架構的預設命名空間,或者确定要用于自定義架構的命名空間。

使用“協定屬性”對話框的單向協定頁籤的“本地主機設定”頁,你可以設定一個網格的值來确定自定義命名空間。如果該網格中找不到任何比對項,則 EDI 拆裝器會使用标記為預設行的“目标命名空間”字段中的預設命名空間。

X12 架構發現

對于 X12 編碼的消息,BizTalk Server 可使用傳入交換标頭中的應用程式發送方辨別符 (GS02) 和事務集 ID (ST01) 來确定自定義命名空間。它會嘗試查找這些值與“協定屬性”對話框的雙向協定頁籤的“本地主機設定”頁(位于“事務集設定”下)中的“自定義目标命名空間”網格中的 GS02 和 ST01 屬性值之間的比對。如果找到比對項,它将使用同一網格行中指定的目标命名空間來确定用于驗證和處理消息的架構。如果目标命名空間不确定,則使用預設的目标命名空間。如果标記為預設行的“目标命名空間”字段中未辨別任何命名空間,BizTalk Server 将使用 X12 編碼消息的備用協定屬性中辨別的目标命名空間,預設為http://schemas.microsoft.com/BizTalk/Edi/X12/2006。

對于 X12 交換,在發現目标命名空間後,BizTalk Server 便可使用以下資訊來确定架構:

剛發現的目标命名空間

ST03(如果 GS07 == X - 公認标準委員會 X12)的前五個字元中的版本/發行版。如果 ST03 不存在/無效或者沒有産生架構解析,則版本将由 GS08 或 ISA12(如果 GS07 != X)的前五個字元來确定。

ST01 中的 DocType。

EDI 拆裝器将連接配接編碼類型、版本/發行版和 DocType 來确定架構名稱,例如“X12_00401_864”。然後再連接配接目标命名空間與該架構名稱,例如http://schemas.microsoft.com/BizTalk/Edi/X12/2006/X12#X12_00401_864。

對于一個傳入 HIPAA 837 交換,BizTalk Server 支援以下三種 HIPAA 837 架構:

837 架構

版本 4010 中的 GS08 值

版本 5010 中的 GS08/ST03 值

Claim-Dental_837D

004010X097A1

005010X224A1

Claim-Institutional_837I

004010X096A1

005010X223A1

Claim-Professional_837P

004010X098A1

005010X222

BizTalkServer 如何接收 EDI 消息(2)

在 HIPAA 版本中,對于事務集 278(醫療保健服務稽核),請求和響應對共享相同的 GS08 和 ST01 值。根據 BHT02 字段中的觸發器值,你可以區分版本 5010 中的 278 請求/響應:

BHT02       中的任一值       01、13       和       36 都表示醫療保健服務稽核請求

BHT02       中的       11 表示醫療保健服務稽核響應

EDIFACT 架構發現

對于 EDIFACT 編碼的消息,BizTalk Server 通過傳入交換标頭中的以下資訊确定自定義命名空間:消息類型 (UNH2.1)、消息版本号 (UNH2.2)、消息發行版号 (UNH2.3)、指定代碼 (UNH2.5)、功能組 ID (UNG2.1) 和應用程式發送代碼限定符 (UNG2.2)。它随後會嘗試查找這些值與“協定屬性”對話框的雙向協定頁籤的“自定義目标命名空間”網格(“事務集設定”下)中的 UNH2.1、UNH2.2、UNH2.3、UNH2.5、UNG2.1 和 UNG2.2 屬性值之間的比對。如果找到比對項,它将使用同一網格行中指定的目标命名空間來确定用于驗證和處理消息的架構。如果目标命名空間不确定,則使用預設的目标命名空間。如果标記為預設行的“目标命名空間”字段中未辨別任何命名空間,BizTalk Server 将使用 EDIFACT 編碼的消息的備用協定屬性中辨別的目标命名空間,預設為http://schemas.microsoft.com/BizTalk/Edi/EDIFACT/2006。

對于 EDIFACT 交換,一旦發現目标命名空間,BizTalk Server 便可使用以下資訊來确定架構:

剛發現的目标命名空間。

UNH2.2 中的消息版本号。

UNH2.3 中的消息版本号。

UNH2.1 中的消息類型。

UNH2.5 中配置設定的代碼。

EDI 拆裝器将連接配接編碼類型、版本号、發行版号和消息類型來确定架構名稱,例如“EFACT_D94A_CONTEN”。然後再連接配接目标命名空間與該架構名稱,例如http://schemas.microsoft.com/BizTalk/Edi/Edifact/2006/EFACT#EFACT_D94A_CONTEN。

如果消息中存在 UNH2.5,則 EDI 拆裝器将首先嘗試使用 UNH2.5 的值作為架構名稱的一部分(如“EFACT_D94A_CONTEN_TEST”)來查找比對架構。如果找不到任何比對架構,則 EDI 拆裝器将進行回退,以查找無 UNH2.5 值的架構。

“授權”

BizTalk Server 使用消息中的字段來檢查為協定定義的授權字段和安全字段的值。如果存在不比對項,BizTalk Server 将挂起交換。對于 EDIFACT 編碼消息,這些字段是收件人引用密碼(UNB6.1 和 UNB6.2)。對于 X12 編碼消息,這些字段是授權限定符和資訊 (ISA1-2) 以及安全限定符和資訊 (ISA3-4)。

上一篇: Html基礎
下一篇: HTML基礎

繼續閱讀