Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Blank Response from External Web Service Call

karuna_gangireddy
Contributor
0 Kudos

Hi All,

I am having a scenario ABAP Proxy - SOAP integrating sales force with SAP ECC.

I created proxy from the .WSDL i got from sales force and also created logical port in SOAMANAGER.

When I manually trigger my ABAP Proxy I get back the web service response. The result is perfectly correct in SAP ECC under 'Original Response'.

- <n0:retrieveBinInfoResponse xmlns:n0="http://tempuri.org/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">

- <n0:retrieveBinInfoResult>

- <DocumentElement>

- <BinInfo>

<MATNR>XYZ</MATNR>

<ZLOC1>Line 1</ZLOC1>

<ZLOC2>AAA</ZLOC2>

<ZLOC3>BBB</ZLOC3>

<ZLOC4 xml:space="test"></ZLOC4>

</BinInfo>

</DocumentElement>

</n0:retrieveBinInfoResult>

</n0:retrieveBinInfoResponse>

        The Response tab shows:

         <n0:retrieveBinInfoResponse xmlns:n0="http://tempuri.org/" xmlns:prx="urn:sap.com:proxy:D01:/1SAI/TASEDA60C333A329897E97A:701:2009/02/10" />

         And if I call the method in an ABAP program, I am not getting any results. From what I see under Original Response tells me that the job is getting called properly, but  I am not able to see any results when trying to call.

         

         Please help me figure out what am I doing wrong.

        

         Thanks in advance,

          Karuna


 



1 ACCEPTED SOLUTION

Former Member
0 Kudos

Greetings,

Please check the below options.

  • Make sure that the id that you used at SOAMANGER exists in the 3rd party system as well and sufficient accesses are given to the id on the 3rd party system.
  • Make sure sufficient authorizations are provided to the id (typically a system id) at ECC. When you are executing the program manually then you are using the Dialog id. Try providing the similar access to the id configured at SOAMANAGER.
  • The 3rd party system will also have a Trace, so ask them to switch on the trace and execute the program. With this one, you will come to know whether the issue is at ECC system or 3rd party system.
  • You can also check the option of turning off the 3rd party server and check the exceptions. This way you will come to know whether the issue is in your program or not.

Happy coding!!!

Cheers

Naavy

7 REPLIES 7

PeterJonker
Active Contributor
0 Kudos

Well start with sharing some code how you are calling the webservice.

For example did you use try catch to handle errors for the webservice call ?

If yes did you receive an error, if no do that first.

Als you are calling an external webservice, can you ask the other party if they received a correct request ?

You can activate a trace in soamanager (full payload) run your program and then check what has been send really from your program and if anything came back. Maybe that give you a clue.

0 Kudos

Thank you for your quick reply.

*********************My Code******************************

    try.

*     instantiate the object reference

       if proxy_bin is not bound.

         create object proxy_tst

            exporting

              logical_port_name = 'DEFAULT'.

       endif.

*     there is one input value for this service call

       input-scan = '1932'.

*     call the method (web service call) you can use the pattern to generate the code if you wish

       call method proxy_tst->retrieve_info

         exporting

           input  = input

         importing

           output = output.

     catch cx_ai_system_fault into exc.

       msg = exc->get_text( ).

       write:/  msg.

   endtry.

******************************************

- I used try..catch, not receiving any errors.

- Did not try activating the trace in SOAMANAGER. Will try that.


Thanks again,

Karuna

0 Kudos

The trace shows successful.

Former Member
0 Kudos

Greetings,

Please check the below options.

  • Make sure that the id that you used at SOAMANGER exists in the 3rd party system as well and sufficient accesses are given to the id on the 3rd party system.
  • Make sure sufficient authorizations are provided to the id (typically a system id) at ECC. When you are executing the program manually then you are using the Dialog id. Try providing the similar access to the id configured at SOAMANAGER.
  • The 3rd party system will also have a Trace, so ask them to switch on the trace and execute the program. With this one, you will come to know whether the issue is at ECC system or 3rd party system.
  • You can also check the option of turning off the 3rd party server and check the exceptions. This way you will come to know whether the issue is in your program or not.

Happy coding!!!

Cheers

Naavy

0 Kudos

Thanks. I did check the user ID. It is using my UID in SOAMANAGER.

Thanks,

Karuna

0 Kudos

Greetings,

Ok, then try bullet point 3 in the above response, you should be able to crack it.

Happy coding!!!

Cheers

Naavy

0 Kudos

Hi All,

I was able to fix my issue. I asked the sales force team to revise the .WSDL with the structure for the output. Once i regenerated the PROXY with the new .WSDL everything worked.

Thanks everyone,

Karuna