Tuesday, November 13, 2012

Using Logical Existence functoid to remove empty node generation in BizTalk Mapper.


Generation of empty node in our XML is a common problem. We can halt the generation of empty nodes in BizTalk Mapper by the use of Logical Existence functiod.

Scenario :
                   Suppose we have to map the Customer's details. We have two records i.e. Customer (which contains header details) and Customer_Details (which contains details) in source schema. In destination schema we have three records i.e. Customer_Header, Customer_Details and ShippingAddress.

Now suppose that the source schema record Customer_Details is not mandatory so can be present or not, and it is mapped to Customer_Details and Address records of Destination Schema.
Now when the source schema record Customer_Details is not present then it creates the empty records.

Source Schema :














Destination Schema :












Input XML file without Customer_Details record :

<ns0:Customer_Data xmlns:ns0="http://Using_LogicalExistense.Customer_SourceSchema">
  <Customer>
    <CustomerID>21</CustomerID>
    <Customer_FName>Micheal</Customer_FName>
    <Customer_LName>Cole</Customer_LName>
  </Customer>
</ns0:Customer_Data>



Map without Logical existence :












Output after Test Map using above XML file :













In the above result Cusomer_Details and ShippingAddress are generating empty.Mapping the Logical Existence functiod to these records that are generating empty solves our problem.


Map after using logical existence functiod :












Result After Test Map and using Logical Existence :












What Logical Existence does ?

The logical functiod is used to determine whether the RecordField Element, or Field Attribute node that is linked to it exists in a particular input instance message. If functiod evaluates to true then destination schema node is generated otherwise not.


1 comment:

  1. Hey Hi Rahul....
    n thanx for the post ....
    and I also want to know about how SSIS...
    Can we trigger SSIS from Biztalk ?

    Sagar
    www.me-ensemblo.com

    ReplyDelete