The best reason to blog something is so that you can Google your own brain.

— Poorly paraphrased Scott Hanselman, yet so very true.

In that spirit, today I’m posting a reminder of a very useful trick for promoting

properties out of Orchestrations. Kudos go to Saravana

Kumar and David

Hurtadofor posting about this long before I did, but I record this information

here to make sure I can find it when next I need it.

Normally when you assign a value to a message context property from within an Orchestration,

that property is not promoted, even if it was promoted prior to you assigning a value

to it. In order to promote a property within an orchestration we use an “elegant

hack” as detailed below:

  1. Create a new Correlation Set, and as such likely a new Correlation Type, which contains

    the property or properties which you wish to promote.

  2. When you use a “Send” shape in your orchestration, there is a property called “Initializing

    Correlation Sets”, check off your new Correlation Set from the drop down on this property.

  3. Rejoice, you have now promoted those properties.

Now before anyone asks, no this does not create orphaned subscriptions in the Message

Box, we are never creating a Receive using this Correlation Set so

we’re never creating a subscription. This can be very useful, in particular

I’ve used it just this week on a 2006 R2 project I’m working on to enable batching

from an Orchestration. That is a long story, but the short version is we’re creating

a new message in the Orchestration which we then intend to immediately queue for batching,

so we need to promote these properties without ever having passed through a pipeline

with this message.