逐步解說 (EDIFACT):接收 EDI 交換並傳回通知
本逐步解說提供一組逐步程式,可建立使用 BizTalk Server 接收 EDIFACT 交換的解決方案。 在這個解決方案中,EDIFACT 交換會從一個交易夥伴 (Fabrikam) 傳送至另一個交易夥伴 (Contoso)。
必要條件
您必須以 BizTalk Server Administrators 或 BizTalk Server B2B 操作員群組的成員身分登入。
解決方案如何接收 EDIFACT 交換
解決方案會執行下列動作:
注意
這份清單中的事件可能不會按照所示的順序發生。
從交易夥伴 Fabrikam 接收一般檔案 EDIFACT 交換。
將 EDIFACT 交換比對其結構描述來進行驗證、將訊息解譯到 XML 中,並將訊息 XML 放置在 MessageBox 中。
產生表示已收到 EDI 交換的技術通知 (訊息回條),並將其放置在 MessageBox 中。
產生表示接受或拒絕接收 EDI 交換的功能通知,並將其放置在 MessageBox 中。
透過單向 FILE 傳送埠拾取訊息 XML,並組合訊息 EDI 交換。
傳送 EDI 交換至 Contoso 本機資料夾。
透過單向 FILE 傳送埠拾取技術通知,並組合交換。
傳送技術通知至 Fabrikam 本機資料夾。
透過單向 FILE 傳送埠拾取功能通知,並組合交換。
傳送功能通知至 Fabrikam。
此解決方案中的功能
為了完成這個逐步解說,將會啟用下列功能:
這個解決方案是專為使用 EDIFACT 編碼的交換而設計。
注意
如需如何為 X12 交換建立類似解決方案的指示,請參閱逐步解說 (X12) :接收 EDI 交換和傳回通知。
將針對內送交換執行 EDI 類型和擴充驗證。
將會產生技術和功能通知,以傳回給交換傳送者。
這個解決方案使用單向接收位置與 FILE 傳輸類型。
注意
您可以使用雙向請求回應接收埠和位置來接收訊息,但是如果這樣做的話,就不能對接收位置使用 FILE 傳輸類型。 如需詳細資訊,請參閱 設定埠以接收 EDI 訊息和通知。
EDI 報告將會啟用,並會儲存交易集,以從交換狀態報告進行檢視。
為了測試目的,解決方案會使用三個傳送埠,將 EDIFACT 交換和建立的通知傳送至本機資料夾。
下圖顯示這個解決方案的架構:
設定和測試逐步解說
這個解決方案所需的程序包含下列步驟:
將必要的訊息結構描述加入 BizTalk 專案,然後建置並部署此專案,因此 BizTalk Server 可以使用此結構描述處理接收交換。
建立單向接收埠,讓BizTalk Server接收交易夥伴的 EDIFACT 交換,並產生通知。 此接收位置繫結至 Fabrikam 用來放置要傳送到 Contoso 的 EDIFACT 交換的檔案資料夾。
注意
您可以使用雙向請求回應接收埠和位置來接收訊息,但是如果這樣做的話,就不能對接收位置使用 FILE 傳輸類型。
建立兩個傳送埠,一個會將 EDI 交換傳送到 Contoso 本機資料夾,而另一個會將技術與功能通知傳送到 Fabrikam 本機資料夾。
注意
和 X12 通知不同,功能與技術通知的訊息類型是一樣的。 因此,使用
BTS.MessageType
內容屬性建立的傳送埠篩選會篩選通知,並將其傳遞至相同的資料夾。為 Fabrikam 與 Contoso 建立合作對象 (交易夥伴)。
分別為兩個交易夥伴建立商務設定檔。
為要接收的訊息和要傳送的通知設定 EDI 屬性,來在兩個設定檔之間建立協議。
使用測試 EDIFACT 交換以測試逐步解說。 就本逐步解說而言,您可以將下列程式碼複製並貼到文字檔中。 此檔案的結構描述為 EFACT_D98A_APERAK.xsd。
UNA:+,?*' UNB+UNOB:1+7654321:ZZZ+1234567:ZZZ+353501:3023+UNB5' UNG+INVOIC+UNG2.1:ZZZ+UNG3.1:ZZZ+060413:2314+UNG5+UN+D:98B' UNH+UNH1+APERAK:D:98A:UN++13+UNH5.1+UNH6.1+UNH7.1' BGM+1+C10601' DTM+10' FTX+AAA++C10701+C10801' CNT+1:14' RFF+AAA' DTM+10' NAD+AA+C08201+C05801+C08001+C05901' CTA++C05601' COM+C07601:AA' ERC+C90101' FTX+AAA++C10701+C10801' RFF+AAA' FTX+AAA++C10701+C10801' UNT+15+UNH1' UNE+1+UNG5' UNZ+1+UNB5'
設定逐步解說
本節說明設定逐步解說的程序。
若要部署訊息結構描述
在 Visual Studio 中,建立或開啟 BizTalk 專案。
注意
本主題假設您已經在「BizTalk EDI 應用程式」中加入了自己應用程式的參考 (包含 EDI 結構描述、管線和協調流程), 如果沒有,請參閱將參考新增至 BizTalk Server EDI 應用程式。
以滑鼠右鍵按一下您的專案,指向 [ 新增],然後按一下 [ 現有專案]。 移至架構位於 \Program Files (x86) \Microsoft BizTalk Server < VERSION > XSD_Schema\EDI\EDIFACT\D98A 的資料夾,然後按兩下您的架構 (EFACT_D98A_APERAK.xsd) 。
注意
如果您使用本主題中提供的範例測試訊息,您必須使用 EFACT_D98A_APERAK.xsd 架構。
注意
如果 EDI 架構尚未解壓縮至 \XSD_Schema\EDI 資料夾,請執行 \XSD_Schema\EDI 資料夾中的 MicrosoftEdiXSDTemplates.exe 檔案,將架構解壓縮到預設資料夾。
將組件金鑰檔案加入專案,然後建置並部署組件。
建立單向接收埠 (供 Fabrikam 使用) 以接收 EDI 交換
在 Windows 檔案總管中,建立本機資料夾,以接收交換。
在 BizTalk Server 管理主控台中,以滑鼠右鍵按一下BizTalk 應用程式 1節點下的 [接收埠] 節點,指向 [新增],然後按一下[單向接收埠]。
將接收埠命名為 ,然後按一下主控台樹中的 [ 接收位置 ]。
按一下 [新增] 。
將接收位置命名為 ,針對[類型] 選取[FILE],然後按一下 [設定]。
流覽至 [ 接收資料夾] 文字方塊的資料夾 。 您已在此程序的步驟 1 中,建立此資料夾。 輸入檔案遮罩,例如 *.edi 或 *.txt。
按一下 [確定]。
針對 [接收管線],選取 [EdiReceive]。
按一下 [接收位置屬性] 對話方塊中的[確定]。 在 [接收埠內容] 對話方塊中再次按一下[確定]。
在主控台樹中,按一下 [ 接收位置]。 在 [ 接收位置] 窗格中,以滑鼠右鍵按一下您的接收位置,然後按一下 [ 啟用]。
建立靜態單向傳送埠 (供 Contoso 使用) 以傳送 EDI 交換
在 Windows 檔案總管中,建立本機資料夾,以便將測試交換傳送至此本機資料夾。
在 BizTalk Server 管理主控台中,以滑鼠右鍵按一下BizTalk 應用程式 1節點下的 [傳送埠] 節點,指向 [新增],然後按一下 [靜態單向傳送埠]。
在 [ 傳送埠屬性 ] 對話方塊中,將傳送埠命名為 。
在 [傳輸] 區段中,針對[類型] 選取[FILE],然後按一下 [設定]。
針對 [目的地] 資料夾,流覽至資料夾以接收交換。 您已在此程序的步驟 1 中,建立此資料夾。 針對 [檔案遮罩],輸入交換格式,例如 *.edi 或 *.txt。
按一下 [確定]。
在 [傳送管線] 中,選取 [EdiSend]。
在主控台樹中,選取 [篩選]。 輸入訂閱 EDI 交換的篩選條件。 例如,針對 [屬性],輸入 BTS。MessageType;針對 [運算子],輸入 == ;針對 [ 值 ] 輸入交換的架構,
http://schemas.microsoft.com/BizTalk/EDI/EDIFACT/2006#EFACT_D98A_APERAK
則為 。注意
上述篩選條件設定可以確保會將交換 (而非通知) 傳送到與此傳送埠相關的資料夾。
按一下 [確定]。
在主控台樹中,按一下 [ 傳送埠]。 在 [ 傳送埠] 窗格中,以滑鼠右鍵按一下您的傳送埠,然後按一下 [ 啟動]。
若要建立靜態單向傳送埠以傳送通知
在 Windows 檔案總管中,建立本機資料夾,以便傳送技術與功能通知至此本機資料夾。
在 BizTalk Server 管理主控台中,以滑鼠右鍵按一下BizTalk 應用程式 1節點下的 [傳送埠] 節點,指向 [新增],然後按一下 [靜態單向傳送埠]。
在 [ 傳送埠屬性 ] 對話方塊中,將傳送埠命名為 。
在 [傳輸] 區段中,針對[類型] 選取[FILE],然後按一下 [設定]。
針對 [目的地] 資料夾,流覽至資料夾以接收這兩個通知。 您已在此程序的步驟 1 中,建立此資料夾。 針對 [檔案遮罩],輸入交換格式,例如 *.edi 或 *.txt。
按一下 [確定]。
在 [傳送管線] 中,選取 [EdiSend]。
在主控台樹中,選取 [篩選]。 輸入訂閱通知的篩選條件。 例如,針對[屬性],輸入BTS。MessageType;針對[運算子],輸入 ;針對 [值] 輸入 == 通知的架構,
http://schemas.microsoft.com/Edi/Edifact#Efact_Contrl_Root
則為 。按一下 [確定]。
在主控台樹中,按一下 [ 傳送埠]。 在 [ 傳送埠] 窗格中,以滑鼠右鍵按一下您的傳送埠,然後按一下 [ 啟動]。
若要為 Fabrikam 建立合作對象與商務設定檔
以滑鼠右鍵按一下 [BizTalk Server 管理主控台中的[合作物件] 節點,指向 [新增],然後按一下 [合作物件]。
在 [ 名稱 ] 文字方塊中輸入合作物件的名稱,然後按一下 [ 確定]。
注意
選取 [本地 BizTalk 處理合作物件 OR 所接收的訊息] 支援從此合作物件傳送訊息核取方塊,您可以指定所建立的物件是同時裝載BizTalk Server的相同組織。 據此,建立協議時將會啟用或停用某些屬性。 不過,就本逐步解說而言,您可以讓這個核取方塊保持選取狀態。
以滑鼠右鍵按一下合作物件名稱,指向 [ 新增],然後按一下 [商務設定檔]。
在 [配置檔案屬性] 對話方塊的 [一般] 頁面上,于 [名稱] 文字方塊中輸入Fabrikam_Profile。
注意
當您建立合作對象時,會同時建立設定檔。 您可以重新命名再使用該設定檔,而不需建立新設定檔。 若要重新命名設定檔,請以滑鼠右鍵按一下設定檔,然後選取 [ 屬性]。 在 [ 一般] 頁面中,指定設定檔的名稱。
若要為 Contoso 建立合作對象與商務設定檔
以滑鼠右鍵按一下 [BizTalk Server 管理主控台中的[合作物件] 節點,指向 [新增],然後按一下 [合作物件]。
在 [ 名稱 ] 文字方塊中輸入合作物件的名稱,然後按一下 [ 確定]。
注意
選取 [本地 BizTalk 處理合作物件 OR 所接收的訊息] 支援從此合作物件傳送訊息核取方塊,您可以指定所建立的物件是同時裝載BizTalk Server的相同組織。 據此,建立協議時將會啟用或停用某些屬性。 不過,就本逐步解說而言,您可以讓這個核取方塊保持選取狀態。
以滑鼠右鍵按一下合作物件名稱,指向 [ 新增],然後按一下 [商務設定檔]。
在 [配置檔案屬性] 對話方塊的 [一般] 頁面上,于 [名稱] 文字方塊中輸入Contoso_Profile。
注意
當您建立合作對象時,會同時建立設定檔。 您可以重新命名再使用該設定檔,而不需建立新設定檔。 若要重新命名設定檔,請以滑鼠右鍵按一下設定檔,然後選取 [ 屬性]。 在 [ 一般] 頁面中,指定設定檔的名稱。
在兩個商務設定檔之間建立協議
以滑鼠右鍵按一下 [Fabrikam_Profile],指向 [ 新增],然後按一下 [ 合約]。
在 [ 一般屬性] 頁面的 [ 名稱 ] 文字方塊中,輸入合約的名稱。
從 [ 通訊協定 ] 下拉式清單中,選取 [EDIFACT]。
在 [ 第二個合作夥伴 ] 區段中,從 [ 名稱 ] 下拉式清單中,選取 [Contoso]。
在 [ 第二個合作夥伴 ] 區段中,從 [ 設定檔 ] 下拉式清單中,選取 [Contoso_Profile]。
您會發現[ 一般 ] 索引標籤旁邊會新增兩個新的索引標籤。每個索引標籤都用於設定單向合約,而每個單向合約都代表訊息 (的完整交易,包括訊息傳輸和通知傳輸) 。
在 [ 一般 ] 索引標籤的 [ 一般屬性 ] 頁面的 [ 一般主機設定 ] 區段中,選取 [ 開啟報告],然後選取 [ 儲存訊息承載以供報告]。
在 [Fabrikam-Contoso > ] 索引標籤上執行下列工作。
在 [交換設定] 區段下的 [識別碼]頁面上,輸入符合測試訊息中這些標頭欄位值的限定詞和識別碼欄位 (UNB2.1、UNB2.2、UNB3.1 和 UNB3.2) 。
注意
BizTalk Server需要傳送者和接收者的限定詞和識別碼欄位,才能執行合約解析。 它會比對交換標頭中UNB2.1、UNB2.2、UNB3.1和 UNB3.2 的值,以及合約屬性中的UNB3.2值。 BizTalk Server也會比對傳送者辨識符號和識別碼 (來解決合約,而不需要接收者限定詞和識別碼) 。 如果BizTalk Server無法解決合約,則會使用後援合約屬性。
注意
如果您使用本主題稍早提供的範例訊息作為測試訊息,請將 UNB2.1 設定為 7654321、 將 UNB2.2 設定為 ZZZ – 相互定義、 UNB3.1 設定 為 1234567,並將 UNB3.2 設定為 ZZZ – 相互定義。
在 [交換設定] 區段底下的 [通知] 頁面上,核取 [接收訊息 (CONTRL) 預期和CONTRL) 預期 (通知。
在 [交換設定] 區段下的[信封]頁面上,核取 [套用 UNA 區段 (字串服務建議) 和套用 UNG 區段 (功能群組標頭) 。
在 [交換設定] 區段下的 [驗證] 頁面上,確定未核取 [交換控制編號] ([UNB5) ] 選項。
注意
清除 交換控制編號 (UNB5) 屬性可讓您接收相同訊息的多個實例。
在 [交換設定] 區段下的[字元集和分隔符號] 頁面上,選取UNA6 尾碼的CR LF選項。
在 [交換設定] 區段下的 [本機主機設定] 頁面上,清除 [路由 ACK 以在要求-回應接收埠上傳送管線] 選項。
注意
如果您使用雙向接收埠來接收交換並傳回通知,您會檢查 Route ACK 以在要求-回應接收埠上傳送管線。
在 [交換設定] 區段下的 [傳送埠] 頁面上,建立將從 Fabrikam 接收交換的傳送埠,以及將從 Contoso 接收通知的傳送埠產生關聯。 在 [ 傳送埠 ] 方格的 [ 名稱 ] 資料行底下,按一下空白資料格,然後從下拉式清單中選取從 Fabrikam 接收 EDI 結算所建立的傳送埠。 針對為了接收技術與功能通知而建立的傳送埠,重複此步驟。
在 [交易集設定] 區段下的 [驗證] 頁面上,保留[EDI 類型驗證] 檢查,並核取[擴充類型驗證]。
如果您使用隨附于BizTalk Server的標準架構之一,請在 [交易集設定] 區段下的 [本機主機設定] 頁面上,選取要用來處理傳入交換之架構的命名空間。 如果使用自訂架構,請在 [自訂目標命名空間] 方格中輸入值,讓BizTalk Server可以使用群組和交易集標頭值來判斷命名空間。
在 [交易集設定] 區段下的[信封] 頁面上,輸入方格第一行中所有資料行的值。
使用 作法 預設值 選取 [預設]。 針對訊息類型 UNH2.1 選取測試訊息的訊息類型 APERAK。 UNH2.2 輸入 EDI 版本 D。 UNH2.3 輸入版本號碼 98A。 UNH2.5 您可以讓此處保持空白。 目標命名空間 請選取 http://schemas.microsoft.com/Edi/Edifact
。UNG1 指定功能群組識別碼 INVOIC。 UNG2.1 輸入應用程式傳送者識別的值。 UNG2.1 輸入應用程式傳送者代碼限定詞的值,例如 ZZZ。 UNG3.1 輸入應用程式接收者識別的值。 UNG3.2 輸入應用程式接收者程式碼限定詞的值,例如 ZZZ。 UNG6 輸入控管單位的值。 範例 UN。 UNG7.1 輸入訊息類型版本號碼。 範例 D。 UNG7.2 輸入訊息類型版次號碼。 範例 98A。 UNG7.3 您可以讓此處保持空白。 UNG8 您可以讓此處保持空白。
在 [Contoso-Fabrikam > ] 索引標籤上執行下列工作。
注意
在此逐步解說中,我們在索引標籤中指定必要值,以便可以順利地建立協議。 若要成功建立合約,這兩個單向合約索引標籤都必須定義 UNG2.1、 UNG2.2、 UNG3.1和 UNG3.2的值。
注意
即使通知是相同訊息交易的一部分,仍會在 Contoso-Fabrikam > 索引標籤中設定與如何產生通知相關的屬性。這是必要專案,因為傳送者和接收者限定詞的通知內容屬性會設定為您在 Contoso-Fabrikam > 索引標籤中指定的值相反。例如,如果傳送者和接收者識別碼設定為 [ Fabrikam-Contoso > ] 索引標籤中的7654321和1234567,則傳送者和接收者內容屬性將會設定為通知中的1234567和7654321。 另外那一個單向協議索引標籤通常也會分別將傳送者與接收者識別碼設為 1234567 與 7654321。 因此,通知訊息會解析成該協議,並將挑選屬性設定。 因此,如果您想要讓通知使用不同的元素分隔符號,或想要讓通知使用 CR LF,請在 Contoso-Fabrikam > 索引標籤中指定屬性。
在概念上,將會從傳送者與接收者辨識符號與在通知的內容屬性中所設定值相同的任一個單向協議索引標籤中挑選通知的屬性。 但為便於實際應用,通常會在您所建立由交換解析而成之協議的其他單向協議索引標籤中設定此屬性。
在 [交換設定] 區段下的 [識別碼]頁面上,輸入限定詞和識別碼欄位的值, (UNG2.1、UNG2.2、UNG3.1和UNG3.2) ,這些欄位會對應至測試訊息中這些標頭欄位的值。
注意
如果您使用本主題稍早提供的範例訊息作為測試訊息,請將 UNB2.1 設定為 1234567、 將 UNB2.2 設為 ZZZ – 相互定義、 UNB3.1 設為 7654321, 並將 UNB3.2 設定為 ZZZ – 相互定義。
按一下 [套用]。
按一下 [確定]。 新新增的合約會列在 [合作物件和商務設定檔] 窗格的 [合約] 區段中。 預設會啟用新增的協議。
測試逐步解說
本節提供關於如何測試逐步解說的資訊。
若要測試逐步解說
在 Windows 檔案總管中,將測試 EDI 交換置放到本機接收資料夾中。
注意
對於測試訊息,您可以使用本主題先前提供的範例訊息。 將訊息複製到文字檔,並以 .txt 副檔名儲存檔案。 如果您使用此訊息,則必須部署 EFACT_D98A_APERAK.xsd 結構描述。 透過執行 \XSD_Schema\EDI 資料夾中 的MicrosoftEdiXSDTemplates.exe 檔案 (,即可取得架構,) 將架構解壓縮到預設資料夾。 EFACT_D98A_APERAK.xsd 架構接著可在 \Program Files (x86) \Microsoft BizTalk Server < VERSION > XSD_Schema\EDI\EDIFACT\D98A 下取得。
開啟與交換傳送埠相關聯的資料夾,並確認其中有包含 EDI 交換。
開啟與通知傳送埠相關聯的資料夾,並確認其中包含技術與功能通知。