ESB Toolkit Tip #11: Combine normal BizTalk processes with Itineraries via a MessageBox On-Ramp

In an environment where the Microsoft BizTalk ESB Toolkit is deployed, a BizTalk Receive Location responsible for receiving ESB-destined messages is referred to as an "On-Ramp." In the Receive Location you need to use one of the Pipelines provided as part of the Toolkit, and then correctly configure the components of that Pipeline to determine the Itinerary and link it to the message. So you can use almost any location outside BizTalk as an On-Ramp but what if you have for example a normal BizTalk process with Orchestrations and you want to sent a message from one of the Orchestrations to the MessageBox database and use an Itinerary to process that message? You can’t use Pipeline Components once a message is already in the MessageBox. Therefore you need to create custom code in .NET that has to be invoked in an Orchestration to perform the steps that are normally made inside the Pipeline.



The objects that are used in the Pipeline Components are not described on MSDN so Reflector is your best friend to figure out which objects need to be used and how to invoke them.

The following steps are necessary:

  • Create XSD schemas for the messages in BizTalk 
  • Create a Map to transform the inbound message to a message for the ESB
  • Create a Custom Component in .NET to set the context properties that are needed for the ESB Toolkit
    • In the custom component:
      • Resolve the itinerary from the Itinerary Store database
      • Determine the first Itinerary Service in the itinerary
      • Write the properties of the Itinerary Service as context properties on the message
      • Attach the itinerary to the message
  • Create an Orchestration to process the inbound message
    • In the Orchestration:
      • Receive the message
      • Use the Map to transform the inbound message
      • Set the ESB properties with the custom component
      • Create a Correlation Set to promote the context properties on the message
      • Send the ESB message to the MessageBox database with a Direct Port
  • Create an itinerary to process the ESB message


Execute Custom Component in Orchestration to set the context properties that are needed for the ESB Toolkit









See Also

For more information on creating a MessageBox On-Ramp see:

About the author

Tomasso Groenendijk lives in Netherlands and is a Solution Architect at Insight. He has over 17 years’ experience in software development and software design. Tomasso is specialized in application integration with a strong interest in the Windows Azure cloud platform. From 2014, Tomasso has been awarded four times with the Microsoft Azure MVP award. He is an active contributor to the integration community through his work on his blog, MSDN samples, TechNet Wiki and also speaking on events.

MVP profile Tomasso Groenendijk
Sentinet Product Specialist
BizTalk360 Product Specialist

Month List