If record exists then map, if not map another - Biztalk mapping

≯℡__Kan透↙ 提交于 2019-12-10 18:17:12

问题


Can someone help me with this? I have a biztalk mapping. In the source scheme there are two address records with address elements. Address record 1 always exists in the source scheme, but if address record 2 exists in the source I would like to map that to the destination instead of address record 1. Is that possible to do?


回答1:


These are the steps I would take to achieve this - it'll have to be a high level description of a solution as you haven't included any schema definition or Xml sample.

You can use XSLT or The Mapping Designer to do this. I describe the latter;

1) Use the Logical Existence Functoid to Check if the Address 2 node exists. It return True if Address 2 is present in your source schema.

2) Connect the Logical Existence functoid to a Value Mapping functoid (as the first input) and drag the Address 2 value to the same (as your second input).

3) Connect the Value Mapping Functoid to the Address Destination node.

4) Next, you need to cater for non-existent Address 2's. So, add a Logical Not functoid to your mapper surface.

5) Connect the Logical Not to you Logical Existence. This reads "Not Exists".

6) Connect your Logical Not to Another Value Mapping Functoid as the First input.

7) Connect your Address 1 value to the Value Mapping functoid as your second input.

8) Connect the Second Value Mapping to the Address Destination.

So, you should have two connections to the destination node but only one path with be true, resulting in one mapping.

Hope this gives you a guide on how to approach this. Shout if you need more help!

EDIT: Heres an illustration to help!

TJ



来源:https://stackoverflow.com/questions/18397351/if-record-exists-then-map-if-not-map-another-biztalk-mapping

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!