如何:使用业务规则策略动态路由基于消息上下文的消息

目标

本部分演示如何使用BizTalk Server业务规则引擎 (BRE) 策略创建基于消息上下文属性确定消息终结点的行程,然后使用 BizTalk Server FILE 适配器路由消息。

在本操作方法主题中,你将完成以下步骤:

  • 创建业务规则策略以评估消息类型。

  • 创建行程路由单,以使用业务规则策略动态路由。

  • 使用行程测试客户端示例应用程序测试行程。

必备条件

本操作方法主题中的过程需要完成 开发活动的先决条件

步骤

创建 BRE 策略以使用消息上下文属性路由消息

  1. 单击任务栏上的“开始”,指向“所有程序”,指向“BizTalk Server”,然后单击“业务规则编辑器”。

  2. 在策略资源管理器中,右键单击“ 策略”,然后单击“ 添加新策略”。 将策略命名 为 RouteBasedOnMessageType

    为北美订单添加路由规则

  3. RouteBasedOnMessageType 策略中,右键单击“ 版本 1.0 (未保存) ”,然后单击“ 添加新规则”。 将规则命名 为 SetNAOrderEndpoint

  4. 在“规则”窗口中,右键单击“ 条件”,指向 “谓词”,然后单击“ 相等”。

  5. 在“事实资源管理器”中,展开 ESB。ContextInfo 词汇表,展开“版本 1.0”,然后将“上下文消息类型”事实拖到“条件”下的 argument1 节点。

    注意

    Microsoft BizTalk ESB 工具包包含多个可用于创建规则的词汇。 其中一些应该用你自己的词汇替换或扩充。 例如, DynamicRunTimeMaptypes 策略具有 GlobalBank 示例中提供的地图的定义。

  6. 单击 argument2 节点,然后键入 http://globalbank.esb.dynamicresolution.com/northamericanservices/#OrderDoc

  7. 在“事实资源管理器”中,展开 ESB。EndPointInfo 词汇表,展开“版本 1.0”,然后将“设置终结点出站传输位置”定义拖动到“操作”。

  8. 单击 <空字符串>,然后键入 C:\HowTos\Out\NorthAmerica%MessageID%.xml

  9. 从事实资源管理器中,将“设置终结点出站传输类型”定义拖动到“操作”。

  10. 在“事实资源管理器”中,展开 ESB。TansportTypes 词汇表,展开 版本 1.0,然后将 适配器提供程序 定义拖到 <空字符串>

  11. 在“操作”窗格中,展开“ 适配器提供程序” 下拉列表,然后单击“ 文件”。

    发布和部署策略

  12. 在策略资源管理器的 RouteBasedOnMessageType 策略下,右键单击“ 版本 1.0 (未保存) ”,然后单击“ 发布”。

  13. 在策略资源管理器的 RouteBasedOnMessageType 策略下,右键单击 “版本 1.0 - 已发布”,然后单击“ 部署”。

    创建 ESB 行程域特定语言 (DSL) 模型

  14. 在 Visual Studio 中,打开 C:\HowTos\Patterns\Patterns.sln。

  15. 在“解决方案资源管理器”中,右键单击“行程库”项目,指向“添加”,然后单击“新建行程”。

  16. 在“ 名称 ”框中,键入 MessageType,然后单击“ 添加”。

    配置行程的属性

  17. 在 Visual Studio 中,单击 MessageType.行程的设计图面。 在 MessageType 属性窗口中,配置以下属性:

    1. “模型导出程序 ”下拉列表中,单击“ XML 行程导出程序”。

    2. “扩展程序设置” 部分的 “行程 XML 文件 ”属性旁边,单击省略号按钮 (...) 。

    3. “选择 XML 文件 ”对话框的“ 文件名 ”框中,键入 C:\HowTos\Itineraries\MessageType,然后单击“ 保存”。

      注意

      此步骤使你能够将行程作为 XML 导出到本地文件位置。 通过将行程导出到本地文件位置(而不是行程数据库),可以使用 ESB 测试客户端应用程序测试行程。 稍后将在此操作说明主题中完成此过程。

    定义行程的结构

  18. 从工具箱中,将 On-Ramp 模型元素拖到设计图面。 在 OnRamp1 属性窗口中,配置以下属性:

    1. 单击 Name 属性,然后键入 ReceiveOrders

    2. “扩展程序 ”下拉列表中,单击“ On-Ramp ESB 扩展程序”。

    3. BizTalk 应用程序 下拉列表中,单击“ Microsoft.Practices.ESB”。

    4. “接收端口”下拉列表中,单击“OnRamp.行程”。

  19. 从“工具箱”中,将 “行程服务 ”模型元素拖到设计图面,然后将其放置在 On-Ramp 模型元素的右侧。 在“行程服务1”属性窗口中,配置以下属性:

    1. 单击 “名称” 属性,然后键入 “BreRoute”。

    2. “行程服务扩展程序 ”下拉列表中,单击“ 消息扩展程序”。

      注意

      此属性定义该过程将在管道中发生, (消息传递) 。 或者,如果进程将在业务流程中发生,请将 “行程服务扩展程序 ”属性设置为 Orchestration Extender

    3. “容器 ”下拉列表中,展开“ ReceiveOrders”,然后单击“ 接收处理程序”。

    4. “服务名称” 下拉列表中,单击“ Microsoft.Practices.ESB.Services.Routing”。

  20. 右键单击 BreRoute 模型元素的 Resolver 集合,然后单击“添加新冲突解决程序”。 在 Resolver1 属性窗口中,配置以下属性:

    1. 单击 “名称” 属性,然后键入 “ByMessageType”。

    2. “冲突解决程序实现 ”下拉列表中,单击“ Bre Resolver Extension”。

    3. “策略” 下拉列表中,单击“ RouteBasedOnMessageType v 1.0”。

  21. 在“工具箱”中,单击“ 连接器”。 将连接从 ReceiveOrders 模型元素拖到 BreRoute 模型元素。

  22. 从工具箱中,将 Off-Ramp 模型元素拖到设计图面,然后将其放置在 BreRoute 模型元素的右侧。 在 OffRamp1 属性窗口中,配置以下属性:

    1. 单击 “名称” 属性,然后键入 SendBasedOnType

    2. “扩展程序 ”下拉列表中,单击“ Off-Ramp ESB Extender”。

    3. BizTalk 应用程序 下拉列表中,单击“ GlobalBank.ESB”。

    4. “发送端口 ”下拉列表中,单击“ DynamicResolutionOneWay”。

  23. 从工具箱中,将 行程服务 模型元素拖到设计图面,然后将其放置在 BreRoute 模型元素和 SendBasedOnType 模型元素之间。 在“行程服务1”属性窗口中,配置以下属性:

    1. 单击“ 名称” 属性,然后键入 SendPortFilter

    2. “行程服务扩展程序 ”下拉列表中,单击“ 偏离坡道扩展程序”。

    3. “Off-Ramp ”下拉列表中,展开 “SendBasedOnType”,然后单击“ 发送处理程序”。

  24. 在“工具箱”中,单击“ 连接器”。 将连接从 BreRoute 模型元素拖到 SendPortFilter 模型元素。

  25. 在“工具箱”中,单击“ 连接器”。 将连接从 SendPortFilter 模型元素拖到 SendBasedOnType 模型元素。

    导出模型以用于行程测试客户端

  26. 在 Visual Studio 中,右键单击 MessageType 行程的设计图面,然后单击“ 导出模型”。

    注意

    行程的 XML 版本将在 Visual Studio 中打开。

  27. 保存所有项目项目。

  28. 在 Windows 资源管理器中,浏览到 C:\HowTos\行程,并注意到创建行程 XML (MessageType.xml) 。

    测试行程

  29. 使用 在开发活动的先决条件 (C:\HowTos\ESB.Itinerary.Test.exe - 快捷方式) 中创建的快捷方式打开行程测试客户端示例应用程序。

  30. 在“行程测试客户端”中,清除“使用 WCF 服务检查”框,然后单击“加载行程”。

  31. 在“ 打开行程文件 ”对话框中,浏览到 C:\HowTos\行程。 选择 “MessageType.xml”,然后单击“ 打开 ”以加载行程。

  32. 单击 “确定” 清除“ 已成功加载行程” 消息。

  33. 在“行程测试客户端”中,单击“ 加载消息 ”框旁边的省略号按钮 (...) 。

  34. “选择要加载的 XML 文档 ”对话框中,浏览到 C:\HowTos。 选择 “NAOrderDoc.xml”,然后单击“ 打开 ”以加载测试消息。

  35. 单击“ 提交请求” 按钮。 测试完成后,单击“ 确定 ”关闭出现的确认。

  36. 在 Windows 资源管理器中,浏览到 C:\HowTos\Out\。 验证 NorthAmerica%MessageID%.xml 消息是否已写入目录。

其他资源

有关详细信息,请参阅下列相关主题: