cancel
Showing results for 
Search instead for 
Did you mean: 

Problem with WSDL-Document for SAP-Webservices in SOAManager

Former Member
0 Kudos

Hello everybody,

I want to create an SAP Webservice. I already created a function module. In SE80 a right click on the mouse and then Creating a Webservice. I did thes procedure, everything worked because I find my Service in the SOAManager.

But for my Webservice I need the WSDL-Document with the URL. But I cannot open it. After that I created my own Binding but this Binding i cannot activate.

Can somebody help me. I don't know what to do.

Thanks a lot, all the best,

Marcel

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hello everybody,

Thanks a lot for all your answers.

At first...my function module is easy, it's only for testing. I have two parameters which I sum and in the End there is the result. I have no tables or changigs as response.

@ Peter Jonker: I already deleted the comments (< !-OPTIONAL->).

Which scenario I use:

1. Transport Guarantee: None , Authentication: user/password (attachment 1)

SoapUI says in the Response that my authorization is denied 😕 (attachment2)

2. Transport Gurantee: asym Binding, changed nothing more.

Here I get an Error when I want to save this config. (attachment 3) It's German, in translation: STR Framework Exception. The Confi is invalid. Invalid cardinality "AuthenticationMethod". Can i solve this Error?

It's a Problem with the STR Framework, isn't it? 😕

Thanks a lot, you help me very much.

All the best from Germany, Marcel

former_member184681
Active Contributor
0 Kudos

Dear Marcel,

It looks like an authorization issue. Add the SAP_BC_WEBSERVICE_SERVICE_USER authorization role to the user that you provided in SOAMANAGER to authenticate web service calls. It should work fine after that.

Hope this helps,
Greg

Former Member
0 Kudos

I get the same errors...once when I want to create the service with the asym transport and when I use "none" I get it in soapUI 😕

former_member184681
Active Contributor
0 Kudos

I'm not sure if I understood you correctly now. The point is, you have to type user credentials somewhere: either it is SOAMANAGER, or the Aut tab of SOAP UI (and some place in the sender system, once you use a "real" one in place of SOAP UI).

Greg

Former Member
0 Kudos

When I open the SOAMANAGER I have to type my username and my password of SAP, that's right, yes. The same I have to type in the Aut of soapUI.

And I have to type it when I give the soapUI tool my wsdl-link. Do I forget something?

Thanks Greg for your help!!

Edit: I found this Thread and will test it :

former_member184681
Active Contributor
0 Kudos

In fact, these are alternatives. It is enough to provide user credentials in one of the following: SOAMANAGER or SOAP UI. In the first case, choose "Keine Authentifizierung" and provide username and password below. Make sure that SOAMANAGER shows no error when you save the configuration (the error is shown on top of the window, it is easy not to notice it).

Alternatively, leave the "Benutzer-ID/Kennwort" marked and provide SAP username and password in SOAP UI.

Regards,
Greg

Former Member
0 Kudos

I added the S_SERVICE authority object to my user profile.

I'm using transport gurantee none and user/password, know I get a response but my result is zero...but my function module is working in the ecc...there I say 200 + 400 --> result = 600.

In my Webservice the result is 0.

But thanks a lot for your help, I hope I didn't nerved you. If you have an idea why the webservice gives me as response 0, I would be glad. Otherwise have a nice day

My function module is easy, if you want, take a look to the attachment.

All parameters are defined as integer.

former_member184681
Active Contributor
0 Kudos

Dear Marcel,

No problem, I'm glad to help . The fast thing: make sure to use correct numbers, that are not too big for INT variable and do not contain any decimal separator or other incorrect characters.

If this is satisfied, there is one more thing you can do: log on to backend system, go to se37 and display your function module, then choose Utilities -> Settings from the top menu. Go to ABAP Editor tab page and Debugging sub-tab page, and enter your technical user in the Users field. Confirm and place an external breakpoint (this one: ) in the code. Then test the web service again from SOAP UI, and an external debugging session will be called for you where you will be able to debug your function module to locate the source of the error. Make sure you place the break point in the same system client that is called by the web service.

Hope this helps,
Greg

Former Member
0 Kudos

Dear Greg,

I already did it. I set the breakpoint to the point where ev_result = iv_a + iv_b. I filled the two parameters with the value 1 in sopaUI. Between the request in soapUI and my breakpoint something happens because on the breakpoint both parameters have the value 0. Not the value 1 I filled in soapUI. But why?

I found another error.

In my xml-file of the wsdl-link there is the soap:adress location. When I enter this url in my browser I get there an error of STR. SRT: Wrong Content-Type and empty HTTP-Body received: ("HTTP Code 200  : OK")

I don't know what to do 😕 so difficult.

former_member184681
Active Contributor
0 Kudos

Difficult? Not at all . I have just quickly created a scenario that is identical to yours and it works fine. I think now its time to ask: did you generate the .wsdl file from your web service (after you created an endpoint in SOAMANAGER)? And is your SOAP UI request generated from this .wsdl file? Otherwise, your input parameters could disappear like you say.

Also, compare your request with the following, including namespaces:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:sap-com:document:sap:soap:functions:mc-style">
   <soapenv:Header/>
   <soapenv:Body>
      <urn:YppWebsRdlpr>
         <IvA>8</IvA>
         <IvB>2</IvB>
      </urn:YppWebsRdlpr>
   </soapenv:Body>
</soapenv:Envelope>

Can you see any difference?

Regards,
Greg

Former Member
0 Kudos

I create the WSDL-file in the SOAMANAGER where I say "Open WSDL-Document for Binding".

Hm but you're right it looks different, the two parameters and my result var have different names than in my function module.

