Biztalk 循环 XML 到平面文件

Biztalk looping XML to flat file

我有一个如下所示的输入记录:

<employee>
    <empid>1234</empid>
    <name>John Smith</name>
    ...
    <benefit>
         <plan_name>HSA</plan_name>
         <effective_date>01-01-2015</effective_date>
    </benefit>
</employee>

我需要将其保存到 csv 文件中。到目前为止,一切都很好。现在有个问题,就是有些员工有多重福利。

<employee>
    <empid>1234</empid>
    <name>John Smith</name>
    ...
    <benefit>
         <plan_name>HSA</plan_name>
         <effective_date>01-01-2015</effective_date>
    </benefit>
    <benefit>
         <plan_name>Limited FSA</plan_name>
         <effective_date>01-01-2015</effective_date>
    </benefit>
</employee>

在这种情况下,生成的 CSV 文件需要换行以实现第二个好处。所有不是收益的字段都将在此行重复。我尝试了一个循环的 functoid 从源中的受益节点到目标的整个记录​​(作为一个工作的人,他做了我们大部分的 BizTalk 建议),但它没有为测试文件中的那些重复行有多重好处。我只为每个员工分配一条线。

我需要的:

1234,John Smith,...HSA,01-01-2015
1234,John Smith,...Limited FSA,01-01-2015

我得到的:

1234,John Smith,...HSA,01-01-2015

这应该很简单,我已经做过很多次了。

首先使用循环 Functoid 将 <benefit> 链接到 <theCSVRowWlement>

这将导致 Mapper 在 <benefit> 周围生成一个包含整个 CSV 记录的 for-each。