訊息豐富範例 (BizTalk Server 範例)
「訊息豐富」範例會示範如何將交換標頭附加至 X12 和 EDIFACT 文件的交易集訊息。
此範例的用途
此範例示範如何將針對 EDIFACT 的 UNA、UNB 和 UNG 標頭及針對 X12 的 ISA 標頭附加至交易集。 具體來說,本範例執行下列工作:
將測試訊息放置到 \Message Enrichment\In 資料夾後,接收埠會拾取訊息,處理後再放到 MessageBox。
MessageEnrichmentOrchestration 會從 MessageBox 拾取測試訊息,因為它是根據其「接收」圖形上設定的篩選條件運算式訂閱訊息。
協調流程會讀取訊息之內容屬性的交換標頭。
注意
UNA 和 UNG 標頭為 EDIFACT 訊息中的選用項目,因此訊息的內容屬性中可能沒有這兩個標頭。
協調流程會將交換標頭和訊息內文皆寫入單一新訊息中。
協調流程會將設定於 ReceivePortNameCorrelationType 相互關聯類型中的其他屬性升級至訊息。 這樣一來,協調流程的使用者就可以選取其訂閱所需的屬性清單。 這些屬性寫在「建構訊息」圖形中。 並非所有寫入原始訊息的內容屬性都會寫入新訊息中。
協調流程會將新訊息放至 MessageBox 中。
傳送埠會拾取新訊息,並透過 FILE 配接器傳送至 \Message Enrichment\Out 資料夾。
可在何處找到此範例
此範例位於 BizTalk Server 安裝資料夾:\Program Files (x86) \Microsoft BizTalk Server < VERSION > SDK\Samples\EDI\Message 擴充。
下表顯示此範例中的檔案,並描述其用途。
檔案 | Description |
---|---|
Cleanup.bat | 解除部署範例實例。 協調流程的執行個體不得為作用中才能成功。 否則會失敗。 |
MessageEnrichment.sln | 包含 MessageEnrichment 和 MessageEnrichmentLibrary 專案。 |
Setup.bat | 部署包含接收埠、傳送埠和協調流程的範例實例。 |
EDIFACT_example.edi | 為輸入 EDIFACT 訊息。 |
X12_example.edi | 為輸入 X12 訊息。 |
MessageEnrichment.btproj | 包含 MessageEnrichment 協調流程和結構描述的專案。 |
MessageEnrichmentBindings.xml | 包含協調流程、連接埠和合作對象繫結的檔案。 |
MessageEnrichmentOrchestration.odx | 將標頭附加至訊息的協調流程。 |
MessageEnrichmentOrchestration.odx.cs | 將標頭附加至訊息的協調流程程式碼。 |
EFACT_D98B_APERAK.xsd | 輸入訊息的 EDIFACT 結構描述。 |
Enriched_EFACT_D98B_APERAK.xsd | 輸出訊息的 EDIFACT 結構描述。 |
X12_00401_864.xsd | 輸入訊息的 X12 結構描述。 |
Enriched_X12_00401_864.xsd | 輸出訊息的 X12 結構描述。 |
Headers.xsd | 加入至輸入訊息之標頭的結構描述。 |
MessageEnrichmentLibrary.csproj | 包含 Headers.cs、OrchestrationUtilities.cs 和 ParseHeaders.cs 檔案的專案。 |
Headers.cs | 包含代表標頭資料的類別。 |
OrchestrationUtilities.cs | 包含協調流程所使用的公用程式方法。 |
ParseHeaders.cs | 包含新訊息中所使用之 UNA 的預設值。 這些值取自 ParseHeaders.cs 中的 SerializeEDIFACTHeaders 方法。 |
如何使用此範例
使用此範例做為附加交換標頭至 EDI 交易集訊息所需動作的實用範例。
建置和初始化此範例
若要建置和初始化「訊息豐富」範例,必須為此範例建置和部署 BizTalk 專案、設定接收埠和位置,以及設定兩個不同的傳送埠。
若要為此範例建置和部署 BizTalk 專案
使用 Notepad.Exe,開啟 \Program Files (x86) \Microsoft BizTalk Server < VERSION > SDK\Samples\EDI\MessageEnrichment\
MessageEnrichment\properties\AssemblyInfo.cs,並在檔案底部新增下列這一行:[assembly: Microsoft.XLANGs.BaseTypes.BizTalkAssembly(typeof(Microsoft.BizTalk.XLANGs.BTXEngine.BTXService))]
儲存修改過的 AssemblyInfo.cs 檔案,然後結束 [記事本]。
在命令視窗中,移動至下列資料夾:
\Program Files (x86) \Microsoft BizTalk Server < VERSION > SDK\Samples\EDI\Message 擴充
執行 Setup.bat執行下列動作:
在) 中 建立接收 (,並在 \MessageEnrichment 資料夾中傳送 () 資料夾。
將金鑰組寫入 MessageEnrichmentLibrary\testkey.snk
建置並部署 MessageEnrichmentLibrary.btproj 專案。
建置並部署 MessageEnrichment.btproj 專案。
讀取 MessageEnrichmentBindings.xml 內的繫結資訊。
注意
此專案的系結需要 BizTalk 主機標示為驗證信任。 若要將此專案與不受信任的主機搭配使用,請修改 MessageEnrichmentBindings.xml,並將 HostTrusted=「true」 專案變更為 HostTrusted=「false」。
更新協調流程繫結。
更新傳送埠、傳送埠群組和接收埠。
更新合作對象和登錄。
啟動傳送埠。
啟用接收位置。
登錄並啟動協調流程。
BizTalk Server 現在已準備就緒可使用此範例。
執行此範例
使用下列程序執行「訊息豐富」範例。
執行此範例
將 EDIFACT_examples.edi 檔案從 \MessageEnrichment\Instances 資料夾複製至 \MessageEnrichment\In 資料夾。
確認 EDIFACT_examples.edi 檔案已從 \MessageEnrichment\In 資料夾消失並出現在 \MessageEnrichment\Out 資料夾內。
開啟 \MessageEnrichment\Out 資料夾內的檔案。 確認 \MessageEnrichment\Instances 資料夾中有 EDIFACT_examples.edi 檔案的 XML 表示法,而且除輸出檔案具有 EDIFACT UNA、UNB 和 UNG 標頭之外,其內容與 EDIFACT_examples.edi 檔案相同。
重複步驟 1 和 2 處理 \MessageEnrichment\Instances 資料夾內的 X12_examples.edi 檔案。
開啟 \MessageEnrichment\Out 資料夾內的新檔案。 確認 \MessageEnrichment\Instances 資料夾中有 X12_examples.edi 檔案的 XML 表示法,而且除輸出檔案具有 X12 ISA 標頭之外,其內容與 X12_examples.edi 檔案相同。
在此範例中使用的類別或方法
None