Циклическое отображение Biztalk

У меня есть входное сообщение с тремя сегментами, как это

<DDT>
 <NumeroDDT>PS-1713445</NumeroDDT> 
 <Date>2017-10-19</Date> 
 <NumeroLinea>2</NumeroLinea> 
</DDT>

Но я хочу отобразить линии (NumeroLinea) на основе значения в нем.
Таким образом, со значением 2, как здесь это должно стать

<DDT>
 <NumeroDDT>PS-1713445</NumeroDDT> 
 <Date>2017-10-19</Date> 
 <NumeroLinea>1</NumeroLinea>
 <NumeroLinea>2</NumeroLinea> 
</DDT>

Этакий счетчик строк.

Я сделал это с помощью встроенного xslt функтоида и жестко, как...
если 1 сделать одну строку
если 2 сделать две строки
и т.п.
Этого было бы достаточно с несколькими строками, но проблема в том, что это может быть много строк, более 300 и более, поэтому это плохое решение и не работает.

Есть ли у вас какие-либо идеи, как создать <NumeroLinea> Строки здесь на основе значения из входного сообщения? Я также попытался зациклить functoiods, но безуспешно.

Входная схема и выходная схема одинаковы.

2 ответа

Я думаю, что вам лучше использовать технику рекурсии, представленную в принятом Ответе здесь: XSLT Как сделать классическую петлю от x до y?

Делая это, вам не нужно изменять или дополнять свой ввод.

Нашел очень хорошее решение в блоге Seroter. Разделение значений с разделителями в BizTalk Maps

Я попробовал это, и это сработало хорошо. Все, что мне нужно сделать, это отделить мой входной узел с помощью канала, и это решение отлично работает.

Другие вопросы по тегам