使用Biztalk Sql Adapter 读取数据
最近的项目终于结束了.在项目中我们用到了Biztalk同步世界各地的Database,所以决定写这个Sql Adapter系列.把项目中用到的技术记录下来,以便以后参考.
本系列分为几个部分
1:使用biztalk 读取数据,
2:使用biztalk插入数据,
3:使用Biztalk更新数据
4:使用biztalk删除数据
今天我们就开始从使用Biztalk读取数据讲起.
为了使用Biztalk 同步不同DataBase的数据,我们使用到了 Biztalk 自带 Sql Adapter 去实现这个需求.我们把这个目标分为两个部分.
第一:使用biztalk Sql Adapter 从一个Database Server 获得数据(这篇文章就是完成这个目标),
第二:把获得的数据插入到另一个数据库.
今天我们来完成第一个目标
开始之前的工作:
1:安装biztalk
2:安装Sql Server 2005
3:VS2005 +Biztak Extension
OK,准备工作已经就绪,开始我们的Sql Adapter之旅吧.为了更容易看懂,我将使用大量的图片.
一,使用Vs2005创建biztalk Solution
1:打开Vs 创建一个Empty Biztalk project.如图
2:接下来我们来创建一个用来读取数据的Biztalk Sql Adapter,右键单击我们所创建的project->Add->Add Generated Items ,在弹出来的对话框中 选择Add Adapter Metadata,单击OK,我们就看到了添加 Adapter的向导如下图.
我们选择Sql(如果有其他的Adapter,包括自定义的Adapter,都会出现在这个list当中,目前我们只有Sql 可以选择),单击Next,我们就会看到设置所要连接的Database的对话框(如下图)
填写你要连接的DataBase的信息,非常简单,这个DataBase就是我们将要读取数据用的.(注意:Allow Saving Password 一定要勾选,否则不让你通过)填写后,单击OK->Next,我们将看到接受端口的设置界面,如下图
Target Namespce:Http://AdapterTest(可以随便写)
Select The Port Type:Receive Port(由于我们是读取数据,我们要选择 Receive Port)
Document Root Element Name:SelectRoot(可以随便写)
注意:一定要记住自己所写的Namespace 和Root Name,后面的端口设置中要用到
填写完整后,单击Next,我们将看到下图,你可以选择Select The type if statement
select Statement:你需要手写SQL Select 语句
Stored Procedure:将从你选择的数据库中选择已经存在的存储过程
SQL 语句很简单了.需要注意的是:语句后面:For XML Auto,目的是select出来的结果以XML形式返回.
然后就直接Next->Finish,就OK了.一个读取数据的Adapter就OK了.
3:添加Adapter后,我们可以看到Project中多了2个文件:Schema, Orchestration,我们可以删除那个Orchestration文件(当然你也可以不删除),本例删除了自动生成的Orchestration文件,手动添加一个新的Orchestration文件GetDataFromDB1.odx.(Add Item-> Orchestration File,弄个名字,单击OK,就完成新文件的添加)
3.1
接下来我们要添加Business Process. 打开GetDataFromDB1.odx,添加如下Items,如下图,
ReceiveDataFromDB1:接受数据
SaveDataToFile:Send Shapre(之所以添加这个,是为了保存我们取到的数据)
ReceiveDataport:Port
SaveDataPort: Port
3.2 创建Message,在Slution Explorer中,单击Orchestration View,右键单节Message,创建一个Message消息.属性设置如下.(由于本例只读取数据库,所以就一个message)
3.2 设置 接受和发送形状的消息并连接端口. 如下图
4:完成最后的设置,右键单节project->properties,设置如下图,
5.在VS2005 上,右键Solution->Properties.设置如下.选中Deploy
6:Done,Solution创建结束,我们直接Build ->Deploy.
二:设置Biztalk了.
1:建立几个文件夹,作为我们输出端口的接受文件夹,随便放在哪个盘都行.本例放在 C:\tutorial\SqlAdapter\SelectedChildData
1:首先打开Biztalk控制台.开始菜单->Microsoft BizTalk Server 2006->BizTalk Server Administration 找到我们刚才Deploy的BiztalkAdapter 程序
3:右键BiztalkAdapter->configure… 我们可以看到我们在VS2005中所创建的2个端口ReceiveDataPort和SaveDataPort.
4:我们首先来设置ReceiveDataPort端口.新建一个接收端口,在弹出的对话框如下:
在General中填写名字: ReceiveChildData
然后在Receive Location中New一个Location.设置如下
Name: ReceiveChildData_Location.
Type: SQL
然后File的configuration中的设置如下图,
其中SQL的设置中要注意的是一定要填写我们在创建SQLAdapter向导时,所填写的NameSpace和Root Element Name
Document Root Element Name: SelectRoot
Document Target Namespace: Http://AdapterTest
ReceivePipeline: XMLRecive
5:设置SaveDataPort,同样New一个Send Port
Name: SaveDataPort
Type: File
File的Configuration中的Destination Folder设置我们在开始创建的Folder C:\tutorial\SqlAdapter\SelectedChildData
Send Pipe: XML Transmit
6.设置完成后,右键BiztalkAdapter->start
7: 测试
打开我们所创建的文件夹,我们就能看到结果了
源码: Biztalk Sql Adapter