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






3.37/5 (14投票s)
本文介绍如何从 BizTalk 业务流程调用具有自定义参数的 Web 服务。
引言
通常,从 BizTalk 业务流程调用 Web 服务非常简单。在某些特殊情况下,Web 服务返回或接受对象。在这种情况下,需要自定义映射才能向 Web 服务发送请求。我们将考虑从 Web 服务返回对象的情况,以及如何在 BizTalk 中处理这种情况。
员工数据检索 - 示例
考虑一个简单的场景,其中业务流程中需要关于Employee
的一些信息。此员工信息由某个 Web 服务提供,该 Web 服务接受一个EmployeeInput
对象作为输入参数,并返回一个EmployeeOutput
对象。请注意,Web 服务的输入和输出参数都是对象,而不是简单的 .NET 类型。
首先是架构...
让我们快速浏览一下输入和输出架构...
员工请求架构

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

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

BizTalk 映射
在此项目中,我们使用两个映射
- 第一个映射会将输入消息转换为 Web 服务所需的消息。
- 第二个映射会将输入消息转换为业务流程所需的输出消息。
构建业务流程(也称为“业务流程”)
此业务流程中的并行分支将同时调用 Web 服务并执行转换。

设置调用 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;
业务流程中使用的各种消息列表...

执行演示
输入 XML 文件

请注意输入文件数据。EmployeeCode
已填写。
解决方案资源管理器

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

输出 XML 文件包含有关Employee
的所有信息。
关于可下载代码
- 使用 C:\ 驱动器中的文件夹名称解压缩文件 WSParamDemo.zip。
- 使用 C:\inetpub\wwwroot 驱动器中的文件夹名称解压缩文件 EmployeeInfoService.zip,并通过 Internet 服务管理器设置 Web 服务应用程序。
- 文件夹 KeyAndBindings 包含 Bindings.xml 文件,该文件可以在构建和部署解决方案后导入。
- 将 EmployeeRequest_1.xml 放置在 In 文件夹中,并观察事件日志以查找生成的各种事件,最后观察 Out 文件夹中的输出 XML 文件。
快速要点
- 始终将业务流程中第一个接收形状的
Activate
属性设置为“true
”。 - 请注意将 Web 引用添加到项目时生成的 XSD 文件。
- 确保架构中的所有提升属性都具有默认值。
- 每次完成部署后都需要重新启动 BizTalk 服务。