visual-studiobiztalkbiztalk-2013biztalk-mapper

BizTalk Mapping Fields to a Sequence


I am getting my hands on BizTalk and VS. My input schema looks something similar to this.

<root>
  <order>
    <orderid>
    <orderdate>
    ...
    ...

and the output schema

<order>
  <header:sequence>
    <element name="orderid">
    <element name="orderdate">
    ...
    ...
  </header:sequence>

In short, in output, the header is a sequence of complex types and individual nodes in the source are enumerated as the sequence in the output.

How do we solve this in Visual Studio?


Solution

  • What you need to do is having a looping functoid that goes from each of the element being mapped and to the repeating destination element. And then two links from the source elements the first that is a standard link Copy text value, the second that goes to the name attribute, for which you change the link to Copy name.

    enter image description here

    Input

    <root>
        <order>
            <orderid>1234567890</orderid>
            <orderdate>2020-01-28</orderdate>
        </order>
    </root>
    

    Output

    <order>
        <header>
            <element name="orderid">1234567890</element>
            <element name="orderdate">2020-01-28</element>
        </header>
    </order>
    

    Note: You can change the order of what is output by using the reorder inputs in the Configure Looping Functoid.