Mapping Multiple Schemas
Most of the transformations in BizTalk are of a simple type wherein a source schema is transformed directly to the destination schema. Many times they use certain functoids to do minor processing during the transformations. However, sometimes you need to have multiple schemas converge into a single one or a single schema output two different messages or even multiple schemas generate multiple output messages.
Consider an example wherein you have a message that is an order request to the purchase department. As a company policy, every purchase has to be approved by the purchase manager before being sent to the supplier. In this case, after you get the purchase request, an approval message will be generated and sent to an approval system. The orchestration will wait for the approval and then correlate the approval response to the order request. Before raising it to the supplier, the orchestration will need to merge the two messages in order to send over the actual request to the supplier. This solution can be accomplished by using multiple transform shapes, but an easier way is using two different source messages.
|Figure 6. Mapping Multiple Schemas: The Transform configuration toolbox allows you to define multiple input and output schemas, thus easing complexities in the design and development of the orchestrations.|
BizTalk allows you to perform many-to-many message transformations by specifying multiple-source or destination schemas. However, this is possible only when the map is created within an orchestration by specifying more than one schema at the source or destination (see Figure 6). In this case, the Mapper shows the multiple schemas under one with different nodes, and the transformation can be performed as a regular one-to-one.
This helpful approach can be a good design consideration. It helps reduce the complexitiesand hence the processingduring the execution of the orchestration.
To Sum Up...
You can cater to most of the message transformations required for any business scenario by using the flexible and powerful tools provided by BizTalk 2004. A rich set of built-in functoids allows you to handle most of the requirements with ease. Custom functoids allow you the flexibility to unleash the power of .NET assemblies within the Mapper tool. Last but not the least, the ability to support many-to-many transformations helps ease the complexities that the orchestration would otherwise require.