This is a cool feature of BizTalk 2004!  It allows you to map many documents into one or map one document into many.  In either case, your inputs will not equal your outputs.  This type of mapping does require some up front planning and careful consideration.


 


First off, this type of mapping is only allowed inside the Orchestration.  Basically, what the mapper does is creates a kind of multi-part message for either the input, output, or both.  The parts of the multi-part message are the different input/output messages.  This allows the mapper to take in or produce multiple messages.


 


I have only been able to create these types of maps by creating new maps using the Transform Shape inside the Orchestration.  I have tried to manually create them, but I have not been able to create/replicate the multi message behavior.  Also, I have not been able to find the mystery schema that the Orchestration generates when creating these new maps.  Surely is has to be someplace…


 


How to create maps with multiple messages? 


1. Create Orchestration Messages inside your Orchestration.  Lets say Input1, Input2, Output2, and Output2.


2. Add a Transform Shape to your Orchestration.


3. Select Output1 and Output2 inside the Construct Shape as Constructed Messages.


4. Click on the Transform Shape.  It will look like the figure below.


 



 


5. Add the needed input message under Source and output messages under Destination.  Each messages needs to go on a new line inside the Transform Shape.  In this case, Input1 and Input2 are added to Source and Output1 and Output2 are added to Destination. 


6. Once completed, make sure the “Launch the BizTalk Mapped” is checked and hit OK.


7. The mapped will open and you will see multi messages on the Source and Destination.  These are nothing more then a new schema that includes the schemas from the input and output messages.  


 


Note: Be mindful of namespaces as I *think* they are required on all the multiple messages used by the new map.


 


The results would look something like this. 



 


8. Map as needed.


 


You can modify an existing map to use multi messages but it will break any existing links.  If you want to modify an existing map, it has to be in the same project in order to modify the map to allow multi messages.  This is done by opening up the Transform Shape and adding additional messages to a new line under Source or Destination.  Once modified, then it can be moved to another project. 


 


Note: Moving the map might mess up all the namespaces and references so manual editing of the XSLT may be required.  So be careful!  Moving the maps works best if all the schemas used inside the map are referenced from external schemas project.


 


Overall: Mapping with multi messages is an extremely powerful feature when used inside the Orchestration.  Although, it can be difficult to convert existing maps into maps that use multi messages.