none
Sending EDI message through WCF and receiving the EDI response. (EDISend pipeline error: Root element missing) RRS feed

  • Question

  • Hi,

    I am trying to send the EDI message in native form (string) to the biztalk through an orchestration exposed as WCF. The orchestration has a WCF adapter with request-response port. I have set the Receive Pipeline as EDIReceive and send pipeline as EDISend. I am creating the client proxy object and supplying the string to this WCF. Its receiving the message successfully and converts into the specified EDI schema (271), but when I am trying to send the response back to the response end, its throwing the error message "Root element missing". I tried creating another send port (EDISend) to send the output to a file, and its generating the file successfully at the specified location.

    Why its not sending the message through the EDISend pipeline on the WCF response port?

    Any kind of help will be highly appreciated.

    Thanks,
    Nilesh
    Tuesday, February 3, 2009 7:44 PM

All replies

  • EdiSend should create a message in EDI format. The error sounds like one when it is looking for an Xml message's root element. It sounds like the response is expecting an Xml formatted message.

    Thanks,
    If this answers your question, please use the "Answer" button to say so | Ben Cline
    Saturday, February 7, 2009 2:15 AM
    Moderator
  •  Thanks for the reply Ben.

    I noticed one more interesting thing. My orchestration has a break point on the receive shape. When it receives a message at the receive location (WCF Request-Response port) it immediately tries to send the response without completing the orchestration. At this moment the message to be sent out is Blank/Null and that causes the error "Root element missing".

    I am not clear that why the WCF port tries to send the response message immediately without processing it.

    Also if I look for the "Recent service instances" in HAT its showing following:

    ReceivePipeline (EDIReceive) - Complete
    SendPipeline (EDISend) - Started (at client side I have received the error "root element missing")
    Orchestration - Started (In breakpoint)
    Orchestration - Started (In breakpoint)

    Yes there are two instances of the orchestration shown in the HAT but only one in the Biztalk Administration tool. I am preety sure that I have sent only one request. Why its showing two orchestrations?

    Does any one have any idea why my orchestration (WCF request-Response port) is behaving this way?

    Thanks,
    Nilesh
    Saturday, February 7, 2009 7:15 PM
  • Nilesh,

    Did you find a solution for this? If so can you

    Thanks,

    varun

     

    Thursday, April 15, 2010 9:32 PM
  • Varun,

    We could not fid any solution so we opened a ticket with MS. They found that it was a problem with the acknowledge being sent to the caller and that caused the problem. They provided us a custom solution to discard this ack and send back only the expected EDI message.

    Hope this help.

    Nilesh

    Thursday, April 15, 2010 10:04 PM
  • Nilesh, Can you share your fix? We are facing the same exception! I am working on a total WCF solution for processing an EDI Message, Unfortunately on the way back the message is lost to the Response Port, I think the EDI Receive Piplines messes up some context properties on the inbound message.

     

    TIA

     

    Receive Location [WCF Custom], Receive has EDI Receive Pipeline and Send has EDI Send Pipeline
    Send Port [WCF Custom] Pass through on both recv/send


    SV
    Tuesday, June 8, 2010 12:56 PM
  • Have Look at  http://blog.tsathish.com/?p=101

    --Sathish

    Monday, September 20, 2010 12:22 AM
  • Hi,

     

    I have written awnser for this in the Below thread or you guys can follow the Satish Example which is a good example.

     

    http://social.msdn.microsoft.com/Forums/en-US/biztalkediandas2/thread/d43646c3-8fed-4c53-90d2-9025b64b447c

     

     

    Thanks...

    SPN.........


    Thanks... SPN
    Friday, October 8, 2010 1:40 AM