BizTalk消息处理解决方案

在设计复杂的业务逻辑时,编排(Orchestration)是最佳的方法。然而,如果需要实现没有业务逻辑的简单转换,最佳的方法就是使用消息唯一的解决方案,这样可以避免往返消息框,提高解决方案的吞吐量。以下是创建一个不涉及编排的消息处理解决方案的步骤。

创建BizTalk输入和输出架构

首先,需要创建一个BizTalk输入和输出架构。

// 打开Visual Studio 2010 // 创建一个新的BizTalk Server项目 // 将项目名称和解决方案名称重命名为MessageOnlySln // 在解决方案资源管理器中,右键点击项目,选择添加 -> 新建项 // 选择架构并重命名为ReceiveSchema.xsd // 创建一个新的架构,根元素为‘root’,将其重命名为‘Input’ // 创建两个子字段元素FirstName和LastName,数据类型为字符串(默认) // 最终的ReceiveSchema应该如下所示

按照上述步骤2、3、4、5,创建一个SendSchema.xsd,其中包含一个子字段元素‘FullName’。

创建映射

映射是BizTalk中的消息转换对象,ReceiveSchema和SendSchema的转换将在这里进行。映射内部是一个XSLT转换。

// 创建一个新的映射并命名为ConcatenateMap.btm // 映射将创建带有链接的Open Source Schema和Open Destination Schema // 点击这些链接并选择源(ReceiveSchema.xsd)和目标架构(SendSchema.xsd) // 选择架构后,展开根节点以查看底层元素 // 将FirstName和LastName(源架构)进行简单连接到FullName(目标架构) // 拖放字符串连接函数 // 函数是用于在映射中转换数据的现成逻辑函数 // 拖动FirstName和LastName元素的链接从源架构到连接函数的左侧,并将其结果(右侧)链接到输出架构的FullName元素 // 注意函数警告符号已经消失

如前所述,映射内部是一个XSLT...让看看这个映射是如何形成的XSLT。

// 右键点击ConcatenateMap.btm并点击验证映射 // 如果点击XSLT的输出链接 // 可以看到如下的XSLT:

通过这个,已经创建了功能。但在部署之前,应该进行单元测试,现在这部分跳过了。

创建输入消息的实例

要创建一个实例,请右键点击ReceiveSchema.xsd并生成实例。

// 生成的实例将位于位置 // 输出窗口将显示位置为: // C:\Users\\AppData\Local\Temp\_SchemaData\ReceiveSchema_output.xml // 打开实例文件 // 生成实例将默认字段名称和值,将其更改为所需的值 // 在测试之前准备好这个文件

部署解决方案

已经完成了,让部署解决方案。

所有的BizTalk工件(架构、映射、编排)或完整的项目在部署之前必须进行强命名。

// 转到MessageOnlySln项目,在解决方案资源管理器中右键点击并点击属性 // 导航到左侧窗格中的签名选项卡 // 点击签名程序集并选择一个强命名密钥文件作为‘新’ // 给文件命名为‘MessageOnlySlnKey’并取消勾选‘用密码保护密钥文件’ // 解决方案资源管理器中将创建一个新的密钥 // 现在转到部署选项卡 // 创建应用程序名称为‘MessageOnlyAppln’,此名称将用于在BizTalk管理控制台中创建应用程序。如果没有指定,此解决方案将部署在默认应用程序(BizTalk Application 1)中 // 保存所有未保存的工件...

现在,右键点击解决方案资源管理器中的项目并点击部署

// 部署开始文本将在Visual Studio左下角显示 // 部署成功后,将在BizTalk管理控制台中形成一个新的应用程序MessageOnlyAppln // 注意:如果出现错误,请确保BizTalk必要的服务正在运行 // 如果出现访问拒绝错误,请以管理员身份重启Visual Studio // 还要确保没有错过上述提到的任何步骤

配置应用程序

确保架构和映射在控制台的相应区域可用。

配置接收端口/位置

端口是BizTalk发布/订阅模型的来源。所有消息都通过BizTalk中的端口发布/订阅。

// 创建一个新的接收端口 // 在常规选项卡中重命名端口为InboundRcvPort // 创建接收位置 // 点击同一个窗口中的接收位置并点击新建 // 配置接收位置如下 // 点击配置按钮并提供Inbound文件夹的位置 // 点击所有底层窗口中的确定 // 确保接收位置如下所示

配置发送端口

消息将由文件基础的接收适配器拾取,然后传输到接收端口,并交付到消息框。

// 现在需要通过任何上下文属性(BTS.ReceivedFileName)订阅此交付的消息,以应用出站映射。这里,映射将在发送端口中应用 // 创建一个发送端口如下 // 点击静态单向发送端口并重命名为‘OutboundSendPort’,并进行以下所有配置 // 点击配置按钮并提供Outbound文件夹的位置 // 在发送端口中配置映射 // 点击同一个窗口左侧窗格中的出站映射 // 选择映射如下 // 点击应用

配置发送端口中的过滤器

过滤器是订阅消息框中的消息的。

// 转到同一个窗口左侧窗格中的过滤器选项卡 // 从下拉菜单中选择上下文属性‘BTS.ReceivedPortName’ // 为属性提供值‘InboundRcvPort’ // 可以根据需要选择任何上下文属性(如BTS.MessageType) // 应用所有设置并点击所有窗口中的确定

后配置任务

接收位置和发送端口将处于禁用状态,右键点击并启用。

确保主机实例BizTalkServerApplication正在运行。

测试解决方案

已经完成了所有的配置部分,现在是测试整个解决方案的时候了。

// 复制在上一个任务中生成的实例文件 // 将文件放置在接收位置配置的Inbound文件夹中 // 文件将立即被拾取,输出将被转换并放置在输出文件夹中,文件名带有唯一的MessageID // 输出文件将形成如下: // Ha!!! ,已经完成了这个 // 解决方案按预期工作。 // 再次检查过滤器属性和配置的值 // 确保配置的发送位置有效 // 需要更多帮助,请查看挂起的服务实例以获取确切的问题
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485