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

无编排的简单 BizTalk 项目

starIconstarIconstarIconstarIconstarIcon

5.00/5 (8投票s)

2014 年 3 月 3 日

CPOL

6分钟阅读

viewsIcon

44312

仅包含消息的简单 BizTalk 项目

引言

大多数技术人员都认为 BizTalk 是一种基于编排的解决方案。但使用编排设计解决方案会在消息框中进行往返。

每当需要设计复杂的业务逻辑时,编排都是最佳方法。

但是,如果您只需要实现简单的转换而无需业务逻辑,那么仅消息解决方案是最佳方法,它可以避免消息框的往返,并提高解决方案的吞吐量。

让我们快速创建一个不带编排的消息解决方案 J

步骤

  • 创建 BizTalk 输入和输出架构

  • 创建映射

  • 创建输入消息的实例

  • 部署解决方案

    • 部署前步骤

    • 部署

  • 配置应用程序

    • 部署后检查

    • 配置接收端口/位置

    • 配置发送端口

    • 在发送端口中配置映射

    • 配置发送端口中的筛选器

    • 部署后任务

  • 测试解决方案

  • 故障排除

创建 BizTalk 输入和输出架构

  1. 启动 >> Visual Studio 2010 >> BizTalk >> 空 BizTalk Server 项目

将名称和解决方案名称重命名为 MessageOnlySln

  1. 在解决方案资源管理器中,右键单击项目并选择“添加”>>“新项”

  2. 从项中选择架构,并将架构重命名为 ReceiveSchema.xsd

  3. 将创建一个新的架构,其根元素为“root”,将其重命名为“Input”

BizTalk 通过 消息类型 来标识消息。消息类型是 “命名空间#根” 的一个组成部分。


  1. 现在创建两个子字段元素,分别为 FirstName 和 LastName,数据类型为 string(默认)

最后,ReceiveSchema 应如下所示:

  1. 按照上述步骤 2、3、4、5 创建 SendSchema.xsd,其中包含一个名为“FullName”的子字段元素。

创建映射

映射是 BizTalk 中的消息转换对象。架构 ReceiveSchemaSendSchema 之间的转换在此进行。映射在内部是 XSLT 转换。

让我们创建一个简单的映射

  1. 创建一个新映射,并将其命名为 ConcatenateMap.btm

  1. 创建的映射将包含“打开源架构”和“打开目标架构”的链接。

  1. 单击这些链接,然后选择源(ReceiveSchema.xsd)和目标架构(SendSchema.xsd)。

  1. 选择架构后,展开根节点以查看底层元素。

  1. 我们将执行一个简单的连接操作,将 FirstName 和 LastName(源架构)连接到 FullName(目标架构)。

  2. 拖放字符串连接函数。

函数(Functoids)是现成的逻辑函数,可用于在映射中转换数据。

您可以看到函数中的警告,因为没有提供输入/输出。

对于所有函数,都有一个描述,双击即可找到。

  1. 现在,将源架构中的 FirstName 和 LastName 元素链接到连接函数的左侧,并将结果(右侧)链接到输出架构的 FullName 元素。

  2. 请注意,函数警告符号已消失。

    正如之前所说,映射在内部是 XSLT……让我们看看这个映射是如何形成 XSLT 的。

    右键单击 ConcatenateMap.btm 并单击“验证映射”。

    如果您单击 XSLT 的输出链接:

    您将看到如下所示的 xslt:

    至此,我们已经完成了功能创建。但在部署之前,我们应该进行单元测试,现在我将跳过这一部分 J

创建输入消息的实例

  1. 要创建实例,请右键单击 ReceiveSchema.xsd 并选择“生成实例”。

    架构的实例将在指定位置生成。输出窗口将显示位置为:

C:\Users\<PC-Name>\AppData\Local\Temp\_SchemaData\ReceiveSchema_output.xml

  1. 打开实例文件。

  1. 由于“生成实例”默认的字段名称带有值,请根据需要进行更改。

  2. 在测试之前,请准备好此文件。

部署解决方案

我们完成了!开始部署解决方案 J

