‘Thank you’ to all who attended last Thursday’s Twin Cities BizTalk User Group.  You can get the ‘Orchestration Concepts: Message Construction, Direct Binding and Configuration’ presentation here.  For those that were not at the presentation, note that the ‘Configuration’ section of this presentation focused on Orchestration Engine configuration and not configuration of applications running in BizTalk.


I packaged each demo’s source code into its own .zip file so they could be used as samples.   ‘Readme’ notes on how to setup the samples, ‘reproduce’ the demos and what to look at to get the most out of the samples can be found later in this post.


Here are links to the samples:

  • Calling Pipeline from Orchestration
  • Orchestration Engine Configuration
  • Partner (Port) Direct Binding (this sample uses the Inverse Partner Direct Binding pattern)
  • (Update) Partner (Port) Direct Binding for BizTalk 2004
  • Self-Correlated Direct Binding (this sample also used Message Box Direct Binding)
  • (Update) Self-Correlated Direct Binding for BTS 2004

Note that the source code and readme.txt files can be used only with BizTalk 2006 (Beta 2) although only the ‘Calling Pipeline from Orchestration’ functionality will not work in BizTalk 2004 as the functionality does not exist in that release.  If you are interested in 2004 samples request them through this blog.


If you would like more information on Direct Binding I suggest examining Charles Young’s Direct Binding article which you can fine here.  There is also information on Direct Binding in Matt Milner’s ‘BizTalk Server 2004: A Messaging Engine Overview’ article.



Sample’s ‘ReadMe’ Notes


Call Pipeline from Orchestration:

  • This sample shows how to call a send pipeline from an orchestration that aggregates two document messages into an envelope message.
  • Review the CallPipeline.odx orchestration.  This orchestration:

    • Aggregates to instances based on MyItem.xsd into and instance of MyEnvelope.xsd using a custom Send Pipeline.
    • Note the use of the Microsoft.XLANGs.Pipeline.SendPipelineInputMessages class to collect the item messages.
    • Note the use of the Microsoft.XLANGs.Pipeline.XLANGPipelineManager class to call the custom pipeline.

  • Create a Receive Port and Receive Location using the File Adapter and bind that port to the CallPipeline.odx’s logical Receive Port (the .zip file contains an ‘In’ directory that could be used for this.)
  • Create a Send Port using the File Adapter and bind that port to the CallPipeline.odx’s logical Send Port (the .zip file contains an ‘Out’ directory that could be used for this.)
  • Deploy the sample.
  • Start the orchestration and receive location and send port.
  • Copy and paste the ‘First MyItem.xml’ document into the Receive Location’s directory.
  • Examine the output in the Send Port’s output directory to see that it contains two MyItem.xsd instances (although they are identical) within the MyEnvelope.xsd instance.


Orchestration Engine Configuration: