2015-02-25 2 views
0

У меня есть запись входа, которая выглядит следующим образом:Biztalk зацикливание XML в плоский файл

<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 должен иметь новую строку для второго преимущества. Все поля, которые не являются преимуществами, будут повторяться в этой строке. Я попробовал функцию looping functoid, идущую от узла выгоды в источнике до всей записи адресата (как парень на работе, который предлагает большую часть нашего BizTalk), но он не повторяет строку для тех, которые находятся в тестовом файле которые имеют много преимуществ. Я просто получаю одну строку для каждого сотрудника.

Что мне нужно:

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

Что я получаю:

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

ответ

1

Это должно быть довольно легко, я сделал это несколько раз.

Начните с ссылки <benefit> на <theCSVRowWlement> с помощью Looping Functoid.

Это приведет к тому, что Mapper будет генерировать для каждого около <benefit>, содержащего всю запись CSV.

+0

Я понятия не имею, почему он работал на этот раз, когда я делал это раньше, и каждый раз получал только 1 запись. Спасибо! –

Смежные вопросы