Biztalk循环functoid行为
早上好 我正在努力学习BizTalk,它正在做一些我不理解的事情 我正在输出员工地址的XML。循环functoid创建两个“通信”元素。我希望将“CountrySubsectionCode”作为两个元素中的子元素,但它们只出现一次:Biztalk循环functoid行为,biztalk,biztalk-mapper,Biztalk,Biztalk Mapper,早上好 我正在努力学习BizTalk,它正在做一些我不理解的事情 我正在输出员工地址的XML。循环functoid创建两个“通信”元素。我希望将“CountrySubsectionCode”作为两个元素中的子元素,但它们只出现一次: <ns0:Communication sequence="1"> <ns0:ChannelCode>Telephone</ns0:ChannelCode> <ns0:UseCode>Personal&l
<ns0:Communication sequence="1">
<ns0:ChannelCode>Telephone</ns0:ChannelCode>
<ns0:UseCode>Personal</ns0:UseCode>
<ns0:DialNumber>1234567890</ns0:DialNumber>
<ns0:Address>
<ns0:AddressLine sequence="1">1234 My St</ns0:AddressLine>
<ns0:CityName>Some City</ns0:CityName>
<ns0:CountrySubDivisionCode name="County">Jackson</ns0:CountrySubDivisionCode>
<ns0:CountrySubDivisionCode name="State">MO</ns0:CountrySubDivisionCode>
<ns0:CountryCode>US</ns0:CountryCode>
<ns0:PostalCode>14099</ns0:PostalCode>
</ns0:Address>
</ns0:Communication>
<ns0:Communication sequence="2">
<ns0:ChannelCode>Telephone</ns0:ChannelCode>
<ns0:UseCode>Business</ns0:UseCode>
<ns0:DialNumber>0987654321</ns0:DialNumber>
<ns0:Address>
<ns0:AddressLine sequence="1">1234 My St</ns0:AddressLine>
<ns0:CityName>Some City</ns0:CityName>
<ns0:CountryCode>US</ns0:CountryCode>
<ns0:PostalCode>14099</ns0:PostalCode>
</ns0:Address>
</ns0:Communication>
电话
个人的
1234567890
1234我的圣
某市
杰克逊
卫生官员
美国
14099
电话
生意
0987654321
1234我的圣
某市
美国
14099
输入是一个平面模式
对于带有电话号码的通信元件,有一个循环函数。它的输出是输出模式中的通信元素
还有另一个循环functoid,包含州和县的输入,它的输出是
输出架构中的CountrySubsectionCode元素
映射如何决定什么是输出,什么不是输出?它不输出吗
第二组,因为它们是重复的?我找到的所有教程
似乎是复制和粘贴版本的同一源材料和它的相当轻
谢谢验证映射(在解决方案资源管理器中右键单击)并单击visual studio输出窗口中的XSL链接。这是了解映射器正在做什么的最佳方法,因为您将看到生成的XSLT 我通过实验解决了这个问题。我相信循环functoid的工作原理如下:
- 它从每个输入创建一个输入值列表
- 它遍历列表,为每个输入创建一个输出。当它这样做时,它会删除(而不是空值或清空)其他输入
- 一旦列表用尽,就没有输出(列表为空)
迈克尔和穆西奥谢谢你们的帮助 BizTalk转换使用XSLT,从映射文件生成。它如何做到这一点不仅取决于映射文件中的functoid和链接,还取决于源模式和目标模式中的节点属性。您可以右键单击映射文件以选择Validate Map(生成XSLT以便可以查看它或将其用作自定义XSLT映射的基础)或选择Test Map(实际上转换一些输入,以便可以验证其结果)。请提供您所有的源/目标模式、一些输入和所需的输出,以及映射文件的屏幕截图?