如果记录存在则映射,如果不映射另一个 - Biztalk映射

时间:2013-08-23 07:36:55

标签: biztalk biztalk-mapper

有人可以帮我吗? 我有一个biztalk映射。在源方案中,有两个带地址元素的地址记录。 地址记录1始终存在于源方案中,但如果源地址中存在地址记录2,我想将其映射到目的地而不是地址记录1。 这可能吗?

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 NotLogical Existence联系起来。这写着“不存在”。

6)将您的Logical Not与另一个Value Mapping Functoid连接为第一个输入。

7)将您的地址1值连接到Value Mapping functoid作为您的第二个输入。

8)将第二个Value Mapping连接到地址目的地。

因此,您应该有两个到目标节点的连接,但只有一个路径为true,从而产生一个映射。

希望这能为您提供如何解决此问题的指南。如果您需要更多帮助,请大声喊叫!

编辑: 这是一个帮助的插图!

enter image description here

TJ