BizTalk Server Orchestration - Message Splitting in Orchestration

This is Interesting: Free IT Magazines  
Home > Archive > BizTalk Server Orchestration > February 2005 > Message Splitting in Orchestration





You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

Author Message Splitting in Orchestration
Jeff Lynch

2005-02-17, 5:51 pm

I need to "split" an inbound message (in this case a single purchase order
with a header and multiple line items) into multiple messages based the
value of a field in each line item (such as requested ship date). The
desired output messages are copies of the inbound message containing all the
matching line items.

Can this be done in the orchestration itself or should I write a separate
..NET assembly which is called by the Orchestration?

--
Jeff Lynch
"A BizTalk Enthusiast"
http://codebetter.com/blogs/jeff.lynch/



Neal Walters

2005-02-17, 5:51 pm

See Stephen Thomas' most excellent blogs:

http://www.geekswithblogs.net/sthom...2/12/17373.aspx
and
http://www.geekswithblogs.com/sthom...8/22/10053.aspx

Neal Walters
http://Biztalk-Training.com - New SQL, FTP, HTTP, WebService Demos



Jeff Lynch

2005-02-17, 5:51 pm

I'm very familiar with Stephen's work but I ned to split the message based
upon a value in the message not just create a new message for each line
item. I'm wondering if there is a way to use XPath in an Expression to
create the "split" messages based upon a value in the message.

--
Jeff Lynch
"A BizTalk Enthusiast"
http://codebetter.com/blogs/jeff.lynch/


"Neal Walters" <NealWalters@discussions.microsoft.com> wrote in message
news:EE0755D6-912D-4169-BB76-5AA5379ED14D@microsoft.com...
> See Stephen Thomas' most excellent blogs:
>
> http://www.geekswithblogs.net/sthom...2/12/17373.aspx
> and
> http://www.geekswithblogs.com/sthom...8/22/10053.aspx
>
> Neal Walters
> http://Biztalk-Training.com - New SQL, FTP, HTTP, WebService Demos
>
>
>



Matt Milner

2005-02-18, 2:47 am

yes, you should be able to use an XPath query that has conditionals in it to
get all the nodes that match some criteria. You can also use a map with
some logical funtoids and possibly a looping functoid to copy,
conditionally, the nodes you want.

Matt


"Jeff Lynch" <jeff.lynch@houston-lynch.com> wrote in message
news:eDqrN2QFFHA.3732@TK2MSFTNGP14.phx.gbl...
> I'm very familiar with Stephen's work but I ned to split the message based
> upon a value in the message not just create a new message for each line
> item. I'm wondering if there is a way to use XPath in an Expression to
> create the "split" messages based upon a value in the message.
>
> --
> Jeff Lynch
> "A BizTalk Enthusiast"
> http://codebetter.com/blogs/jeff.lynch/
>
>
> "Neal Walters" <NealWalters@discussions.microsoft.com> wrote in message
> news:EE0755D6-912D-4169-BB76-5AA5379ED14D@microsoft.com...
>
>



Neal Walters

2005-02-20, 6:11 pm

We did one simple orchestration splitter because we getting frustrated trying
to make it work in the pipeline. It starts like this:

vXmlDoc = mAmazonOrderEnvelope;
vNodeList = vXmlDoc.DocumentElement.SelectNodes
("/AmazonEnvelope/Message/OrderReport");
vNumberMessages = vNodeList.Count;
vLoopCounter = 0;

Then we loop through each item in the NodeList, so the first shape in the
LOOP looks like this:

vNode = vNodeList.Item(vLoopCounter);
vNewXmlDoc.LoadXml(vNode.OuterXml);
mSingleOrder = vNewXmlDoc;

HOWEVER - use of the NodeList object required us to set the Transaction
Level to Atomic for the entire orchestration.

One nice thing about the orchestration, we also added a 10 second delay
between each individual order to help avoid deadlocks on our order database.
So if we receive 10 orders at once from Amazon, then they are spread over
about 2 minutes.

Neal Walters
http://Biztalk-Training.com - New SQL, FTP, HTTP, WebService Videos

Sponsored Links






Free braindumps | Software forum | Database administration forum

Copyright 2003 - 2008 webservertalk.com