Tallan's Technology Blog

Tallan's Top Technologists Share Their Thoughts on Today's Technology Challenges

BizTalk Property Schemas in Different Namespaces

Stan Kennedy

In BizTalk 2006 R2, I have noticed that sometimes the promoted property fields are not available.  This seemed to be a random occurance so I decided to spend a little time investigating.

Problem Scenario:
The property schema field will not show up in a Receive Shape filter. No matter how many times you build, rebuild, and close the solution it will not show up.  Just for kicks, I set the property schema field to “MessageContextPropertyBase” (the default is MessageDataPropertyBase). I then built the project and sure enough the property field now shows up.  Good right?  Wrong – This type is only used for property fields that are promoted that are NOT included in your message.  For example, if you had a custom pipeline that promoted a property not included in the message schema.  The MessageDataPropertyBase should be used for fields included in the message.

Ok, so I started looking into this further and decided to open up an orchestration that was working with the Receive Shape filter.  The property field used as the filter was in the same namespace as my orchestration’s message schema. The previous test that did not work used a message that was in a different BizTalk project than the property schema.

Cause:
A property schema used in a different BizTalk project will not be available in Receive Shape filters. This also applies to intellisense used in the expression shapes.  I am not sure if this a BizTalk bug or Microsoft intended this design.  It seems like a proper design to have one common property schema for the solution where fields are available across projects.

Resolution:
Create a property schema in each BizTalk schema project.

Hope this helps in your future development where the promoted property field is not available.

1 Comment. Leave new

Dmitriy Gitelman
June 8, 2010 9:10 pm

I had a similar situation. I have reusable property schemas in one project that needed to be used in a number of other projects. Although normally MessageDataPropertyBase is used to promote fields included in the message, MessageContextPropertyBase will work just fine – your field will be properly promoted in the pipeline by XLM Disassembler AND the property will be available in the orchestration (just add reference to property schema project).

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

\\\