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.

 

Steps

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

 

 

 

 

 

 

 

 

 

See Also

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