2013-10-03 22 views
1

我有五個不同的Excel文件(不同的結構和不同的數據) 將被處理成一個輸出消息(XML文件)。 文件到達順序不同,所有文件都需要創建輸出xml文件。處理多個不同的文件合併成一個輸出消息

如何在Biztalk中執行此操作?

更具體的問題:

1.Is那可能到BizTalk聚合不同類型的消息,並與多個機構的消息?

2.可我聚集5個Excel文件到一個消息,然後執行輸出管線來處理所有的人?

+1

這是一個相當廣泛的問題。查看BizTalk車隊,相關集和多部分地圖的概念。您還需要創建或購買可分析Excel文件的管道組件。如果您有需要解決的特定問題,請更新您的問題以解決該問題。 – Dijkgraaf

+1

1)是的,可以在BizTalk中聚合不同類型的消息。通常這是通過將它們全部映射到內部通用格式以及使用多部分映射來合併消息來實現的。 2)是的,可以解析excel文件(例如使用用於BizTalk Server的FarPoint Spread http://www.fpoint.com/biztalk/),並將它們全部輸出爲單個消息。 – Dijkgraaf

回答

3

如下我會解決這個問題:

  1. 創建表示目標格式的新架構,我們將在收到的消息映射成這種格式。
  2. 創建表示傳入Excel電子表格的模式(可能是Xml,而不是平面文件)。通過自定義管道組件(使用Excel SDK不會太困難)或通過第三方工具(如Farpoint Spread http://www.fpoint.com/biztalk/default.aspx)將Excel文件拆分爲相應的模式,同時還有一個開源組件上在http://excel2007pipeline.codeplex.com/
  3. 的CodePlex地圖上的傳入的XML消息(分解Excel文件)接收端口到1.多個創建的目標格式接收位置可以在使用一個接收端口,一個用於每個進入的消息格式;同樣,可以在接收端口上指定多個映射,並且BizTalk會根據傳入的消息類型(模式名稱空間+根節點名稱)自動選擇正確的映射。

關於聚合消息,請看看平行和順序的車隊;關於具有多個主體的消息,請查看多部分消息 - 兩者都超出了這個問題的範圍,除非您在這些概念中試圖實現的內容添加更多細節。

+0

如果您想在解決方案中添加未來的校樣,而不是直接映射到目標格式,最好映射到內部通用格式並將其映射到目標格式。這樣,如果將來這個相同的數據需要去另一個目的地,那麼你只需要創建一個新的地圖,而不是5. – Dijkgraaf

+0

我認爲這就是Nick的意思*創建一個代表目標格式*的新模式。 –

2

與Nick上面的答案大致相同,特別是在入站管道中映射消息。

但是,我不會通過BizTalk中的順序車隊模式實現聚合,因爲這樣做需要使用單一業務流程,這是BizTalk反模式(和支持惡夢)。

基本平行車隊可以工作,因爲每個的5個輸入「組」將被路由到業務流程完成後,將終止的一個實例。

+1

是的,順序車隊可以導致殭屍! http://msdn.microsoft.com/en-us/library/bb203853.aspx要避免。 – Dijkgraaf

相關問題