部署前步骤

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

  2. 在解决方案资源管理器中,右键单击 MessageOnlySln 项目并选择“属性”。

    在左侧窗格中导航到“签名”选项卡。

  3. 单击“对程序集签名”,然后选择一个强名称密钥文件,例如“新建”。

  4. 将文件名设置为“MessageOnlySlnKey”,然后取消选中“使用密码保护我的密钥文件”。

  5. 将在解决方案资源管理器中创建如下所示的新密钥:

  6. 现在转到“部署”选项卡。

  7. 现在,将应用程序名称创建为“MessageOnlyAppln”,该名称将用于在 BizTalk 管理控制台中创建应用程序。如果未指定此名称,则此解决方案将部署在默认应用程序(BizTalk Application 1)中。

    保存所有未保存的工件!

    部署

  8. 现在,右键单击解决方案资源管理器中的项目,然后选择“部署”。

  9. Visual Studio 左下角将显示“部署开始”文本。

  10. 稍后,“部署成功”。

  11. 在 BizTalk 管理控制台中,将创建名为 MessageOnlyAppln 的新应用程序。

    注意:如果出现错误:

    1. 请确保 BizTalk 的必要服务已启动并正在运行。

    2. 如果出现“访问被拒绝”错误,请以管理员身份重新启动 Visual Studio。

    3. 另外,请确保您没有遗漏上述任何步骤。

配置应用程序

部署后检查

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

配置接收端口/位置

端口是 BizTalk 中发布/订阅模型的数据源。所有消息都由 BizTalk 中的端口发布/订阅。

配置接收端口/位置

  1. 创建一个新的接收端口。

  2. 在“常规”选项卡中,将端口重命名为 InboundRcvPort

  3. 创建接收位置。

    在此窗口中单击“接收位置”,然后单击下图所示的“新建”。

  4. 按如下方式配置接收位置:

  5. 单击“配置”按钮,并提供 Inbound 文件夹的位置。

  6. 单击所有底层窗口上的“确定”。

  7. 确保接收位置如下所示:

配置发送端口

消息将被基于文件的接收适配器拾取 >> 然后传输到接收端口并传递到消息框。

现在,我们需要通过任何上下文属性(BTS.ReceivedFileName)订阅此传递的消息,以便应用出站映射。此处将在发送端口应用映射。

  1. 按如下方式创建一个发送端口:

  2. 单击“静态单向发送端口”,将其重命名为“OutboundSendPort”,并进行所有如下所示的配置。

  3. 单击“配置”按钮,并提供 Outbound 文件夹的位置。

在发送端口中配置映射

  1. 单击同一窗口左侧窗格中的“出站映射”。

  2. 选择如下所示的映射。

  3. 单击“应用”。

配置发送端口中的筛选器

筛选器是用于从消息框订阅消息的。

  1. 在同一窗口左侧窗格的“筛选器”选项卡中,选择上下文属性。

    从下拉列表中选择“BTS.ReceivedPortName”。

  2. 为属性提供值:“InboundRcvPort”。

  3. 您可以根据需要选择任何上下文属性(例如 BTS.MessageType)。

  4. 应用所有设置,然后单击所有窗口上的“确定”。

部署后任务

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

2. 确保主机实例 BizTalkServerApplication 已启动并正在运行。

测试解决方案

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

  1. 复制您在上一个任务中生成的实例文件。

  2. 将文件放在接收位置配置的 Inbound 文件夹中。

  1. 文件将立即被拾取,输出将被转换并放置在 output 文件夹中,文件名为唯一的 MessageID

  2. 输出文件将如下形成:

    太棒了!我们做到了 J解决方案按预期工作。

故障排除

  1. 如果文件未在发送文件夹中形成:

    1. 仔细检查配置的筛选器属性和值。

    2. 确保配置的发送位置有效。

  2. 有关更多帮助,请检查“挂起的服务实例”以获取确切问题。

通过这些,我们学习了如何在 BizTalk 中创建一个简单的仅消息解决方案。

希望这有帮助…!

© . All rights reserved.