Biztalk Maps
Wednesday 24 April 2013
Biztalk Maps: Samples for Biztalk Mapping Types( One to One and ...
Biztalk Maps: Samples for Biztalk Mapping Types( One to One and ...: This blog is helpful for BizTalk maps beginners. I would like to start my blog with types of mapping scenarios. For every mapping we f...
Wednesday 27 March 2013
Samples for Biztalk Mapping Types(Many to One and Many to Many)
Many-To-One Mapping:
In this Mapping, multiple elements
are mapped to single element.
In the above Example, Many address
elements are mapped to single address element. An Employee can have multiple
addresses like Permanent, Present, etc. In the Source Schema, Address elements
concatenated with 1 (EmpStreet1, EmpCity1, EmpState1, EmpPostalCode1 and EmpCountry1)
belongs to Permanent Address and Address elements concatenated with 2
(EmpStreet2, EmpCity2, EmpState2, EmpPostalCode2 and EmpCountry2) belongs to
Present Address. All these Permanent and
Present Address elements are mapped to the elements under Address node in the
destination schema using Table Looping and Table Extractor Functoids. For
Example, both Empstreet1 and EmpStreet2 of Source schema are mapped to the
element Street under Address node of destination schema.
Here String Concatenate Functoid is
used to hard code the values Permanent and Present.
Table Looping Functoid is as shown
below:
Explanation:
In the above image, the first
parameter is the Scoping link (EmployeeSource link), second parameter is the
number of columns required in the data grid (in our example, we need to map the
elements Type, Street, City, State, Country, Postal code. So number of columns
required = 6) and remaining are the Source inputs used for mapping.
Note: Label the links after mapping to Table
Looping Functoid. So that u can easily configure the columns in the Table
Looping Data grid.
After mapping our inputs to Table
Looping Functoid, We have to configure the Table Looping Data Grid by selecting
the input parameters as shown below:
To open Data Grid -> Right click
on Table Looping Functoid and select Configure Table Looping Grid
In the above image, Column 1 is
configured with Permanent and Present in two rows that indicate Address types;
Column 2 is configured with
EmpStreet1 and EmpStreet2,
Column 3 is configured with EmpCity1
and EmpCity2
Column 4 is configured with
EmpState1 and EmpState2
Column 5 is configured with
EmpPostalcode1 and EmpPostalcode2
Column 6 is configured with
EmpCountry1 and EmpCountry2
First Table Extractor Functoid is as
shown below:
This Functoid will extract the data
from the Table Looping Column.
In the above image, First parameter
is the Table Looping link and the second parameter is the table looping Column
number.
So for the remaining 5 Table
Extractor Functoids, need to give the second parameter as 2,3,4,5 and 6.
Many-To-Many Mapping:
Here an Employee can have multiple
Phone numbers like Work phone, Personal phone, Alternative phone, etc.
In our example, Phone Number is
mapping to multiple elements based on the Phone Number Type.
For Phone Number Type value checking
and mapping, i have used Logical Equal Functoids and Value Mapping Functoids.
To read multiple Phone Numbers Types
in input Source Message, i have used Looping Functoid.
Here the Looping Functoid is mapped
to three Phone Numbers (Workphone, Personal Phone and Alternate Phone Numbers)
in destination schema to check each type of Phone Number in input Source
Message for each Phone Number in destination schema.
The three Logical Equal Functoids
for three Phone Number Types are as shown below:
In
Logical Equal Functoid, if first parameter value equal to second value
then it returns true otherwise false.
The three Value Mapping Functoids to
check three Phone Number Types for mapping three different Phone Numbers are as
shown below:
In Value Mapping Functoid, if first
Parameter value is true the second parameter value is going to map otherwise
not.
The Input and Output messages
for the above mappings are shown below:
Input Source Message:
<ns0:EmployeeSource xmlns:ns0="http://SimpleMappingProject.EmpSource">
<EmpNo>1023</EmpNo>
<EmpFirstName>John</EmpFirstName>
<EmpMiddleName>k</EmpMiddleName>
<EmpLastName>Mackson</EmpLastName>
<EmpStreet1>Sixth street</EmpStreet1>
<EmpCity1>Bethel</EmpCity1>
<EmpState1>Alaska</EmpState1>
<EmpPostalcode1>99751</EmpPostalcode1>
<EmpCountry1>USA</EmpCountry1>
<EmpStreet2>Eighth Street</EmpStreet2>
<EmpCity2>Danville</EmpCity2>
<EmpState2>California</EmpState2>
<EmpPostalcode2>93270</EmpPostalcode2>
<EmpCountry2>USA</EmpCountry2>
<DateofJoining>1982-02-01</DateofJoining>
<PhoneNumber>
<Number>9852631470</Number>
<Type>WorkPhone</Type>
</PhoneNumber>
<PhoneNumber>
<Number>9358697413</Number>
<Type>AlternatePhone</Type>
</PhoneNumber>
<PhoneNumber>
<Number>9949546879</Number>
<Type>PersonalPhone</Type>
</PhoneNumber>
</ns0:EmployeeSource>
Output Message:
<ns0:EmployeeDestination xmlns:ns0="http://SimpleMappingProject.EmpDest">
<EmpNo>1023</EmpNo>
<Name>
<FirstName>John</FirstName>
<MiddleName>k</MiddleName>
<LastName>Mackson</LastName>
</Name>
<Address Type="Permanent">
<Street>Sixth street</Street>
<City>Bethel</City>
<State>Alaska</State>
<Country>USA</Country>
<Postalcode>99751</Postalcode>
</Address>
<Address Type="Present">
<Street>Eighth Street</Street>
<City>Danville</City>
<State>California</State>
<Country>USA</Country>
<Postalcode>93270</Postalcode>
</Address>
<DOJ>
<Year>1982</Year>
<Month>--05</Month>
<Day>---01</Day>
</DOJ>
<WorkPhoneNumber>9852631470</WorkPhoneNumber>
<PersonalPhoneNumber>9949546879</PersonalPhoneNumber>
<AlternatePhoneNumber>9358697413</AlternatePhoneNumber>
</ns0:EmployeeDestination>
Subscribe to:
Posts (Atom)