现在的位置: 首页 > 综合 > 正文

使用biztalk adapter Pack适配器 part-1

2012年08月16日 ⁄ 综合 ⁄ 共 2419字 ⁄ 字号 评论关闭
文章目录

一、  使用WCF_SQL、WCF_Oracle、WCF_SAP adapter的公共安装前提

1、 Microsoft .NET Framework 3.5 SP1.

2、 Microsoft Visual Studio 2008

 

3、 安装WCF LOB Adapter SDK SP2

要在VS2008中使用BizTalk Adapter Pack 2.0中的适配器开发biztalk项目,必须在安装WCF LOB SDK时选择安装BizTalk add-in for Visual Studio。要安装此add-in,必须使用定制安装或完全安装WCF LOB Adapter SDK。

在定制安装的选项中,选择BizTalk Server Addin。并且在安装WCF LOB Adapter SDK前,VS2008必须已经安装。

4、 安装BizTalk Adapter Pack 2.0

 

二、  使用WCF_SQL adapter

这里使用一个例子来说明如何使用WCF_SQL adapter。

1、 例子场景

系统A有个雇员表Employees,结构如下:

字段

类型

说明

ID

int

自增长id

Name

nvarchar(50)

姓名

Age

int

年龄

Gender

int

性别

New

bit

是否新增

当有新雇员加入到此表,New字段先置为1,表示是新增的雇员。这张雇员表要传到系统B的雇员表EmployeesTarget,表结构跟上面的雇员表一样,只是少了New字段。

Biztalk要做的是使用WCF_SQL adapter读取系统A的雇员表Employees中的新增雇员,同时将New字段置为0,然后将新增的雇员写入到系统B的雇员表EmployeesTarget里。

2、 接收位置

2.1.   准备获得数据的存储过程

在系统A中建一个读取新雇员的存储过程:

ALTER PROCEDURE [dbo].[GetEmployees]

AS

BEGIN

  --获取所有新增用雇员的记录

  select Name,Age,Gender from dbo.Employees where New=1

  --将所有新增雇员的New字段置为0

  update dbo.Employees set New=0 where New=1

END

 

2.2.   使用向导获得接收数据的schema

下面在VS2008中新建接收新增雇员的schema,在VS2008的biztalk项目上点击右键,选择“添加生成项”:

 

选择“Consume Adapter Service”:

 

在Select a binding下选择“sqlBinding”,使用WCF_SQL adapter。

点击右上方的“Configure”按钮:

 

配置要连接sql server的用户名和密码。

 

在URI Properties标签里如下设置:

Server – 设置要连接的sql server名或IP

InitialCatalog – 要连接的数据库名

InboundId – 接收位置的序号

 

 

Binding Properties标签中:

作为接收端口,访问数据库采用轮训机制,就是按一定的时间间隔定时读取数据库。

InboundOperationType--属性有几种类型可选:Polling,TypedPolling,Notification。

Polling是轮询方式,但是这种方式是不带架构的,TypedPolling也是轮询方式,这种方式可以带出架构。Notification是用于数据有变化时进行相关通知。

如果需要轮询数据,又要能刷出数据架构,需要采用TypedPolling方式。

PollingIntervalInSecond – 轮询间隔时间

PolledDataAvailableStatement – 执行轮询的条件,这里一般是个select语句,这条语句应该返回一个单个的结果集,只要这个结果集的第一行第一列必须有值(如果是空结果集会报错),应该是个大于等于0的整数值。如果这个值大于0则执行下面PollingStatement指定的sql命令真正的开始轮询的操作。如果这个值等于0,则轮询语句不执行。

这个例子中可以设置为:select 1 from dbo.Employees where new=1

PollingStatement – 轮询命令,可以是sql语句,也可以是存储过程。

这个例子中可以设置为:exec dbo.GetEmployees

 

Configure Adapter完成后,回到adapter设置主界面:

 

 

点击Connect按钮,如果在Configure中连接信息设置没问题,连接状态将会显示:已连接。

要作为接收端口,biztalk相当于服务端,所有在Select contract type要选择Service(Inbound Operations)

在选择了Service(Inbound Operations)时,在下边的Select a Category中一定是空的(除了那个省略号和斜杠),别无选择,点击这个斜杠。

在右边会出现三个可选的操作Polling,TypedPolling,Notification,他们的含义前面已经说过了。选择TypedPolling,点击“Add”按钮。

OK,完成向导。

可以看到在项目中生成了两个文件,一个是根据前面设置的轮询命令生成的schema,一个是可以导入到biztalk的接收位置和端口的绑定文件,可惜的是,向导生成的绑定文件都是使用的WCF_Custom的绑定而不是希望的WCF_SQL的绑定。所以这个例子里不使用向导生成的绑定文件。

 

看一下生成的schema:

 

跟前面的存储过程比较一下,可以发现生成的schema就是存储过程返回的那三个字段,说明向导刷到了存储过程的schema。

这跟非WCF的sql adapter不同,非WCF的sql adapter返回数据时必须使用for xml auto,xmldata返回架构,adapter向导才能刷出架构。WCF_SQL则不必,一般的select返回的结果集就可以直接刷出架构。

抱歉!评论已关闭.