從sql server中獲取資料一文介紹了如何從sql server資料庫中獲取資料。不過,有時候我們想把獲取的記錄集分開,每乙個記錄輸出乙個xml檔案。在本文中,介紹如何通過biztalk提供的envelope實現此功能。
要實現此功能,需要完成如下任務:
一、建立乙個空的biztalk專案
二、建立乙個信封構架
三、建立乙個記錄構架
四、編譯和佈署biztalk專案
五、建立接收埠和接收位置
六、建立傳送埠
七、啟動埠測試
下面來看具體步驟:
一、建立乙個空的biztalk專案
1. 開啟visual studio .net 2003,建立乙個新專案,選擇專案型別為biztalk專案,模板為空的biztalk server專案,輸入名稱為biztalksql1。
二、建立乙個信封構架
2. 選擇biztalksql1,為其新增乙個構架sqlenvelope.xsd。
3. 選擇節點,設定信封屬性為是,設定target namespace為http://schematargetnamespace。
4. 選擇root節點,設定node name為sqlenvelope,選擇正文 xpath後的...按鈕,彈出乙個正文xpath視窗,單擊確定按鈕,將會為正文 xpath設定屬性。
5. 在構架樹中選擇sqlenvelope節點,為其新增乙個任何元素子節點。
6. 設定節點的namespace屬性為##any,設定process contents屬性為lax。
三、建立乙個記錄構架
7. 選擇biztalksql1,為其新增生成的項,選擇新增介面卡,開啟新增介面卡嚮導。
8. 選擇介面卡頁面中選擇sql,單擊下一步。
9. 指定架構的資料來源時,設定localhost的northwind資料庫,使用合適的資料庫身份認證方式,單擊下一步。
10.在架構資訊中設定目標命名空間為http://schematargetnamespace,選擇埠型別為接收埠,文件根元素名稱設定為categories。
11.選擇語句型別為select語句,單擊下一步。
12.輸入sql指令碼查詢所要處理的資料,此處選擇categories表,輸出該錶所有字段,並且使用xml auto,elements方式其語句為:select * from categories for xml auto, elements
13.單擊下一步,單擊完成。
14.展開生成的sqlservice.xsd的構架樹,將裡層的categories中的四個節點移到外層的categories下面,並將裡層的categories節點刪除。設定categories節點的group max occurs和group min occurs屬性為1。
四、編譯和佈署biztalk專案
15.在解決方案資源管理器中將biztalk 業務流程.odx檔案刪除。
16.生成解決方案。
17.為biztalksql1專案設定程式金鑰檔案,具體步驟可參見biztalk 排錯之 需要強名稱程式集一文。
18.佈署解決方案。
五、建立接收埠和接收位置
六、建立傳送埠
26.建立乙個傳送埠sqlsendport。
27.在配置/傳輸/主要中設定傳輸型別為file,設定位址為c:/out/%messageid%.xml。
28.在配置/傳送中設定傳送管道為microsoft.biztalk.defaultpipelines.passthrutran**it。
29.在配置/篩選器和對映/篩選器中設定bts.receiveportname == sqlreceiveport。
七、啟動埠測試
30.選擇sqlreceiveposition,單擊右鍵選擇啟用選單。
31.選擇sqlsendport,單擊右鍵選擇啟動選單。
32.半分鐘後,將會在c:/out資料夾下發現biztalk生成的一些xml檔案,其內容格式如下:
1beverages
soft drinks, coffees, teas, beers, and ales
dbobject/categories[@categoryid='1']/@picture
33.出現xml檔案後,停止接收位置和傳送埠,否則會在c:/out資料夾下不停地生成xml檔案。
總結:在本例項中,例項了乙個sql接收介面卡,乙個檔案傳送介面卡,兩個構架檔案,實現了sql記錄集的拆分。
VIM之分割視窗操作
原文 同時顯示兩個不同的檔案,或者同時檢視乙個檔案的兩個不同的部分,甚至同步顯示兩個檔案的不同之處,都可以使用vim的分割視窗來實現。最簡單的開啟新視窗的方法就是使用命令 split,這樣,原來的視窗就會分成上下兩個部分,而游標停留在上明的視窗裡。你會發現開啟的新視窗和你原來的視窗都是顯示的同乙個檔...
python 之 分割引數getopt
在python中有乙個庫叫做getopt,專門用來處理命令列選項。首先假設乙個命令為 justforsample c b 5 mm lala home 在上面的命令中sys.argv中存的分別是 justforsample c b 5 mm lala home 其中把 c 代表不需要附加引數的短選項...
python 之 分割引數getopt
from python 之 分割引數getopt os下有個方法walk,非常的好用,用來生成乙個generator。每次可以得到乙個三元tupple,其中第乙個為起始路徑,第二個為起始路徑下的資料夾,第三個是起始路徑下的檔案。1.匯入getopt,sys 模組 2.分析命令列引數 3.處理結果 第...