1

我有一个问题正在尝试使用 BizTalk 解决,并希望您对解决它的最佳方法有一些想法。我正在使用平面文件适配器加载平面文件。此文件包含许多不同类型的记录。类型 1 记录是父记录。其余类型都使用各种外键链接到父记录。我正在寻找一种转换,它将获取通过加载平面文件(包含所有类型的记录)创建的消息并将其转换为消息,该消息是基于外键连接所有记录的结果。因此,结果消息中的每条记录都将包含来自所有记录类型的列,因为消息记录将是连接的结果。

例如,平面文件可能包含以下记录:

* Type1
* Type1
* Type2
* Type2
* Type3
* Type4
* Type4

转换后的消息可能包含如下记录:

* Type1 columns, type2 columns, type3 columns, type4 columns
* Type1 columns, type2 columns, type4 columns

我一直在研究实现这一目标的选项,但希望有些人可能对前进的道路提出建议。

我尝试过的事情是:

  • 将原始消息拆分为具有每种类型记录的消息,然后使用多源映射将它们连接起来。我很难做到这一点,因为我不确定要使用什么 functoid。
  • 将子记录插入 SQL 数据库,以便可以使用 SQL 查找 functoid 填充父记录中的其他列。这比我希望的要慢一些,并且具有使用数据库的额外依赖性。
  • 使用 DTS 加载文件,将其转换为格式并以合并格式写出文件以供 BizTalk 使用。这既简单又快速,但不使用 BizTalk。

任何有关如何继续充分利用 BizTalk 的建议将不胜感激。

4

2 回答 2

0

也许您可以尝试使用所谓的“Muenchian 方法”为映射编写自定义 xslt。这是一种使用 xslt 对 xml 输入进行排序的方法。在这种情况下,输入可能是 BizTalk 提供的平面文件的 xml 表示形式。

请参阅http://biztalkhotrod.com/Documents/BizTalk_HotRod_Issue6_Q2_2009.pdf上的 HotRod 杂志 2009 年第 2 季度问题。 该问题还涉及在 BizTalk 中使用自定义 xslt 的主题。

于 2009-05-07T09:46:52.337 回答
0

这听起来更像是一个 ETL 问题。我建议SSIS。我过去曾将 BizTalk 用于 ETL,但结果一直没有好。

于 2009-05-06T02:59:17.643 回答