BizTalk -->

by muyanpeng

导航

BizTalk 如何使用 Oracle Adapter

Posted on 2007-12-25 14:15  穆彦鹏  阅读(3325)  评论(9编辑  收藏  举报


很长时间以来都想写这篇文章,一直没有时间,今天为大家奉上。
实际应用的很多时候BizTalk是要和Oracle DB进行数据交换的,在这里简单介绍下Biztalk如何使用Oracle Adapter对oracle db进行访问.

Biztalk主机系统环境:
1.Biztalk 2006 (已安装oracle adapter)
2.已安装oracle client工具


实际操作:
1.在oracle client端的oracle net manager中创建关于oracle数据源的net服务名







完成后 记得在退出的时候 对所做的修改进行保存



2.首先创建关于oracle db的odbc数据源




测试连接成功之后 , 准备工作基本上就完成了 。

3.创建一个BizTalk的接收端口
因为oracle adapter生成向导生成schema的时候 需要一个静态的端口作为连接器,所以要先做一个可以连通的静态oracle端口,然后再进行biztalk的工程创建。
端口建立信息如图:



4.创建BizTalk project

创建完工程之后 使用oralce adapter 生成向导引用刚创建的receive port并选择表空间




点击Finish,这个时候我们会得到两个schema 和一个orc,这里有一个schema包含了对该数据表的所有操作方式节点,如图:



场景因为是DEMO,所以我在这里设计了如下的流程:
对同一个数据表进行如下操作
1.从该表提取数据            (将这些数据输出到文件)
2.对接收到的数据进行UPDATE  (将name字段加后缀 bt)
3.插入数据                 (将id name 字段加后缀 bt 后,作为新纪录插入数据库)


部署该工程 配置各个端口


这里的receiveport13 和 sendport16 都是文件端口 ,sendport15是oracle相关的端口,因为oracle数据库操作是以消息内容驱动的,端口只要能保证连通就可以了,所以query,update,insert可以使用通一个双向静态发送端口,看一下端口配置,如图:


注意使用 xml管道

环境已经准备好了 测试一下:
先看一下原表的数据:


文件传入 查询的schema对应的XML:
这里的filter结点是 where 语句以后的部分,maxrows代表返回结果集的最大行数

<ns0:Query xmlns:ns0="http://schemas.microsoft.com/[OracleDb://OracleTestODBC/SYSTEM/Tables/STSBTTABLE]">
  
<ns0:Filter></ns0:Filter> 
  
<ns0:MaxRows></ns0:MaxRows> 
</ns0:Query>

生成文件触发流程后,看一下结果:
1.查询结果输出到文件
<?xml version="1.0" encoding="utf-8"?>
<STSBTTABLE:QueryResponse xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:exposed="http://schemas.microsoft.com" xmlns:STSBTTABLE="http://schemas.microsoft.com/[OracleDb://OracleTestODBC/SYSTEM/Tables/STSBTTABLE]">
    
<STSBTTABLE:Return>
        
<STSBTTABLE:QueryRecord>
            
<STSBTTABLE:ID>1</STSBTTABLE:ID>
            
<STSBTTABLE:NAME>WOOD</STSBTTABLE:NAME>
            
<STSBTTABLE:ROWID>AAAHfgAABAAAMZaAAA</STSBTTABLE:ROWID>
        
</STSBTTABLE:QueryRecord>
    
</STSBTTABLE:Return>
</STSBTTABLE:QueryResponse>


2.数据库变化

OK   全部搞定

惯例: 源码下载