逐步解說 (X12):傳送批次 EDI 交換
本逐步解說提供一組逐步程式,此程式會使用 BizTalk Server,建立將批次 EDI 交換從一方傳送到另一方的解決方案。
必要條件
您必須以 BizTalk Server Administrators 或 BizTalk Server B2B 操作員群組的成員身分登入。
解決方案傳送批次 EDI 交換的方式
解決方案會執行下列動作:
接收位置會從 合作物件 A接收 EDI 交換。
注意
這份清單中的事件可能不會按照所示的順序發生。
接收管線將交換的 EDI 格式轉換為內部 XML 格式, 並判斷要批次處理該交換。 因此,BatchMarkerReceivePipeline 元件會
EDI.ToBeBatched==True
升級 和EDI.BatchId
屬性。 接著將該交換放入 MessageBox。批次處理協調流程會從 MessageBox 擷取收到的交換,因為它會根據
EDI.ToBeBatched==True
和EDI.BatchId==%BatchID%
訂閱訊息。接收位置收到當初傳來第一個交換的同一個合作對象所傳來的第二個 EDI 交換。
接收位置依照步驟 2 中的方式處理交換,然後將交換放置在 MessageBox 中。
「批次處理協調流程」依照步驟 3 中的方式擷取交換。
在符合發行準則 (發行準則定義交換必須如何比對) ,批次處理協調流程會組合包含所有交換的交換,然後升級
EDI.ToBeBatched==False
和EDI.BatchName
EDI.DestinationPartyName
內容屬性。 它會將批次交換卸載至 MessageBox。傳送埠會藉由訂閱內容屬性
EDI.ToBeBatched
==FalseEDI.BatchName
和EDI.DestinationPartyName
來挑選批次交換。傳送管線會將其他屬性套用至批次交換的信封,然後將交換傳送至目的地 合作物件 B。
注意
如需詳細資訊,請參閱 組合批次 EDI 交換。
下圖顯示這個解決方案的架構。
此解決方案中的功能
為了完成這個逐步解說,將會啟用下列功能:
這個解決方案是專為使用 X12 編碼 (而非 EDIFACT 編碼) 的交換所設計。
注意
用於 HIPAA 與 EDIFACT 編碼的組態,與用於 X12 編碼的組態近乎相同。
將不會傳回技術或功能通知,以回應原本收到的交換或任何傳送的批次交換。
注意
如需產生 EDI 通知的詳細資訊,請參閱逐步解說 (X12) :接收 EDI 交換和傳回通知。
這個解決方案會使用單向接收埠和靜態單向傳送埠, 因此會將這些連接埠設定為 FILE 傳輸類型。
將會啟用 EDI 報告。
將會儲存交易集,以從交換狀態報告中檢視交易集。
設定和測試逐步解說
這個解決方案所需的程序包含下列步驟:
將必要的訊息結構描述加入 BizTalk 專案,然後建置並部署此專案,因此 BizTalk Server 可以使用此結構描述處理訊息。
更新 BatchControlMessageReccvLoc 接收位置中 SQL 配接器的輪詢間隔,如此當您按一下 [ 開始 ] 按鈕以傳送將啟動批次處理協調流程實例的控制訊息時,就會立即啟動批次處理協調流程。
為BizTalk Server建立接收埠,以接收來自合作物件的 EDI X12 編碼 .txt 輸入訊息。
為合作對象 A 與合作對象 B 建立合作對象 (交易夥伴)。
分別為兩個交易夥伴建立商務設定檔。
設定讓訊息收得到的 EDI 屬性,以建立這兩個設定檔之間的協議。 設定讓批次訊息傳送得出去的 EDI 屬性。 就這個解決方案而言,請設定協議,讓 BizTalk Server 每收到兩個 850 交換,就傳送批次交換給 Party B。
建立BizTalk Server的傳送埠,以將批次的 EDI 交換傳送給交易夥伴。 此傳送埠將是靜態單向傳送埠。
使傳送埠與會負責批次處理交換的協議產生關聯。
將兩個測試 EDI 交換放置在與接收位置相關聯的本機資料夾中,並確認 BizTalk Server 已將批次交換放置在與傳送埠相關聯的資料夾中。
設定逐步解說
本節說明設定逐步解說的程序。
若要部署訊息結構描述
在 Visual Studio 中,建立或開啟 BizTalk 專案。
注意
本主題假設您已經在「BizTalk EDI 應用程式」中加入了自己應用程式的參考 (包含 EDI 結構描述、管線和協調流程), 如果沒有,請參閱將參考新增至 BizTalk Server EDI 應用程式。
以滑鼠右鍵按一下專案,指向 [ 新增],然後按一下 [ 現有專案]。 移至 \Program Files (x86) \Microsoft BizTalk Server < VERSION > XSD_Schema\EDI\X12\00401,然後按兩下對應至測試訊息的架構。
注意
如果 EDI 架構尚未解壓縮至 \XSD_Schema\EDI 資料夾,請執行 \XSD_Schema\EDI 資料夾中 的MicrosoftEdiXSDTemplates.exe 檔案,將架構解壓縮到預設資料夾。
注意
對於測試訊息,您可以使用「EDI 介面開發人員」教學課程中所使用的 850 範例訊息。 此檔案在 \Program Files (x86) \Microsoft BizTalk Server < VERSION > SDK\EDI 介面開發人員教學課程\中 SamplePO.txt。 如果您這樣做,則必須使用位於 \Program Files (x86) \Microsoft < BizTalk Server VERSION > SDK\EDI 介面開發人員教學課程\Inbound_EDI的架構x12_00401_850.xsd。
設定組件金鑰檔案,然後建置並部署組件。
若要更新輪詢間隔
在 BizTalk Server管理主控台中,開啟BizTalk 群組、應用程式、BizTalk EDI 應用程式節點和接收位置節點。 在 [ 接收位置] 節點下,以滑鼠右鍵按一下 [BatchControlMessageRecvLoc],然後按一下 [ 屬性]。
針對 SQL 傳輸類型,按一下 [ 設定]。
在 [ SQL 傳輸屬性] 對話方塊中,將輪詢間隔設定為較小的值。 例如,您可以將 [測量的輪詢單位 ] 變更為 [秒],而不是將輪詢間隔變更為 5 秒。
注意
變更輪詢間隔可確保立即啟動批次處理協調流程。
按一下 [確定],然後再按一下 [確定]。
若要建立單向接收埠以接收要批次處理的 EDI 訊息
建立本機資料夾以接收要批次處理的 EDI 訊息。
在 BizTalk Server 管理主控台中,以滑鼠右鍵按一下BizTalk 應用程式 1節點底下的[接收埠] 節點,指向 [新增],然後按一下[單向接收埠]。
將接收埠命名為 ,然後按一下主控台樹中的 [接收位置 ]。
按一下 [新增] 。
為接收位置命名,選取[類型] 的 [FILE],然後按一下 [設定]。
輸入 [接收] 資料夾的資料夾,以及 [ 檔案遮罩] 的遮罩,例如 *.txt。
按一下 [確定]。
針對 [接收管線],選取 [EdiReceive]。
按一下 [確定],然後再按一下 [確定]。
在主控台樹中,按一下 [接收位置]。 在 [ 接收位置 ] 窗格中,以滑鼠右鍵按一下您的接收位置,然後按一下 [ 啟用]。
為合作對象 A 建立合作對象與商務設定檔
以滑鼠右鍵按一下 [BizTalk Server管理主控台] 中的 [合作物件] 節點,指向 [新增],然後按一下 [合作物件]。
在 [ 名稱 ] 文字方塊中輸入合作物件的名稱,然後按一下 [ 確定]。
注意
選取 [本機 BizTalk 處理由合作物件 OR 接收的訊息支援從此合作物件傳送訊息] 核取方塊,您可以指定所建立的合作物件適用于同時裝載BizTalk Server的相同組織。 據此,建立協議時將會啟用或停用某些屬性。 不過,就本逐步解說而言,您可以讓這個核取方塊保持選取狀態。
以滑鼠右鍵按一下合作物件名稱,指向 [ 新增],然後按一下 [商務設定檔]。
在 [配置檔案屬性]對話方塊的 [一般] 頁面上,于 [名稱] 文字方塊中輸入PartyA_Profile。
注意
當您建立合作對象時,會同時建立設定檔。 您可以重新命名再使用該設定檔,而不需建立新設定檔。 若要重新命名設定檔,請以滑鼠右鍵按一下設定檔,然後選取 [ 屬性]。 在 [ 一般 ] 頁面中,指定設定檔的名稱。
若要為 Party B 建立合作對象與商務設定檔
以滑鼠右鍵按一下 [BizTalk Server管理主控台] 中的 [合作物件] 節點,指向 [新增],然後按一下 [合作物件]。
在 [ 名稱 ] 文字方塊中輸入合作物件的名稱,然後按一下 [ 確定]。
注意
選取 [本機 BizTalk 處理由合作物件 OR 接收的訊息支援從此合作物件傳送訊息] 核取方塊,您可以指定所建立的合作物件適用于同時裝載BizTalk Server的相同組織。 據此,建立協議時將會啟用或停用某些屬性。 不過,就本逐步解說而言,您可以讓這個核取方塊保持選取狀態。
以滑鼠右鍵按一下合作物件名稱,指向 [ 新增],然後按一下 [商務設定檔]。
在 [配置檔案屬性]對話方塊的 [一般] 頁面上,于 [名稱] 文字方塊中輸入PartyB_Profile。
注意
當您建立合作對象時,會同時建立設定檔。 您可以重新命名再使用該設定檔,而不需建立新設定檔。 若要重新命名設定檔,請以滑鼠右鍵按一下設定檔,然後選取 [ 屬性]。 在 [ 一般 ] 頁面中,指定設定檔的名稱。
在兩個商務設定檔之間建立協議
以滑鼠右鍵按一下 PartyA_Profile,指向 [ 新增],然後按一下 [ 合約]。
在 [ 一般屬性] 頁面的 [ 名稱] 文字方塊中,輸入合約的名稱。
從 [ 通訊協定 ] 下拉式清單中,選取 [X12]。
在 [ 第二個合作夥伴] 區段中,從 [ 名稱 ] 下拉式清單中,選取 [PartyB]。
在 [ 第二個合作夥伴] 區段中,從 [ 設定檔 ] 下拉式清單中,選取 [PartyB_Profile]。
您會注意到兩個新的索引標籤會在 [ 一般 ] 索引標籤旁邊新增。每個索引標籤都用於設定單向合約,而每個單向合約都代表訊息 (的完整交易,包括訊息傳輸和通知傳輸) 。
在 [ 一般 ] 索引標籤的 [ 一般屬性] 頁面上的 [ 一般主機設定 ] 區段中,選取 [ 開啟報告],然後選取 [儲存報告訊息承載以進行報告]。
在 [PartyA-PartyB > ] 索引卷 標上執行下列工作。
在 [交換設定] 區段下的 [識別碼]頁面上,輸入限定詞和識別碼欄位的值, (ISA5、ISA6、ISA7和ISA8) ,這些欄位會對應至測試訊息中這些標頭欄位的值。
注意
BizTalk Server需要傳送者和接收者的限定詞和識別碼欄位,才能執行合約解析。 它會比對交換標頭中 ISA5、 ISA6、 ISA7和 ISA8 的值,以及合約屬性中的值。 BizTalk Server也會比對傳送者限定詞和識別碼 (來解決合約,而不需接收者限定詞和識別碼) 。 如果BizTalk Server無法解決合約,則會使用後援合約屬性。
注意
如果您使用 「EDI 介面開發人員教學課程」 中的 SamplePO.txt 檔案作為測試訊息,請將 ISA5 設定為 ZZ、 ISA6 設定為 它們、 ISA7 設定為 ZZ,並將 ISA8 設定為 US。
在 [交換設定] 區段下的 [驗證] 頁面上,確定未核取[檢查重複的 ISA13] 選項。
注意
清除 檢查重複 ISA13 屬性可讓您接收相同訊息的多個實例。
在 [交換設定] 區段下的[字元集和分隔符號] 頁面上,選取CR LF選項。
在 [交換設定] 區段下的 [批次組態] 頁面上,執行下列動作:
按一下 [新增批次]。
在 [ 識別] 區段的 [ 批次名稱] 文字下,輸入
Batch1
。在 [ 篩選 ] 區段下,按一下 [ 篩選 ] 按鈕,然後在 [ 批次篩選 ] 對話方塊中,執行下列動作:
按一下 [屬性] 資料 行底下的空白儲存格,然後選取 [BTS]。ReceivePortName。
按一下 [運算子] 資料行底下的空白儲存格,然後選取 == 。
按一下 [ 值 ] 資料行底下的空白儲存格,然後輸入您稍早建立的接收埠名稱。
按一下 [確定]。
在 [發行] 區段下,從下拉式清單中選取 [交換] 選項中的 [交易集數目上限],然後在文字方塊中輸入要批次處理的交換數目。 在此解決方案中,您將批次處理兩個交換,因此在文字方塊中,輸入
2
。在 [ 啟用] 區段下,選取 [立即啟動]。
在 [交易集設定] 區段下的[信封]頁面上,輸入方格第一行中所有資料行的值。
使用 作法 預設值 選取 [預設]。 注意:當您選取此資料列做為預設值時,即使交易類型、版本/版本和目標命名空間的值與訊息不符,也會使用GS1、GS2、GS3、GS7和GS8的值。 交易類型 選取測試訊息的訊息類型 850 - 採購單。 版本/版次 輸入 EDI 版本 00401。 目標命名空間 請選取 http://schemas.microsoft.com/BizTalk/EDI/X12/2006
。GS1 確認已選取測試訊息的訊息類型 ,PO - 採購單 (850) 。 GS2 輸入應用程式寄件者的值,例如 購買。 GS3 輸入應用程式接收器的值,例如 OrderControl。 GS4 選取您想要的日期格式。 注意: 您必須在下拉式清單中選取值,而不只是按一下欄位中以顯示預設值。 如果您按一下欄位而未從下拉式清單中選取值,實際上不會選取值。 GS5 選擇您要的時間格式。 GS7 選取 [X - 認證標準委員會 X12]。 GS8 確認已輸入 EDI 版本 00401。 注意
BizTalk Server會根據針對交易類型、版本/版本和目標命名空間輸入的值,設定 GS01、GS02、GS03、GS04、GS05、GS07 和 GS08 的值。 傳送管線會嘗試將交易集類型、X12 版本和目標命名空間,與訊息標頭中的對應值進行比對。 如果成功,它會使用與 交易類型、 版本/發行和 目標命名空間 值相關聯的 GS 值。
在 [PartyB-PartyA > ] 索引標籤上執行下列工作。
注意
在此逐步解說中,我們在索引標籤中指定必要值,以便可以順利地建立協議。 若要成功建立合約,這兩個單向合約索引標籤都必須定義 ISA5、 ISA6、 ISA7和 ISA8的值。
在 [交換設定] 區段下的 [識別碼]頁面上,輸入限定詞和識別碼欄位的值, (ISA5、ISA6、ISA7和ISA8) ,這些欄位會對應至測試訊息中這些標頭欄位的值。
注意
如果您使用 「EDI 介面開發人員教學課程」 中的 SamplePO.txt 檔案作為測試訊息,請將 ISA5 設定為 ZZ、 ISA6 設定為 US、 ISA7 設定為 ZZ, 並將 ISA8 設定為 它們。
按一下 [套用]。
按一下 [確定]。 新新增的合約會列在 [合作物件和商務設定檔] 窗格的 [合約] 區段中。 預設會啟用新增的協議。
若要建立靜態單向傳送埠以傳送批次 EDI 交換
建立本機資料夾以將批次 EDI 訊息傳送至其中。
在 BizTalk Server 管理主控台中,以滑鼠右鍵按一下BizTalk 應用程式 1節點底下的 [傳送埠] 節點,指向 [新增],然後按一下 [靜態單向傳送埠]。
在 [ 傳送埠屬性] 對話方塊中,將傳送埠命名為 。
在 [傳輸]區段中,針對[類型] 選取[FILE],然後按一下 [設定]。
輸入 目的地資料夾的資料夾,以及 檔案名,例如 %MessageID%.txt。
按一下 [確定]。
在 [傳送管線] 中,選取 [EdiSend]。
在主控台樹中,選取 [篩選]。 在 [ 篩選] 頁面上,執行下列動作:
在方格的第一行上,選取[EDI]。Property 的 DestinationPartyName, == 針對Operator,您為合作物件選取的名稱,將批次傳送至 [值] 和 [群組依據]。
在第二行上,選取 [EDI]。ToBeBatched for Property、 == for Operator, 和 False for Value, and for Group by.
在第三行上,選取 [EDI]。Property、 ==Operator的 BatchName,以及 Value批次的名稱。
按一下 [確定]。
在主控台樹中,按一下 [ 傳送埠]。 在 [ 傳送埠] 窗格中,以滑鼠右鍵按一下您的傳送埠,然後按一下 [ 啟動]。
若要讓傳送埠與建立要用於批次處理的協議產生關聯
以滑鼠右鍵按一下您稍早建立的合約,然後按一下 [ 屬性]。
在 [ 合約內容 ] 對話方塊的 [ PartyA-PartyB > ] 索引標籤上,按一下左窗格中的 [ 傳送埠 ]。
在 [交換設定] 區段下的 [傳送埠] 頁面上,建立您稍早建立的傳送埠關聯。 在 [ 傳送埠 ] 方格的 [ 名稱] 資料行底下,按一下空白資料格,然後從下拉式清單中選取傳送埠。
按一下 [確定]。
測試逐步解說
本節提供關於如何測試逐步解說的資訊。
若要測試逐步解說
在 [Windows 檔案總管] 中,開啟與接收位置相關聯的本機資料夾,然後將測試 EDI 交換放置在該資料夾中。
注意
對於測試訊息,您可以使用「EDI 介面開發人員」教學課程中所使用的 850 範例訊息。 此檔案是在 \Program Files (x86) \Microsoft BizTalk Server < VERSION > SDK\EDI 介面開發人員教學課程\中 SamplePO.txt。 如果您這樣做,則必須使用位於 \Program Files (x86) \Microsoft BizTalk Server < VERSION > SDK\EDI 介面開發人員教學課程\Inbound_EDI中的架構 x12_00401_850.xsd。
將測試 EDI 交換的第二份複本放置到該資料夾中。
開啟您為了放置交換而與傳送埠產生關聯的資料夾,然後開啟批次交換。 確認此交換包含一組 ISA 與 GS 標頭和兩個交易集。
另請參閱
開發和設定 BizTalk Server EDI 解決方案
設定外寄批次
組合批次 EDI 交換
組合批次 EDI 交換
逐步解說 (X12):接收 EDI 交換並傳回通知
逐步解說 (X12):傳送 EDI 交換