In comparison: In my fm the parameters are iv_a, iv_b and ev_result.

In soapUI the parameters are ParA, ParB and ParRes. I atteched some pictures that it's easier to follow.

Looks like that my whole web service doesn't work

I did it this way, but then there was no service so I had to create it by myself.

http://blog.mindsquare.de/tobias_harmes/2011/01/abap-webservices-mit-dem-soa-manager-anlegen/

Have a nice Day Greg!

former_member184681
Active Contributor
0 Kudos

Dear Marcel,

This step-by-step guide looks fine, this is just what I've done yesterday. I think that you did not get any service created because you did not mark "Serv. deployen" checkbox in the screen shown in 8th screenshot of this guide, counting sequentially. Anyway, it should work equally well once created manually (this is also what I've done). I consider it really strange that parameter names in your SOAP request do not match those in ECC - this should not be the case. Did you modify your function module after you generated the web service out of it? If yes, you should delete the service and generate it again, because changes are not automatically reflected. And this is what I suggest you to do now to have it working finally: delete the service definition, activate the function module (just to be sure ) and create web service again, as described in the guide. Then update the config in SOAMANAGER, generate WSDL again and import it to SOAP UI as a new project. It must be fine after that

Hope this helps,
Greg

Former Member
0 Kudos

Hello Greg,

I deleted my last Web Service and started in the beginning. I did the same like in the guide, took the transport guarantee https and user/password. in SOAMANGER. Created the wsdl and now it works   Maybe I forgot to activate the Enterprise Service in SE80.

The only thing is, that i cannot check the checkbox "Serv. deployen" because I cannot see it, it's not there Do you know where I can find it? But in the end it doesn't matter I can create the service manual.

Thank you sooo much! You saved my days hehe

former_member184681
Active Contributor
0 Kudos

I'm glad to hear you did it I'm not really sure why you can't see this checkbox, it could be a matter of system version. Anyway, same can be achieved in SOAMANAGER, as you said, so don't mind.

Former Member
0 Kudos

Yes, it doesn't matter!!

Thanks a lot and have a nice day!

Answers (4)

Answers (4)

Former Member
0 Kudos

Thanks Grzegorz,

I activated both. Now the state is active and I get the WSDL document.

For testing my Web Service I'm using SoapUI. But the Problem is, that I get no response, don't know why. Maybe you have an idea?

When I copy my path default_host/sap/bc/srt/rfc/sap/ypp_ws_testing/100/ypp_ws_testing into my browser, it doens't work, but why??!! --> Error Invalid URL

But thanks a lot, I'm much further than the days before

former_member184681
Active Contributor
0 Kudos

Dear Marcel,

I've got several ideas, give them a try:
1. Do you receive any error in SOAP UI? Maybe you just need to provide username and password for authentication of the web service call?
2. Do you use TABLES or CHANGING parameters as a response? If so, you might need to add them (empty) in the request, otherwise they might not be included in the response, as far as I remember.
3. Are you sure the function module itself returns some results? Try testing the FM directly in ECC with same input data to make sure. Also remember that ECC makes some additional formatting that is not done by the web service and you have to handle it yourself (for instance: add leading zeros).

Hope this helps,
Greg

PeterJonker
Active Contributor
0 Kudos

First of all apologies that I reply o the last message. With the new SCN I  seem to be unable to react to messages. It requires me to log in while I am already logged in. This new SCN is TERRIBLE.

Now to your issue:

I remember that I had the same problem one time.

It was solved by deleting all the comments from the request that was generated by SOAPUI before sending it.

baskar_gopalakrishnan2
Active Contributor
0 Kudos

Is your scenario sync or async?  Are you getting error code like HTTP 500 internal server error? If so then it could be due to some data processing issue at the application side. Test the same data at the ecc itself and see the behaviour. 

former_member184681
Active Contributor
0 Kudos

Hi Marcel,

I experienced same problem not long time ago. Please go to transaction SICF and activate following paths: sap/bc/soap and sap/bc/srt in the tree, as most probably they are not fully activated. You should be able to successfully generate the .wsdl file and save the binding after that.

Hope this helps,
Greg

Former Member
0 Kudos

Hi Marcel,

1.Press apply selection to display the details of the webservice , u will get the details of service definition screen , under overview tab you get three links of the services one is for port type, one is for binding and one is for service navigator. You have to select the second one wsdl for binding .this opens the wsdl file, from the browser url uou can pick the wsdl file for the webservice.

2.Save the file in ‘.xml’ format which is the WSDL file of the webservice. From the address bar you get the link of the wsdl file.  Provide these WSDL file (in .xml format) and WSDL file URL to documentum.

3.You need to also provide the end point URL of WSDL to documentum people. To get the End point URL, Go to the transaction SICF.

Enter the details

4.

Follow the below path to get your webservice.

Default_host/sap/bc/srt/rfc/sap/ztestweb/100/ztestweb

Select your webservice, right click on your webservice and select Test Service.

5.From the address bar you get the link of the wsdl file end point URL. That is the wsdl file end point URL, which you need to provide to Documentum.

I hope this will help you

Regards

Kalyan

Former Member
0 Kudos

Hey Kalyan,

in the first step there is my problem. Take a look at my picture, I didn't get the xml-file. I get the error, that the binding ist not active, but how can i change it 😕 

My first Problem was, that there was no service in the overview so that i created my own binding but this one not active and I don't get an xml-file.

Hmm...I have an idea, maybe it's a problem with the authorities in the development-system, I'll check it.

rajasekhar_reddy14
Active Contributor
0 Kudos

SOAManager it self you can find wsdl url genarated by default, may be you are chekcing wrong place.