【问题标题】:how to use the BizTalk Flat File Mapping Wizard for nested repeating items?如何使用 BizTalk 平面文件映射向导进行嵌套重复项?
【发布时间】:2011-02-16 21:19:49
【问题描述】:

我有一个包含一些重复部分的平面文件,我很困惑如何通过 BT 平面文件映射向导创建架构。该文件如下所示:

001,bunch of data
002,bunch of data
006,bunch of data
006A,bunch of data
006B,bunch of data
006B,bunch of data
006,bunch of data
006A,bunch of data
006B,bunch of data

如您所见,006* 记录可以重复。我想要以如下所示的 XML 结尾:

<001Stuff>...</001Stuff>
<002Stuff>...</002Stuff>
<006Loop>
   <006Stuff>...</006Stuff>
   <006AStuff>...</006AStuff>
   <006BStuff>...</006BStuff>
   <006BStuff>...</006BStuff>
</006Loop>
<006Loop>
   <006Stuff>...</006Stuff>
   <006AStuff>...</006AStuff>
   <006BStuff>...</006BStuff>
</006Loop>

显然我不能只将第一组 006* 记录设置为“重复记录”而忽略第二组。我习惯于通过向导处理单个重复行(即在第一行之后的另一个 006 行),而不是像这样嵌套的东西 - 关于如何继续的任何建议?谢谢!

【问题讨论】:

    标签: biztalk


    【解决方案1】:

    使用平面文件架构向导非常困难,它可以帮助您的只有这么多。我似乎总是需要稍微调整一下它的输出。

    为了使事情变得更容易一些,我建议您应该将示例文档限制为整个 &lt;006&gt; 结构的一次出现。您不必使用平面文件架构向导为Ignored 设置很多行:

    001,bunch of data
    002,bunch of data
    006,bunch of data
    006A,bunch of data
    006B,bunch of data
    006B,bunch of data
    

    接下来,每个重复结构都应包装在 Xml 架构定义中的相应重复记录中。

    请注意,您始终可以在嵌套结构上递归运行平面文件架构向导,以获得更细粒度的控制。所以我建议,首先,使用包罗万象的重复 &lt;006&gt; 结构运行向导,如下所示:

    然后,您可以右键单击结构,并提供嵌套子结构的更详细定义,仅突出显示示例内容的子集,如下所示:

    然后,最重要的部分:对于两个重复结构,您需要将Child Order 属性调整为Conditional Default,因为只有一个空行您的文档文件的结尾,向导无法帮助您解决这种情况。

    作为参考,您生成的结构应如下所示:

    使用以下设置:

    • BunchOfStuff (Root):分隔,0x0D 0x0A,后缀。
    • _001Stuff:分隔,,,前缀,标签标识符001
    • _002Stuff:分隔,,,前缀,标签标识符002
    • _006Loop:分隔,0x0D 0x0A条件默认
    • _006Stuff:分隔,,,前缀,标签标识符006
    • _006AStuff:分隔,,,前缀,标签标识符006A
    • _006BLoop:分隔,0x0D 0x0A条件默认
    • _006BStuff:分隔,,,前缀,标签标识符006B

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      从第一个 006 的第一个开始,记录到第二个 006 的开始,记录为一条记录。定义 006 记录时,也将其设置为重复记录。这应该为每个 660 创建一个节点,为它下面的每个 600 创建一个组和节点。

      这就是我会尝试的。

      这是我工作 2 分钟后的输出。除了节点/元素名称,我认为这是您想要的。您仍然需要为数据中的每个字段创建单独的元素。

      <_x0030_01 xmlns="">001,一堆数据 <_x0030_02 xmlns="">002,一堆数据 <_x0030_06 xmlns=""><_x0030_06_child1>一堆数据 <_x0030_06_child2><_x0030_06_child2_child1>一组数据 <_x0030_06_child2><_x0030_06_child2_child1>B,一堆数据 <_x0030_06_child2><_x0030_06_child2_child1>B,一堆数据 <_x0030_06 xmlns=""><_x0030_06_child1>一堆数据 <_x0030_06_child2><_x0030_06_child2_child1>一组数据 <_x0030_06_child2><_x0030_06_child2_child1>B,一堆数据

      【讨论】:

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