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

b77*_*777 3 biztalk biztalk-mapper

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

TJ *_*mas 12

这些是我为实现这一目标而采取的步骤 - 它必须是解决方案的高级描述,因为您没有包含任何模式定义或Xml示例.

您可以使用XSLT或Mapping Designer来执行此操作.我描述了后者;

1)使用Logical ExistenceFunctoid检查地址2节点是否存在.如果源架构中存在地址2,则返回True.

2)将Logical Existencefunctoid 连接到Value Mappingfunctoid(作为第一个输入)并将Address 2值拖动到相同的位置(作为第二个输入).

3)将Value MappingFunctoid 连接到Address Destination节点.

4)接下来,您需要迎合不存在的地址2.因此,在映射器表面添加一个Logical Not functoid.

5)连接Logical Not到你Logical Existence.这写着"不存在".

6)将您Logical Not的另一个Value MappingFunctoid 连接为第一个输入.

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

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

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

希望这能为您提供如何处理此问题的指导.如果您需要更多帮助,请大喊!

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

在此输入图像描述

TJ

  • 嘿b777,如果这回答了你的问题,请"勾选"答案,这样我们就知道这是正确的,而且teepeeboy在Rep积分中获得认可. (4认同)