What is the difference between promoting properties on a schema or on the property schema that was selected on the property schemas list for that schema? I discovered there is subtle difference as described below. I had the following property schema that is used by many schemas.
I had a incoming flat file message that arrives on a receive location and is disassembled in a custom pipeline. The custom pipeline contains a standard Flat file disassembler and custom pipeline component that promotes custom values to the BatchID, Status and the Source context properties. The incoming flat file message uses the following same property schema and only promotes a value to the MessageID property. It does not promote any fields to the BatchID, Status or Source properties.
If we enable tracking for MessageID on the message schema only and restart the tracking host, what do we see on the context of the message and what do we see in the BizTalk 2009 Administration Console.
If you suspend the message somehow after it has got to the message box you see all the custom promoted context properties.
If you track message events for the same message in the BizTalk Administration console (in BTS 2009+ or the HAT viewer in BTS2009-) the custom context properties are missing. This is what you would expect because you cannot mark these properties to be tracked on this schema.
Now what happens if you enable tracking on the property schema that contains the BatchID, Status and the Source context properties without restarting the tracking host and submit the same message again.
The custom promoted fields BatchID, Status and Source are now visible in the tracked message events. Magic happens!
What is more remarkable it that you do not have to restart the tracking host to pick up tracking changes on the property schema. The same thing does not apply if enable and disable tracking on message schemas because a host restart is always required.