g_eduard
g_eduard

Reputation: 79

BizTalk 2010 Map destination message show all nodes

I have a source schema with less elements than the destination schema. When I run the map only mapped elements in destination schema shows up. I want all the elements in destination schema to show up, even they are empty. How to do this?

Upvotes: 0

Views: 1478

Answers (2)

kletnoe
kletnoe

Reputation: 399

The most convenient way is to use Inline C# Scripting functoid for this.

Scripting functoid:

public string GetEmptyString()
{
    return System.String.Empty;
}

You can just link this functoid to all output nodes where you wish to see empty node.

Example:

Input schema:

<xs:schema xmlns="http://person" targetNamespace="http://person" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="Person">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Name" type="xs:string" />
                <xs:element name="Surname" type="xs:string" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

Output schema:

<xs:schema xmlns="http://employee" 
           targetNamespace="http://employee" 
           xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Employee">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="FirstName" type="xs:string" />
        <xs:element name="MidName" type="xs:string" />
        <xs:element name="LastName" type="xs:string" />
        <xs:element name="Age" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

Input message:

<ns0:Person xmlns:ns0="http://person">
  <Name>John</Name>
  <Surname>Snow</Surname>
</ns0:Person>

Expected output message:

<ns0:Employee xmlns:ns0="http://employee">
  <FirstName>John</FirstName> 
  <MidName /> 
  <LastName>Snow</LastName> 
  <Age /> 
</ns0:Employee>

Solution:

  • Link Person.Name to Employee.FirstName
  • Link Person.Surname to Employee.LastName
  • Create Scripting functoid that returns empty string
  • Link Scripting functoid to Employee.MidName
  • Link Scripting functoid to Employee.Age

Upvotes: 0

Marvin Smit
Marvin Smit

Reputation: 4108

Set the "Default Value" of the output schema. This will create empty nodes.

Upvotes: 1

Related Questions