Biztalk交叉参考实施

时间:2014-03-19 11:29:22

标签: biztalk cross-reference biztalk2006r2 biztalk-mapper

我们遇到的情况是,源系统(性别)中的值需要映射到目标系统中的不同值。

示例值列表

  • 来源
    • 中号
    • ˚F
  • 目的地

这是一个非常有用的功能,结合数据库利用率,我们决定为所有列表值实现此功能。当我们尝试将其用于具有多个源值到单个目标值的值列表时,就会出现问题。

复杂值列表示例

  • 来源
    • 采纳母亲
    • 采纳父亲
    • 法定监护人
    • Step Mother
    • Step Father
  • 目的地
    • 收养母亲
    • 收养母亲
    • 其他

具有唯一键约束的系统错误阻止我们将合法的Guardian / Step Mother和Step Father映射到目标消息中的“Other”。我发现的所有示例都引用了简单的值列表,似乎没有引用上面提到的复杂值示例。有谁知道这是否可以通过交叉引用实现,或者这是我们必须为其创建一些自定义代码的东西。

1 个答案:

答案 0 :(得分:1)

使用值交叉引用(它是多对一映射)而不是ID交叉引用(它是一对一映射)。由于Value Cross Referencing使用缓存,您还可以获得性能优势。

请参阅下面引用的Difference between Value & Id Cross references(带有较小的拼写更正)。

  

我花了一些时间来了解“id”和“value”之间的区别   交叉引用,我能够得到以下几点我   想要分享。

     

在较高的层面上,这两个概念看起来很相似。但是他们   差别很小。

     

价值交叉参考

     
      
  1. 这些不能在运行时修改。

  2.   
  3. 这种情况发生在应用类型之间。

  4.   
  5. 此交叉引用通常在枚举字段之间。

  6.   
  7. 这使用缓存机制。在数据库发生任何更改后,我们必须重新启动相应的主机实例以查看更改。

  8.   
  9. 这是一个多对一的映射。

  10.   
  11. 只能在一个方向保证映射。

  12.   
  13. 如果要将它们用于映射到多个输入的值的反向映射,则存储在外部参照中的第一个值   提取表。

  14.   
  15. 允许以下映射。所以在这种情况下,反向映射可能不会给出预期的输出。

         

    Apple - Fruit

         

    香蕉 - 水果

         

    葡萄 - 水果

  16.   
  17. 我们必须使用GetCommonValue&地图中的GetApplicationValue functoid

  18.         

    Id交叉引用

         
        
    1. 这些可以在运行时设置。 Set Common functoid用于此目的。

    2.   
    3. 这种情况发生在appinstance类型之间。

    4.   
    5. 此交叉引用通常介于实体唯一标识符之间。

    6.   
    7. 在此,我们将为每次通话点击数据库。

    8.   
    9. 这是一对一的映射。

    10.   
    11. 两个方向都保证了映射。

    12.   
    13. 反向映射始终与初始映射同步。

    14.   
    15. 不允许上述映射,并且受Id交叉引用表的约束限制。

           

      Apple - Fruit

           

      香蕉 - 水果

           

      葡萄 - 水果

    16.   
    17. 我们必须使用GetCommonId&地图中的GetApplicationId functoid

    18.