原创 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>

发表于 @ 2006年07月21日 09:41:00|评论(loading...)

新一篇: 更改Visual Studio 2005默认开发语言 | 旧一篇: 为你的blog添加搜索功能

用户操作
[即时聊天] [发私信] [加为好友]
fengfangfang
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
fengfangfang的公告

文章分类
收藏
    JBoss应用配置
    Windows平台下的安装与配置
    应用目录配置为根目录
    配置SSL
    .Net PetShop
    分布式数据库设计
    层次结构
    消息处理
    缓存处理
    配置文件属性管理
    Biztalk 实例
    从SQL Server中获取数据
    传输文本文件
    分割SQL记录集
    平面文件架构
    调用Web Services
    SQL Server 开发
    使用触发器自动编号
    分页存储过程
    复制表数据的SQL脚本生成器
    数据记录拼接聚合
    ASP.NET中使用Excel
    1 权限设置
    2 读取Excel文件
    3 写Excel文件
    4 上传并读取Excel文件
    Biztalk 开发
    使用动态端口输出文件
    如何快速创建架构
    架构和实例的验证
    架构的发布
    配置HTTP接收适配器
    重启Biztalk主机的秘密
    存档
    软件项目交易
    Csdn Blog version 3.1a
    Copyright © fengfangfang