【问题标题】:Append newline to flat-file schema in BizTalk 2006 R2在 BizTalk 2006 R2 中将换行符附加到平面文件架构
【发布时间】:2008-10-21 19:39:03
【问题描述】:

我有一个包含标题和详细记录的平面文件架构。它看起来像这样:

HDR**2401*XX0062484*22750***20081006000000*000*******
LIN**001*788-0538-001*4891-788538010*20000*EA**0000***

我需要在消息末尾附加两个空行。现在,如果我有多个记录,我会得到以下输出:

HDR**2401*XX0062484*22750***20081006000000*000*******
LIN**001*788-0538-001*4891-788538010*20000*EA**0000***
HDR**2401*XX0062484*22750***20081006000000*000*******
LIN**001*788-0538-001*4891-788538010*20000*EA**0000***

我希望看到的是这样的:

HDR**2401*XX0062484*22750***20081006000000*000*******
LIN**001*788-0538-001*4891-788538010*20000*EA**0000***


HDR**2401*XX0062484*22750***20081006000000*000*******
LIN**001*788-0538-001*4891-788538010*20000*EA**0000***

我可以构建一个自定义管道组件来执行此操作,但我想知道是否有更简单的方法来获得我需要的东西?

【问题讨论】:

    标签: schema biztalk flat-file biztalk2006r2


    【解决方案1】:

    您应该能够通过使用平面文件架构的分隔符属性来完成您想要的操作。

    根据您的示例文件,我创建了一个具有以下记录结构的架构:

    如果您单击架构的根节点,您应该会看到该根节点的属性列表。一个属性部分具有标题“平面文件”。在此平面文件部分中,您可以设置的前三个属性是子分隔符、子分隔符类型和子顺序。

    这是您配置架构以创建空行的位置(在本例中为 CR LF,但您可以根据需要设置不同的内容)对于您的示例,我设置以下内容:

    子分隔符:0x0D 0x0A 0x0D 0x0A 子分隔符类型:十六进制 子订单:中缀

    0x0D 0x0A 是一个回车换行,所以上面只是创建了两个空行,在根节点的每个子节点之间插入。

    然后, 的作用是确保每个标题及其行保持在一起。对于我设置的分隔符设置:

    子分隔符:0x0D 0x0A 子分隔符类型:十六进制 子订单:后缀

    记录随后包含消息行的实际架构定义,用星号分隔。

    此架构适用于在我看来您所要求的内容 - 这种平面文件架构及其解析文件的方式高度依赖于一些小细节,例如有哪些类型的换行符和如果文件末尾有换行符。

    使用分隔符的原则仍然有效,您可能会发现需要修改设置。

    【讨论】:

    • 大卫,我需要做类似的事情。你的解释对我有用。谢谢。
    【解决方案2】:

    对于任何关心的人,我终于屈服并编写了一个自定义管道组件来完成此任务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-16
      • 1970-01-01
      • 2017-04-04
      • 2016-04-02
      • 1970-01-01
      相关资源
      最近更新 更多