天天看點

BizTalkServer 如何接收 EDI 消息(4)

驗證收到的 EDI 消息

EDI 接收管道處理傳入的消息時,将對信封和消息資料執行一系列驗證。其中一些處理将始終執行,而有些處理将僅在您啟用的情況下才執行。這些驗證包括:

  • 始終執行的驗證:
    • 驗證交換信封的結構。
    • 針對貿易合作夥伴協定(如果未定義任何協定,則為後備協定)進行的信封驗證。
    • 根據控制架構執行信封的架構驗證。
    • 針對消息架構進行的事務集資料元素架構驗證。
    • 根據 X12 标準提供的事務集-組映射驗證單個組内事務集的類型。
  • 僅在啟用時執行的驗證:
    • 對事務集資料元素執行 EDI 驗證。如果在協定屬性中啟用了此驗證,則執行此驗證。
    • 對事務集資料元素執行擴充驗證。如果在協定屬性中啟用了此驗證,則執行此驗證。
    • 對事務集資料元素進行跨字段驗證(僅限 X12 編碼消息)。如果在消息架構中啟用了此驗證,則執行此驗證。

發送 EDI 确認

确認訓示 EDI 消息傳輸的狀态。在 BizTalk Server 收到 EDI 交換後,會根據已啟用的确認将一個或多個确認傳回給 EDI 交換的發送方。

基于驗證的級别,EDI 消息确認會分為兩種類型:

  • 标頭驗證的結果是生成“技術确認”。技術确認報告位址接收方對交換标頭和尾部的處理的狀态。
  • 正文驗證的結果是生成“功能确認”。功能确認報告在處理所接收文檔時遇到的每個錯誤。

BizTalk Server 可同時傳回技術确認和功能确認以響應單個交換。BizTalk Server 為每個交換傳回單個技術确認。對于 x12 交換,它将為收到的每個組傳回功能确認。對于 EDIFACT 交換,它将為每個交換傳回功能确認,而無論該交換包含多少個組。

X12 确認

X12 技術确認

如果 X12 消息的 ISA 标頭和 IEA 尾部都有效(不考慮其他内容),則會發出肯定的 TA1 确認。有關 TA1 确認内容的詳細資訊,請參閱X12 TA1 确認。

X12 功能确認

997 确認用于确認對交換或功能組的接受,接受或拒絕一個或多個功能組或者一項或多項事務,以及确認并報告與标準的符合情況。如果 BizTalk Server 收到具有多個組的交換,将為每個組傳回确認。如果某個組包含多個事務集,該組的确認将根據是否為接受的事務集生成 AK2 循環而包含多個 AK2 循環(每個事務集一個循環)。有關 997 确認内容的詳細資訊,請參閱X12 997 确認。

                                                                便箋
當 EDI 接收管道為 X12 功能确認建構功能組标頭 (GS) 段時,會從正被确認的功能組摘取應用程式發送方代碼 (GS02) 和應用程式接收方代碼 (GS03)。但是,傳入消息上的 GS02 會映射到确認上的 GS03,GS03 映射到确認上的 GS02。

EDIFACT 确認

EDIFACT 技術确認

對于 EDIFACT,不會使用單獨的技術确認,但技術确認或 CONTRL 确認部分(參見下面的内容)卻可重複用于确認回執。這是模拟的技術确認。

有關技術 CONTRL 确認的詳細資訊,請參閱作為技術确認的 EDIFACT CONTRL 消息。

EDIFACT 功能确認

對于 EDIFACT,功能 CONTRL 确認用于确認收到的交換、組和消息,接受或拒絕收到的交換、組和消息,并列出其中包含的所有文法錯誤以及不受支援的功能。CONTRL 确認報告對已完全收到的交換所進行的文法檢查的結果。

有關功能 CONTRL 确認的詳細資訊,請參閱作為功能确認的 EDIFACT CONTRL 消息。

何時生成确認

