有人可以帮我吗? 我有一个biztalk映射。在源方案中,有两个带地址元素的地址记录。 地址记录1始终存在于源方案中,但如果源地址中存在地址记录2,我想将其映射到目的地而不是地址记录1。 这可能吗?
答案 0 :(得分:11)
这些是我为实现这一目标而采取的步骤 - 它必须是解决方案的高级描述,因为您没有包含任何模式定义或Xml示例。
您可以使用XSLT或Mapping Designer来执行此操作。我描述后者;
1)使用Logical Existence
Functoid检查地址2节点是否存在。如果源模式中存在地址2,则返回True。
2)将Logical Existence
functoid连接到Value Mapping
functoid(作为第一个输入)并将Address 2值拖动到相同的位置(作为第二个输入)。
3)将Value Mapping
Functoid连接到地址目的地节点。
4)接下来,您需要迎合不存在的地址2。因此,在映射器表面添加一个Logical Not functoid。
5)将Logical Not
与Logical Existence
联系起来。这写着“不存在”。
6)将您的Logical Not
与另一个Value Mapping
Functoid连接为第一个输入。
7)将您的地址1值连接到Value Mapping
functoid作为您的第二个输入。
8)将第二个Value Mapping
连接到地址目的地。
因此,您应该有两个到目标节点的连接,但只有一个路径为true,从而产生一个映射。
希望这能为您提供如何解决此问题的指南。如果您需要更多帮助,请大声喊叫!
编辑: 这是一个帮助的插图!
TJ