65.9K
CodeProject 正在变化。 阅读更多。
Home

在 BizTalk Server 2004 中使用自定义参数调用 Web 服务

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.37/5 (14投票s)

2006 年 3 月 23 日

CPOL

3分钟阅读

viewsIcon

91423

downloadIcon

1400

本文介绍如何从 BizTalk 业务流程调用具有自定义参数的 Web 服务。

引言

通常,从 BizTalk 业务流程调用 Web 服务非常简单。在某些特殊情况下,Web 服务返回或接受对象。在这种情况下,需要自定义映射才能向 Web 服务发送请求。我们将考虑从 Web 服务返回对象的情况,以及如何在 BizTalk 中处理这种情况。

员工数据检索 - 示例

考虑一个简单的场景,其中业务流程中需要关于Employee的一些信息。此员工信息由某个 Web 服务提供,该 Web 服务接受一个EmployeeInput对象作为输入参数,并返回一个EmployeeOutput对象。请注意,Web 服务的输入和输出参数都是对象,而不是简单的 .NET 类型。

首先是架构...

让我们快速浏览一下输入和输出架构...

员工请求架构

EmpRequest

这是一个非常简单的架构,包含EmployeeCode元素。

员工响应架构

EmpResponse

输出架构包含与员工信息相关的所有元素。

方法概述 - 调用 Web 服务的步骤

  • 在解决方案资源管理器中,右键单击项目并选择“添加 Web 引用”。按照显示的对话框上的说明进行操作。
  • 查看“Web 引用”文件夹,并打开文件“Reference.xsd”。此文件将包含正确调用 Web 服务所需的预期输入和输出格式(XML 元素)。
  • 提升“Reference.xsd”文件中业务流程中所需的所有属性(XML 元素)。
  • 创建一个新的“映射”,该映射将数据从业务流程消息映射到 Web 服务输入。在这种情况下,选择“Reference.xsd”的命名空间作为目标架构。
  • 最后,使用“发送”和“接收”形状分别发送 Web 服务请求和响应。
Reference

BizTalk 映射

在此项目中,我们使用两个映射

  • 第一个映射会将输入消息转换为 Web 服务所需的消息。

    MessageSchema

  • 第二个映射会将输入消息转换为业务流程所需的输出消息。

    MessageSchema

构建业务流程(也称为“业务流程”)

此业务流程中的并行分支将同时调用 Web 服务并执行转换。

WSOrchestration

设置调用 Web 服务所需的参数

WSParamEmployeeInput.EmployeeCode = EmployeeIn.EmployeeCode;
WSRequest.employeeInput = WSParamEmployeeInput;
System.Diagnostics.EventLog.WriteEntry("Transformation", "EmployeeIn -> WSRequest");

EmployeeOut消息分配给临时变量

TempEmployeeOut = EmployeeOut;
System.Diagnostics.EventLog.WriteEntry("Transformation", "Employee In to EmployeeOut");

将从 Web 服务获得的数据分配给EmployeeOut消息

EmployeeOut = TempEmployeeOut;

EmployeeOut.EmployeeCity = WSResponse.RetrieveEmployeeResult.EmployeeCity;
EmployeeOut.EmployeeName = WSResponse.RetrieveEmployeeResult.EmployeeName;
EmployeeOut.EmployeeDept = WSResponse.RetrieveEmployeeResult.EmployeeDept;
EmployeeOut.EmployeeEmail =WSResponse.RetrieveEmployeeResult.EmployeeEmail;

业务流程中使用的各种消息列表...

InputXML

执行演示

输入 XML 文件

InputXML

请注意输入文件数据。EmployeeCode已填写。

解决方案资源管理器

SolutionExplorer

观察解决方案资源管理器中的各种工件。

输出 XML 文件

OutputXML

输出 XML 文件包含有关Employee的所有信息。

关于可下载代码

  • 使用 C:\ 驱动器中的文件夹名称解压缩文件 WSParamDemo.zip
  • 使用 C:\inetpub\wwwroot 驱动器中的文件夹名称解压缩文件 EmployeeInfoService.zip,并通过 Internet 服务管理器设置 Web 服务应用程序。
  • 文件夹 KeyAndBindings 包含 Bindings.xml 文件,该文件可以在构建和部署解决方案后导入。
  • EmployeeRequest_1.xml 放置在 In 文件夹中,并观察事件日志以查找生成的各种事件,最后观察 Out 文件夹中的输出 XML 文件。

快速要点

  1. 始终将业务流程中第一个接收形状的Activate属性设置为“true”。
  2. 请注意将 Web 引用添加到项目时生成的 XSD 文件。
  3. 确保架构中的所有提升属性都具有默认值。
  4. 每次完成部署后都需要重新启动 BizTalk 服务。
从 BizTalk Server 2004 中的业务流程调用具有自定义参数的 Web 服务 - CodeProject - 代码之家
© . All rights reserved.