如果滿足以下條件之一,EDI 接收管道就會生成一個确認:

  • 收到的交換中的資料元素提示确認。對于 X12 編碼的消息,如果 ISA14 資料元素設定為 1,接收管道會生成技術 TA1 确認。對于 EDIFACT 編碼的消息,如果 UNB9 資料元素設定為 2,接收管道會生成技術 CONTRL     确認;如果 UNB9 資料元素設定為 1,則生成功能 CONTRL     确認。
  • 協定屬性提示确認。對于 X12 交換,這些屬性是“協定屬性”對話框的雙向協定頁籤的“确認”頁中的“預期 TA1”和“預期 997”屬性。對于     EDIFACT 交換,這些屬性是“協定屬性”對話框的雙向協定頁籤的“确認”頁中的“預期接收消息(CONTRL)”和“預期确認(CONTRL)”。當啟用一種确認類型後,還可以指明是否批處理該類型的确認。
  • 如果沒有為交換确定協定,全局屬性會提示确認。這些屬性是
    • “X12 備用設定”對話框的協定頁籤的“确認”頁中的“預期 TA1”和“預期 997”屬性。
    • “EDIFACT      備用設定”對話框的協定頁籤的“确認”頁中的“預期接收消息(CONTRL)”和“預期确認(CONTRL)”屬性。

對于 EDIFACT,如果技術确認和功能确認同時被提示,EDI 接收管道會傳回兩個獨立的 CONTRL 确認。技術 CONTRL 确認隻包括确認回執資訊。功能 CONTRL 确認則包含回執資訊和功能确認資訊。有關詳細資訊,請參閱EDIFACT CONTRL 确認。

使用控制編号辨別确認

每個确認都要用用于 X12 的事務集控制編号(ST2 資料元素)或用于 EDIFACT 的事務集參考編号(UNH1 資料元素)來辨別。如果為傳出确認配置協定,則 BizTalk Server 将事務集控制編号或參考編号設定為根據以下各項為協定設定的值:

  • 對于 X12 确認 –“協定屬性”對話框的協定頁籤的“本地主機設定”頁(“接收方設定”部分)中的“确認控制編号(ST02)”屬性
  • 對于 EDIFACT 确認 –“協定屬性”對話框的協定頁籤的“本地主機設定”頁(“接收方設定”部分)中的“Edifact 确認控制編号”屬性

如果 BizTalk Server 并不确定确認的協定,将使用“X12 備用設定”和“EDIFACT 備用設定”對話框的協定頁籤中提供的與上述屬性相同的屬性。此設定适用于技術确認和功能确認(如果二者都已配置)。每生成一個确認或交換,該整數都将遞增 1。

确認的信封根據确認控制架構利用接收到的消息中的資料生成。

準備确認

BizTalk Server 為确認生成信封的方法,就像為消息生成信封一樣,通過檢視交換控制标頭和功能組标頭的定義來完成。有關詳細資訊,請參閱傳出 EDI 消息的協定解析和架構确定。

為啟用生成确認(TA1、997 或 CONTRL)的無縫路由,EDI 拆裝器會在确認上填充DestinationPartyReceiverQualifier、DestinationPartyReceiverIdentifier、DestinationPartySenderQualifier和DestinationPartySenderIdentifier屬性。

同步和異步确認

您可以選擇以同步還是異步的方式來發送 EDI 确認。如果選擇同步發送,BizTalk Server 會直接将确認路由到雙向請求-響應接收端口的發送管道。如果選擇異步發送,BizTalk Server 會将确認路由到 MessageBox,同時會有一個發送端口訂閱該消息。

若要指定 BizTalk Server 同步發送确認,請選擇雙向協定頁籤(對于 X12 和 EDIFACT 協定)“交換設定”下的“本地主機設定”頁(“接收方設定”部分)中的“将确認路由到請求-響應接收端口的發送管道”。如果清除該屬性,雙向接收端口的發送管道則必須設定為傳回 EDI 交換。