on 06-27-2006 10:54 PM
Hi,
I am planning to expose one of my rfc as soap service to outside .
I have imported the RFC into XI.and created a wsdl from the ID.
But I don't how to create a message type for the sender soap request.the rfc takes some input parameter and return some value.so i guess my soap sender will have an export/import parameter in the oppposite way.But my problem how do i create a datatype for it since it involves a request/response.I guess i have to use the wsdl for the soap request/response in the external defintion.but is there a tool which i can use to generate this.
And I planning to use stylus studio for making webservice call / simulating a soap request.
ANy input will be appreciated.
THnks
Hi,
You need to use wsdl for the sender Side. How you have created a wsdl here? without data Type/Message type..
Create 2 data types/messages types as Req and Resp. and then proceed
Check these-
/people/riyaz.sayyad/blog/2006/05/07/consuming-xi-web-services-using-web-dynpro-150-part-i
/people/siva.maranani/blog/2005/03/01/testing-xi-exposed-web-services
/people/siva.maranani/blog/2005/09/03/invoke-webservices-using-sapxi
Regards,
Moorthy
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Chinna,
If you're on WAS 6.20 and up, you can expose an RFC as a webservice directly from WAS.
Or if youre on Basis layer 4.6D, you'll need to use XI (or some other integration tool) to expose the RFC as a webservice.
To do this in XI you'll need to:
Integration Repository
1) Import the RFC
2) Define a message and datatype for the SOAP interface
3) Create inbound and outbound interfaces
4) Create maps between the RFC and SOAP messages
5) Create an interface map
Integration Directory
1) Create an RFC Receiver Channel
2) Create a SOAP Sender Channel
3) Generate the WSDL (Tools->Define Web Service)
You can then handoff the WSDL and a login username and password to your developer and they will have everything they need to make the WS call.
Here are answers to a few doubts u might have:
1) Do I need to actually create a WS that calls the RFC ? Isnt the virtual interface exposed by the XI sufficient?
Yes, you need to create a WS in XI that calls the RFC.
2) If I really have to create the WS and deploy it in order to expose it with the XI, then what is my benefit of exposing it with the XI, why not just exposing it as a normal WS ?
You don't have WAS 6.20 or up. Even if you did, you may still want to expose it using XI in order to have all of your integration go through the same application.
3) If I expose my web service through the XI, how does the client application executes one of its methods? To which url does it have to access (the XI or the actual WS)?
You expose a SOAP interface in XI by generating a WSDL file. This file contains all of the information a developer will need to call the webservice including the URL.
You actually specify the URL when you generate the WSDL. Be sure to read the documentation to get the correct format because the URL that the wizard suggests isn't correct.
Regards,
Abhy
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
In scenarios like yours SOAP -> RFC, one would usually create an interface in XI, say requestUserLookup, with message types
request : UserLookupRequest
response : UserLookupResponse.
Now map this inteface to the RFC that you have imported into IR say Z_RFC_USER_DETAILS
Map the corresponding request and response objects.
UserLookupRequest => Z_RFC_USER_DETAILS.request
Z_RFC_USER_DETAILS.response => UserLookupResponse
In Configuration Directory you will have to generate WSDl of the interface requestUserLookup that you created in IR.
Cheers,
Naveen
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
87 | |
10 | |
10 | |
9 | |
7 | |
6 | |
6 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.