Biztalk映射循环

时间:2019-02-09 12:17:48

标签: biztalk biztalk-mapper

我有一条输入消息,分为三个部分

<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 functoid和硬编码来完成此操作。.
如果1条线
如果2行两行

用几行就可以了,但问题是它可以是多行,超过300条或更多,所以这是一个不好的解决方案,而且行不通。

您是否知道如何根据输入消息中的值生成<NumeroLinea>行? 我也尝试过循环函数,但是没有运气。

输入模式和输出模式相同。

2 个答案:

答案 0 :(得分:1)

我认为您最好使用此处接受的答案中提供的递归技术:XSLT How to do a classic for x to y loop?

这样做,您无需修改​​或填充您的输入。

答案 1 :(得分:0)

在Seroter的博客Splitting Delimited Values in BizTalk Maps

中找到了一个很好的解决方案

我尝试过,效果很好。我要做的就是用管道分隔输入节点,此解决方案可以正常工作。