When we use infopath or similar technologies with biztalk, the messages have always a xml processing header. Biztalk does not copy xml processing header to the output messages by default, so we have to set it manually.
There are several options in biztalk to manipulate xml header processing in output messages:
- Set the header in orchestration using the message context properties
Example
message(XMLNORM.ProcessingInstructionOption) = 0 (append) or 1 (create new);
message(XMLNORM.ProcessingInstruction) = “xml processing header to add or append”;
Important: For the demoting process to occur, you must use the Xml assembler component or xml transmit pipeline in the output send port.
- Use xml transmit pipeline or a custom pipeline with the xml assembler component in the output send port
When you use the xml transmit pipeline, you must set the following properties:
ProcessingInstructionsOptions – 0 (append) or 1 (create new)
XmlAsmProcessingInstructions – “xml processing header to add or append”
- Use a custom pipeline component
When you use a custom pipeline with xml assembler component, set the following properties:
Add Processing Instructions – Append or Create new
Add processing instructions text – “xml processing header to add or append”This option is the most difficult to implement, you have to create a custom assembler component, get and change the output message.
Do not forget to set the the biztalk maps property “copy processing instructions (pis)” to “yes” when you want to copy the processing instructions from the input to output messages.
I’d like to find out more? I’d care to find out some additional
information.