我对BizTalk很陌生,一直致力于解决方案,并且无法通过内置的functoid(循环,表循环等等)完成转换。
似乎可以使用Inline XSLT脚本轻松完成,我尝试获取编排错误可能是脚本出错了。
有人可以帮助我吗? 非常感谢 拉姆齐
这是地图: 我想转换数据如果Part_0 PolicyNumber = Part_1 PolicyNumber http://psrathoud.files.wordpress.com/2014/09/2014-09-09-08_43_37-map.jpg
及以下是脚本
<xsl:template name="ValidateTransactionData">
<!-- Loop MessagePart_0 -->
<xsl:for-each select="InputMessagePart_0/s1:MergedINTWAW_Root/Merged_DATA">
<!-- Create "Matching_DATA" record in the output message for each matching transaction-->
<Matched_DATA>
<xsl:variable name="s0_Source" select="Source"/>
<xsl:variable name="s0_Insured" select="Insured"/>
<xsl:variable name="s0_PremiumAmount" select="PremiumAmount"/>
<xsl:variable name="s0_LongPolicy" select="LongPolicyNumber"/>
<!-- Copy transaction details from InputMessagePart_0 to the output message-->
<Source>
<xsl:value-of select="Source" />
</Source>
<Insured>
<xsl:value-of select="Insured" />
</Insured>
<PremiumAmount>
<xsl:value-of select="PremiumAmount" />
</PremiumAmount>
<LongPolicyNumber>
<xsl:value-of select="LongPolicyNumber" />
</LongPolicyNumber >
<!-- Loop InputMessagePart_1 and validate matching long policy number -->
<xsl:for-each select="../../../InputMessagePart_1/s1:TAM_Root/TAM_DATA">
<xsl:if test="string(LongPolicyNumber)=$s0_LongPolicyNumber">
<Source><xsl:value-of select="Source" /></Source>
<Insured><xsl:value-of select="Insured" /></Insured>
<PremiumAmount><xsl:value-of select="PremiumAmount" /></PremiumAmount>
<LongPolicyNumber><xsl:value-of select="LongPolicyNumber" /></LongPolicyNumber >
</xsl:if>
</xsl:for-each >
<xsl:value-of select="./text()" />
</Matched_DATA >
<xsl:value-of select="./text()" />
</xsl:for-each>
<xsl:value-of select="./text()" />
</xsl:template >
&#13;