Циклическое отображение Biztalk - PullRequest
0 голосов
/ 09 февраля 2019

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

<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 ]

0 голосов
/ 10 февраля 2019

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

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

0 голосов
/ 10 февраля 2019

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

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

...