cancel
Showing results for 
Search instead for 
Did you mean: 

When testing consumer proxy - any caches to clear?

former_member188433
Participant
0 Kudos

Hi All - We are on ERP 740 with EHP7 and NW 7.42 kernel. We are configuring a consumer proxy scenario using SE80 and SOAMANAGER so that our ABAP system can consume a web service provided by a non-SAP system.  Frequent changes are being made to the web service.  Sometimes the web service provider asks if we can clear the cache on the SAP side.  I am not sure how to respond to this.  Can anyone advise on cache clearing methods for an ABAP system when dealing with web services?

Points provided for helpful responses.

Best Regards - Jeff

Accepted Solutions (1)

Accepted Solutions (1)

attila_mikulan
Employee
Employee
0 Kudos

Hi Jeff,

There is no such thing as clearing cache regarding WS. When dealing with an external service, first a Consumer Proxy is created in SE80 based on the WSDL. If the provider changes the service in a way, which results in a new WSDL, the proxy needs to be updated with the new WSDL, ie. regenerate it in SE80 or create a new one.

Steps to regenerate from the new WSDL: SE80 -> Edit mode -> Proxy -> Regenerate. Provide the new wsdl file. It might be necessary to recreate the runtime config in SOAMANAGER as well.

Hope this helps.

Cheers,

Attila

former_member188433
Participant
0 Kudos

Thanks Attila for your quick and helpful response.  We are currently testing consuming a web service using basic authentication.  Although we do not change anything on the SAP side (SE80 or soamanager), sometimes the web service call returns a 401 - Not Authorized.  The owners of the web service app say that they are not making any changes.  We are testing with an ABAP program.  Can you think of anything else that might cause this kind of strange behavior?
Best Regards - Jeff

attila_mikulan
Employee
Employee
0 Kudos

Hi Jeff,

I would check the payload traces in transaction SRT_UTIL and see, whether there is any difference between the requests sent by SAP. Look for the HTTP Header, there should be Basic authentication data there (Base64 encoded). If it's identical (most likely), the provider rejects this with 401 for no known reason by SAP. Ideas: user gets locked by someone else at the same time, or for other reasons, they need to figure this out.

If you don't see in those requests the auth. data in the HTTP Header, check if you used the same Logical Port for the call.

Also, check the Troubleshooting Guide for ABAP WS, it helps you find the root cause (how to trace, analyze traces, common problems, etc.): Troubleshooting Guide - Web Services ABAP - ABAP Connectivity - SCN Wiki

Cheers,

Attia

former_member188433
Participant
0 Kudos

Thanks Attila for the information - it has been extremely helpful for my project.

I am hoping that you could verify one additional thing:

When SAP consumes a web service and Basic authentication is used are the credentials sent in the first request to the web service host?
The reason I ask: 

In the SRT_UTIL payload trace screenshots below the HTTP header appears in the 2nd request. This has led the web server support team to guess that the first request does not include credentials so it gets a 401 response.  I believe that this is not true.  It would be most helpful if you can confirm that credentials are passed with the initial request to the hosting web service.

SRT_UTIL Screenshots

First Request: 

Second Request (note that the HTTP Header button appears here):

Thanks Again!  Jeff

attila_mikulan
Employee
Employee
0 Kudos

Hi Jeff,

Sure. In SRT_UTIL you should see for one call 2 Requests and 2 Responses, if the call is successful. The reason for this, is that the first Request entry shows the content of the ABAP types, while the second shows the soap:Envelope generated from this data and transformed into XML.

Vica versa, the first response is the soap:Envelope, the second is the data converted to ABAP types.

So the answer to your question, is yes, SAP sends the logon data with the first request. As you already pointed out, the first request doesn't have any HTTP header data (button is missing), since it's not an HTTP request. It can be useful, when the transformation doesn't work properly, so you can compare the actual soap:Envelope with the ABAP data.

Cheers,

Attila

former_member188433
Participant
0 Kudos

Thanks again Attila for the excellent guidance you have provided!

Cheers!  Jeff

Answers (0)