Route on MessageType property without schema deployed?

Home Page Forums BizTalk 2004 – BizTalk 2010 Route on MessageType property without schema deployed?

Viewing 1 reply thread
  • Author
    Posts
    • #15519

      Have you tried setting [b:8e84dd6ad9]Allow Unrecognised Message = true[/b:8e84dd6ad9] on the XmlDisassembler component.

      Should be able to set this using the per-instance pipeline configuration via the Admin Console or else create a custom pipeline with the Xml Disassembler component.

    • #15520

      I just did a quick test and it worked for me. The message type property is promoted, even if the schema is not deployed and I could set a filter on a send port to route the message based on message type

      Could your error be some sort of encoding problem with the test message

      • #15521

        I have not used cURL, but I suspect it may be using \”application/x-www-form-urlencoded” or “multipart/form-data\” encoding to send the message.

        The HTTP adapter just passes the raw message content to the pipeline.
        So if is not plain Xml then you will need to decode it.

        How are you expecting messages to be sent to the Http adapter. Is this internal where you have control over the sender or are you expecting external parties to send data.

        • #15522

          I have a small project I created to receive application/x-www-form-urlencoded messages on the HTTP Adapter. It uses a generic flat file schema and map.
          It may suit your purposes if your external partner is unable to change their end.
          Send me an email if you would like this.

          • #15523

            I need to pick up message belonging to different MessageTypes ([b:fc2d0968b1]Namespace#RootNodeName[/b:fc2d0968b1]) and route them to send ports. I know the message types but these message types don’t resolve to any schemas as I have not deployed the Schema assembly to the Biztalk server where the Receive Locations/Ports and Send Ports are set up.

            Will this work – I mean will Biztalk resolve the MessageType and find its subscriber even though it cannot find a matching schema?

            When Biztalk receives a message does it need to resolve the MessageType to a deployed schema or it can do routing just by inspecting a promoted property like the MessageType (should be sufficient, no – to just find a string match in the subscription filters and route based on that)?

            (There are some operational hassles in deploying the schema on an external box – this is main reason I have to be able to try this first)

            • #15524

              [i:413c99a8e1][b:413c99a8e1]Cool tip![/b:413c99a8e1][/i:413c99a8e1] Didnt know this one. But doesnt this mean the message is not recognized and therefore different MessageTypes dropped on this location won’t be routed correctly to different ports based on their subscription filters?

              [quote:413c99a8e1=\”greg.forsythe\”]Have you tried setting [b:413c99a8e1]Allow Unrecognised Message = true[/b:413c99a8e1] on the XmlDisassembler component.

              Should be able to set this using the per-instance pipeline configuration via the Admin Console or else create a custom pipeline with the Xml Disassembler component.[/quote:413c99a8e1]

              • #15525

                Tried this – I am getting \”[b:0d7effb04c]Failure executing receive pipeline…..No Disassemble Stage components can recognize the data[/b:0d7effb04c]\”

                • #15526

                  Greg – thanks for the extra effort. I am pretty sure you are right, the problem I suspect for me is this –

                  I have an HttpAdapter on the Receive Location. Now to post HTTP to this location I am using cURL – a command line utility to post HTTP quickly. cURL expects URL-Encoded data and something about this and the encoding is throwing this.

                  Do you know a better way to post message over HTTP?

                  [quote:037bea0ce7=\”greg.forsythe\”]I just did a quick test and it worked for me. The message type property is promoted, even if the schema is not deployed and I could set a filter on a send port to route the message based on message type

                  Could your error be some sort of encoding problem with the test message[/quote:037bea0ce7]

                  • #15527

                    [url=http://curl.haxx.se/docs/manpage.html]cURL[/url] does expect the data to be \”application/x-www-form-urlencoded”. I noticed that single quotes get passed in but the Http adapter does not decode double quotes (encoded with %22). So the HttpAdater does not do a URL Decoding!

                    Hence I guess the cURL way wont work. What is a quick efficient way to send test messages to an Http Adater?

                    The party sending the message is an external joint development partner so yes they will be amenable to listening if there are real concerns.

                    THANKS!

                    [quote:f89111f872=\”greg.forsythe\”]I have not used cURL, but I suspect it may be using \”application/x-www-form-urlencoded” or “multipart/form-data\” encoding to send the message.

                    The HTTP adapter just passes the raw message content to the pipeline.
                    So if is not plain Xml then you will need to decode it.

                    How are you expecting messages to be sent to the Http adapter. Is this internal where you have control over the sender or are you expecting external parties to send data.[/quote:f89111f872]

Viewing 1 reply thread
  • The forum ‘BizTalk 2004 – BizTalk 2010’ is closed to new topics and replies.