Home Page › Forums › BizTalk 2004 – BizTalk 2010 › Message Routing Woes
- This topic has 6 replies, 1 voice, and was last updated 6 years, 10 months ago by
community-content.
-
AuthorPosts
-
-
February 28, 2006 at 1:24 AM #12992
The easiest way is to bind all orchestrations to the receive port that receives these messages. All orchestrations will receive the same message type.
In the receive shape filter of the Order orchestration you will need to add
YourPropertyNamespace.Subject=OrderIn your property schema you will need to set the Subject property’s Property Schema Base to MessageContextPropertyBase
If the property schema is not in the same project as the orchestration you will need to add the assembly containing the property schema as a reference to you orchestration project.You can also use direct binding on each orchestration, this may require a more complicated filter set up.
I have a similar project, although I have used a map to convert the name/value message into a tag based message rather than a custom pipeline component.-
February 28, 2006 at 6:46 PM #12993
I wrote a generic custom Xslt for mapping html form input from the HTTP Adapter. It also requires an extension Xml file for the System.Web.HttpUtility dll
[code:1:d1601e74ca]<?xml version=\"1.0\" encoding=\"UTF-16\"?>
<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\"
xmlns:msxsl=\"urn:schemas-microsoft-com:xslt\"
xmlns:var=\"http://schemas.microsoft.com/BizTalk/2003/var\"
xmlns:SystemWebHttpUtility=\"http://schemas.microsoft.com/BizTalk/2003/System.Web\"
xmlns:s0=\"urn:schemas-tkh-co-nz:htmlform-flatfile\"
xmlns:ns0=\"urn:schemas-tkh-co-nz:htmlform-xmldefault\"
exclude-result-prefixes=\"msxsl var s0 SystemWebHttpUtility\"
version=\"1.0\" >
<xsl:output omit-xml-declaration=\"yes\" version=\"1.0\" method=\"xml\" />
<xsl:template match=\"/\">
<xsl:element name=\"ns0:htmlform\">
<xsl:for-each select=\"//field[name != ‘Submit’]\">
<xsl:variable name=\"var:v1\" select=\"name\" />
<xsl:element name=\"{$var:v1}\">
<xsl:value-of select=\"SystemWebHttpUtility:UrlDecode(string(value))\"/>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:template>
</xsl:stylesheet>[/code:1:d1601e74ca]This map shows host to create a tag name from data using {$var:v1}. However I suspect your case is not so generic. This blog shows you how to use the Source Link property within the mapper to map name/value pairs.
[url]http://geekswithblogs.net/benny/archive/2006/02/06/68382.aspx[/url]
-
March 1, 2006 at 8:23 PM #12994
Rich,
Are you able to email me your project and some sample input data?-
February 27, 2006 at 11:19 PM #12995
Hi all…
I have a scenario where an application publishes XML messages to my Biztalk environment and although the messages contain different details, the structure, including the root name are the same. The messages are name/value pair based and each message has a ‘Subject’ node that tells me what to do with the message, i.e.:
<rootnode>
<header>
<details name=\”Subject\” value=\”Order\” />
….
</header>
</rootnode>In order to use promoted fields within my orchestrations, I have a pipeline component that transforms the incoming message to a tag based document, so the result of the pipeline is such:
<rootnode>
<header>
<Subject>\”Order\”</Subject>
….
</header>
</rootnode>Now, I’m new to message based routing, so I need to make sure the incoming document, after transformation, goes to my order processing orchestration, and not a different orchestration as the message root names are all the same.
I’ve read a bit on filters, but the appear to be at the send port level…so hopefully, if I’ve shared enough, what do I need to do to make sure my solutions work?
Thanks!
-Rich-
March 1, 2006 at 8:09 PM #12996
Still having problems…
Whether I use a pipeline or not, I cannot get my orchestrations to work.
Here’s the deal:
If I simply have an orch that receives and sends the message back out, and does nothing with the data, it works. The second I put in any type of logic in there to do something with the data, I get an error in HAT stating \”Error in accessing the part data or one of its fragments. The part or fragment may not exist in the database.\” So all of a sudden, BTS forgets that my schema was valid?In my orchestration, I call a .NET component that transforms the original name/value paired message to tags…this component returns the message to me as an XmlDocument which I have built a schema for to support the returned message. I am then supposed to run several processes with the transformed message in a happy world.
I don’t believe the error is pertaining to the new transformed message however, as the Service Class reporting the error in HAT is ‘Messaging’ rather than ‘Orchestration’.
Now, when this ‘works’, I will be receiving multiple messages sharing the same namespace/root node….I thought this would be easy with BTS 2004, turns out, I’m better off running manual code solutions so far.
Can anybody bring hope?
-Rich
-
March 1, 2006 at 11:26 PM #12997
[quote:72a62783c7=\”greg.forsythe\”]Rich,
Are you able to email me your project and some sample input data?[/quote:72a62783c7]I don’t even know where to begin as far as what to send you. I’m trying three different approaches, and I’m just not sure what’s the best path to take…I’ll build the basic of basics of what I’m trying to do…maybe that will at least get us somewhere. I’ll send it when I have it ready for you.
Thanks for the assistance.
-Rich
-
-
-
-
-
-
February 28, 2006 at 2:26 PM #12991
Thanks Greg,
Any chance you’d share the map with me as I’d rather not use the pipeline if I can help it.
Thanks for the reply, definitely makes sense…looks like I did dome overkill there.
-Rich
-
-
AuthorPosts
- The forum ‘BizTalk 2004 – BizTalk 2010’ is closed to new topics and replies.