从BizTalk中的平面文件中删除标头

时间:2009-06-26 20:49:59

标签: biztalk

在BizTalk中从平面文件中删除标题行的最简单方法是什么?我已经通过为标题行创建一个单独的模式(以及一个用于主体的模式)来实现这一点,然后将“配置管道”对话框中的HeaderSpecName属性设置为我刚刚创建的标头模式,然后将PreserveHeader属性设置为false。然而,我的问题是,使用这个解决方案,我需要创建一个除了需要存在之外什么都不做的模式,这样我就可以删除标题行。

5 个答案:

答案 0 :(得分:3)

我相信你说的是推荐的做你要求的方式。我只是在我正在进行的项目中执行此操作并选择使用额外的架构。

另一种选择是为平面文件反汇编程序之前执行的反汇编阶段编写自己的custom pipeline component。解码阶段也会起作用,但似乎拆卸阶段是针对此类工作进行的。

第二个选项会使删除标题行更通用,并且可以在许多不同的模式中使用,因此您不必为每个平面文件模式创建单独的标头模式。

答案 1 :(得分:3)

我建议通过平面文件架构向导执行此操作;将您的第一条记录定义为单数记录,然后将其他记录定义为重复记录。然后在你正在使用的任何地图或转换中,你可以忽略标题记录。通过完全忽略它时,你也可以通过FF向导忽略标题记录,但我更喜欢在我的模式中定义所有内容......

查看帮助和微软教程,还有一篇关于代码项目的文章,它包含了识别标题记录。请注意,如果您知道标题记录的绝对位置(例如:“始终是第一行”),则无需弄乱记录标记。

http://www.codeproject.com/Articles/13706/Creating-Flat-File-schemas-using-the-BizTalk-Serve

答案 2 :(得分:2)

你总是可以解析标题行而不是映射它。

答案 3 :(得分:0)

架构存在的原因有很多。其中一个原因是捕获一方产生的消息结构,这有效地意味着协议。因此,即使您可能不使用这些字段,也可以捕获模式。

答案 4 :(得分:0)

我认为PreserveHeader不会像您期望的那样行事。此属性仅确定标头中的值是否被提升到反汇编程序中出现的XML消息的上下文中。