Uniform Sequential Convoys in BTS 2004 using Correlation

This orchestration is a small primer if you want to implement a "Sequential Convoy " with BizTalk 2004. You would want to do this if:

a) You have to force messages coming in at a particular port to correlate together and get processed by the same orchestration instance.
(Correlation with multiple ports is a topic of a subsequent post)
b) You want your output messages to be delivered in the same order that the orchestration got them.
c) Some pipeline components you use, take one message but give out multiple messages, but you want to process these multiple messages together. For eg: the HIPAA and HL7 disassembler components.

...and probably some more scenarios that I can't think of right now.

The attached orchestration correlates messages w.r.t ReceivedFileName (think about the HIPAA 835 scenario mentioned above). You can use whatever correlation parameters you desire.

TIP: Whatever properties you choose to correlate the incoming messages with, make sure that these properties are promoted when the message(s) reach the MessageBox. Since the RecievedFileName property is not promoted by default, I have also attached a pipeline component which promotes it before it reached the MessageBox.

You can get the source files here .

Any questions, lemme know. Cheers!


Comments

Anonymous said…
Nice, clear examples. Thanks. What about if two branches of a listen shape are each non-uniform sequential convoys (beginning with a activate-receive, init-corr). Branch 1 receives Message1, Message2, Message3, and Branch 2 receives Message2 and Message3. Is there a way to implement a uniform sequential convoy across the branches to prevent a new orch. instance being launched in the event that a Message2 is received that correlates with branch 1?
Devdutt said…
Well probably I didn't get your questions correctly, but why would you want to have a UNIFORM Seq Convoy and then have separate branches? Might it be because the messages are of different types? If thats the case, you should look at :
http://devdutt10.blogspot.com/2004/09/non-uniform-sequential-convoys-in-bts.html
Otherwise you could send me a mail at pyrogenic@hotmail.com, with a more detailed explanation of the question?
Anonymous said…
Could u pls let me know where u add the property promoter pipeline component in ur pipeline?
Devdutt said…
Theoretically speaking you could put the component in any of the 4 sections if you use the:
[ComponentCategory(CategoryTypes.CATID_Any)]
attribute for the component. But I'd suggest putting it in the Validate section because the assumption is that AFTER the Disassemble section, the message is more or less in the format that your orchestration subscribes to.
Anonymous said…
like tumbler and tipsy days hopefully we will remain in high spirits. well, good day

Popular posts from this blog

Sending Messages as FORM Variables with the HTTP Adapter

Using recursion in the In-line XSLT Template type Scripting Functoid