Ok, everyone wants a copy of the sample, so I’ve found somewhere to store files and it’s here
My sample is pretty straightforward, the PreProcessing orchestration retrieves all messages that haven't been processed, then marks the Message as being PreProcessed and pops it back into the MessageBox - you'd obviously do your work in-between these steps though.
There are two other orchestrations that retrieve messages that have been processed, and are of the appropriate MessageType for the orchestration (MessageType1 or MessageType2), all you have to do is deploy and bind the PreProcessing Orchestration to a port, a FILE port for example.
I’ve supplied two XML message files one has a MessageType of MessageType1 and the other MessageType2, these will be processed by different processing orchestrations.
Each of the processing orchestrations outputs some debug, which you can view using this tool from SysInternals to check that the message is routed to the right orchestration.
Remember, if you need to send the same message out or to another orchestration you'll have to update the ProcessingStatus field otherwise the ProcessingOrchestration will pick it up as well and you'll end up with a recursive loop.