使用BizTalk 2006加入记录

时间:2009-04-17 08:06:04

标签: biztalk biztalk-2006

我有一个问题,我正试图用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的建议都将受到赞赏。

2 个答案:

答案 0 :(得分:0)

这听起来更像是一个ETL问题。我建议SSIS。我过去曾使用过BizTalk for ETL,它从未结束过。

答案 1 :(得分:0)

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

参见http://biztalkhotrod.com/Documents/BizTalk_HotRod_Issue6_Q2_2009.pdf的HotRod杂志2009年第二季刊 此问题还处理在BizTalk中使用自定义xslt的主题。