I have read that it is possible to demote values from the message context back into the (xml)message. This can be done inside a send (xmltransmit) pipeline. Now I tried this using a simple example with an inbound.xml, an outbound.xml and a simple map.
In the inbound.xml are two elements fields, and in the outbound.xml, there is only one element field and an attribute field. I use a map, where i do not link any elements at all. Instead i set the value of both the element and the attribute to <empty> (in the outbound.xml) for i have read that this is the way to make demotion work.
In the schema for the outbound xml i use property promotion. To do that, it is possible to use a property schema, but i thought i just use the biztalk globalpropertyschemas (bts.system_properties). To just see if that works.
In the property fields tab i promoted the one element to the ReceivePortName and the attribute i promoted to the MessageType. After this i compiled the application, configurated the necessary receive location and send port (where i chose, xmltransmit), and i configured the outbound maps, with the inbound document, the map and the outbound document.
In the testing afterwards I noticed that, the property demotion works in the element type, in the outbound document i could see the receiveportname. However the attribute stayed empty, no matter what i tried. So i assumed it is impossible to demote to an schema-attribute. I could not find much documentation on the subject.
Is my conclusion right? Or am i doing something terribly wrong.
NB:
The reason that i would like to demote to an attribute is, that i use the sql server adapter in combination with a stored procedure to insert/update records in the database. The sql server wizard, which generated my schema, generated all parameters as attributes.