3

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

4

1 回答 1

13

这些是我将采取的步骤来实现这一点 - 它必须是解决方案的高级描述,因为您没有包含任何架构定义或 Xml 示例。

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

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

2) 将 functoid 连接Logical ExistenceValue Mappingfunctoid(作为第一个输入)并将地址 2 值拖动到相同的位置(作为第二个输入)。

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

4) 接下来,您需要处理不存在的地址 2。因此,将逻辑非仿函数添加到您的映射器表面。

5)连接Logical Not到你Logical Existence。这读作“不存在”。

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

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

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

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

希望这可以为您提供有关如何处理此问题的指南。如果您需要更多帮助,请大声喊叫!

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

在此处输入图像描述

TJ

于 2013-08-23T07:51:38.250 回答