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

BizTalk 映射 - 将多个模式映射到单个输出模式

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.50/5 (2投票s)

2015年3月6日

CPOL

3分钟阅读

viewsIcon

25140

downloadIcon

7

将来自多个模式的字段映射到单个输出模式的字段

引言

在 BizTalk 2010 中创建多对一映射并非易事。 无法通过使用菜单选项“添加 -> 新建项目 -> 映射”来简单地创建此类映射。 但解决此问题的方法是使用业务流程创建多对一映射。

代码

本节涵盖了随此提示附带的项目“BizTalk_2_to_1_Mapping”的详细信息。

一家小型保险公司只提供一种类型的保险。

需要将客户数据和他的/她的保险详细信息组合起来作为输出。

利率将根据客户是单个客户还是批量客户而有所不同。 应支付的保费将取决于单位保费和保费支付期限。

有两个输入模式。 第一个是 CustomerDetails.xml

第二个是 InsuranceDetails.xml

使用模式 CustomerInsuranceDetails.xml 格式化输出。

由于我们无法直接创建多对一映射,请添加新的业务流程。 传入的消息必须以某种方式关联,以便它们被业务流程的正确实例使用。 在这种情况下,我们使用属性“BTS.ReceivePortName”进行关联,假设每天每个文件只会出现一个文件。 请注意,这两条消息都在同一个逻辑端口上收到。

但是,在实际情况下,您应该使用某种对这两条消息都唯一的提升属性来创建消息之间的关联。

双击转换形状进行编辑。 选择“新建映射”选项。 在源消息选择下拉列表中,选择引用CustomerDetailInsuranceDetail 模式的消息。 在输出消息选择下拉列表中,选择引用CustomerInsuranceDetails 模式的消息。 从业务流程的转换形状创建映射允许您选择多个输入模式。

单击“确定”后,映射器将出现,其中包含新创建的映射,没有任何链接。 添加 functoid 和链接以实现所需的映射逻辑。

测试应用程序

  1. 对程序集进行签名
  2. 从 Visual Studio 构建并部署解决方案
  3. 在 BizTalk 管理控制台中配置。 创建一个接收端口,包含 2 个接收位置。 创建一个发送端口。 配置业务流程的主机和端口。 启动应用程序,重新启动主机。
  4. 生成客户和保险模式的 XML 实例,并将其放入相应的位置。 检查输出。

需要添加的内容

这只是一个参考文章。 在实际的开发环境中,您应该考虑添加异常处理、日志记录、模式验证、超时等。

注释

  1. 最好在解决方案下为业务流程、映射、模式、管道等维护单独的项目。 在这种情况下,使用业务流程创建的映射将在业务流程的项目中创建,并且命名空间也将与业务流程的命名空间相同。 因此,请记住将映射移动到映射项目并相应地更新命名空间。 在附带的代码中,由于只有一个项目,因此不需要此步骤。
  2. 如果在创建映射/转换后更改输入模式(以便映射中链接的 xpath 表达式将受到影响),则不会正确加载映射。 在这种情况下,不要重新创建整个映射,请在某个文本/代码编辑器中打开映射,找到并修复受影响的链接的 xpath 表达式。 不要忘记创建备份,因为小的错误可能会使转换无用。

此处重新加载模式不起作用,因为您只能重新加载一个模式。

历史

  • 2015 年 3 月 6 日:初始版本
© . All rights reserved.