BizTalk XSLT转换脚本嵌套循环

时间:2014-09-17 18:37:04

标签: xslt map transform biztalk

我对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;
&#13;
&#13;

0 个答案:

没有答案