最近在try一個東西,主要是想透過BizTalk Orchestration去讀取檔案然後FTP到某個站台去.
馬上就想到透過XmlDocument物件去Load進來,然後在Assignment給訊息物件.一試之下果然不行.因為假如讀取的檔案非XML格式的話,使用xmldocument物件就無法載入.這下可糟了,難不成無解.後來在搜尋網路之後,找到了這個網站.
http://geekswithblogs.net/Podwysocki/archive/2007/11/20/117007.aspx
果然給了我一個可行的指引,經過底下的測試後,果然可行.
step1: 寫一個function,準備給biztalk呼叫,此function傳入2個參數,一個是檔案的路徑,一個是準備回傳給biztalk的訊息內容.
另外還有一個class,此次實驗的重點主要是這個class.因為這個class負責讀入外部檔案,並且以biztalk可以接受的型態回傳.
Step2: 在BizTalk Orchestration裡面定義2個訊息變數,一個用來記錄希望biztalk取得檔案名稱的xml訊息,另一個是內含binary檔案的訊息內容.
Step3: 建立一個Orchestration,在Receive shape讀入一個內含檔案名稱的xml訊息並透過Assignment shape呼叫外部的元件,在外部元件裡面會讀取檔案後,並組成biztalk接受的訊息回傳.
最後在Send Shape將此檔案上傳到指定的FTP目錄.
Assignment的程式碼如下:
做到這裡已經算完工了,經過測試,我丟了一個這樣的xml檔案.
結果就可以在FTP Server上看到這一個檔案.






