我有一个输入消息,它有三个类似的段
<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生成两行
etc
如果只有几行就足够了,但问题是可能有很多行,超过300行或更多,所以这是一个糟糕的解决方案,不起作用。
你知道如何根据输入消息的值生成这里的<NumeroLinea>
行吗?我也尝试过循环函数,但没有成功。
输入模式和输出模式是相同的。
在Seroter的博客中找到了一个非常好的解决方案,即在BizTalk映射中拆分分隔值
我试过了,效果很好。我所要做的就是用一个管道来分隔我的输入节点,这个解决方案工作得很好。