Skip to Content
avatar image
Former Member

Web Service operation not in SOAP request

Hi There,

I have a problem with the SOAP receiver adapter.

I have created an external definition and uploaded a wsdl file. Several messages have been created out of the file.

In my mapping I fill the message structure from the wsdl file. When I send the message to the Web Service I get an error back.

The reason for this error seam to be a missing tag under the SOAP:Body element. Because when I create a SOAP request with the XMLSPY, it looks like this:

...

<SOAP:Body>

<m:setVendor xmlns:m="http://..." ...>

<ns8:v xmlns:ns8="http://...">

But in the message from the XI adapter the <m:setVendor..> tag is missing:

<SOAP:Body>

<ns8:v xmlns:ns8="http://...">

This m: tag seems to be the operation of the web service.

Has anybody an Idea how to solve this?

Is the error in the SOAP adapter or in the message definition?

By the way, can I display the complete SOAP message that has been sent out from the adapter with any XI tool (including SOAP header)?

BR,

Jürgen

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

4 Answers

  • avatar image
    Former Member
    Nov 23, 2005 at 11:25 AM

    Hi Jurgen,

    Sometimes the SOAP Request created out of XMLSPY has Message Interface tag instead of Message type.Just check that also..This might also create errors sometimes....

    Cheers

    Rashmi

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member Former Member

      Hello Jürgen!

      I have exactly the same problem in a RFC -> RFC Adapter -> XI -> SOAP Adapter -> Web Service scenario.

      When I imported the WSDL as an external definition and used it in the graphical message mapping the Web Service operation was missing.

      However, when I loaded the WSDL with the Web Service Test Tool of the SAP Web Application Server it generated a request message including the Web Service operation!

      I have opened an OSS message yesterday because I think this should also be possible in XI without having to change the WSDL or workarounds like additional XSLT mappings. I'll let you know once I get a response from OSS.

      Regards, Tanja

  • avatar image
    Former Member
    Dec 10, 2005 at 12:46 PM

    hi,Jürgen

    I want to acknowladge that the WDSL file as the external defination whether is provided by your business partner.

    would you like to tell me? i have the same problem.

    thanks

    Amanda

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member Former Member

      Hi all,

      First: Thanks a lot for your quick and helpful reply Tanja.

      Raj, like SOAP FAQ shows in Q: Can I convert an RPC styled WSDL to a document styled WSDL? So, we need to adjust the implementation of the code that binds the XML instance to some native object.

      In my case, I changed the mapping of request and response to call the correct web service method.

      So, using XSLT mapping you can do it ;o)

      Try to invoke web service trough an external tool, look at the soap request and find what tags are missing. In your XSLT mapping add these tags.

      It works for me :o)

      Cheers,

      Ricardo.

  • avatar image
    Former Member
    Dec 12, 2005 at 02:03 AM

    sorry, not WDSL,it is WSDL.

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    May 31, 2006 at 05:22 AM

    Jurgen

    I have exactly the same problem in a RFC -> RFC Adapter -> XI -> SOAP Adapter -> Web Service scenario.

    What we see is that the external vendor wants the SOAP to be in "documet-literal wrapped" whereas XI is returning is as "document literal".

    **I don't want to change the original wsdl file because it was provided by our business partner and a modification could cause problems when release update.

    But I have build a workaround with an XSL stylesheet as a second mapping step in my Interface Mapping. The stylesheet adds the missing operation tag into the XML message.**

    Even in our case we dont want to change wsdl, the operation & soap body are going as two parts we want the soap body in operation,i think this can be achieved by xsl stylesheet,Can u please brief us about xsl stylesheet as a second mapping step in interface maping.I dint work on xsl before......

    Advance thanx for ur help

    Sriram

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member

      Hi Sriram,

      I had this problem before in an identical scenario!

      I fix it using XSLT extension (ABAP Engine). All I did was following the steps provided in the Robert Eijpe weblog /people/r.eijpe/blog/2005/11/04/using-abap-xslt-extensions-for-xi-mapping

      In my case I didn’t need a second mapping, I did only one mapping between outbound and inbound interface.

      Follow this tutorial; it helps you 😉

      Cheers,

      Ricardo.