Biztalk 例項之 分割SQL記錄集

2021-04-08 16:22:36 字數 2185 閱讀 2968

從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.處理結果 第...