on 03-02-2006 11:49 AM
Hello,
I created a Web service interface to an ABAP RFC
via XI and a corresponding communication channel
(SOAP/HTTP to a specific message interface).
For this interface, I can create a WSDL specification
via "Tools/define Web service" in Configuration:
Integration Builder. The generated WSDL contains the
definition of a Web service/port type with
one operation, for the specified interface.
However, I also have a number of other interfaces
that logically belong together, thus I'd like to
define a Web service with a number of operations, one
for each interface, which also makes it easier to
access the operations from an external program
(in my case, Java with AXIS).
Is it possible in the XI to define a Web service
(specifically, a port type) with multiple
operations or must it always be the
case that it has exactly one operation?
Thanks in advance & Cheers,
Guido
Hi,
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.
I hope I have answered your query.
Regards,
Abhy
PS: AWARD POINTS FOR HELPFUL ANSWERS.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
thanks very much for your reply.
I actually performed the steps in the integration
repository / integration directory that you
suggested to expose the RFC as a Web service via XI.
However, as I pointed out, this creates a WSDL
which defines a Web service / port type with
one operation only.
Is it possible to have multiple operations?
If this doesn't work via XI, does it work on WAS 6.20
and up?
Cheers,
Guido
Hi,
hmm, I already suspected that this (i.e. defining
a Web service with multiple operations assigned
to different message interfaces / RFCs)
might not be possible, though this makes
XI/WAS's Web service support appear quite incomplete
to me...
Maybe someone else has a comment on this, otherwise
I have to award u the 10 points
Cheers,
Guido
Hi,
Hmmm!!
Now what I think is that it may be possible, though I haven't tried it yet. Suppose there are two soap scenarios, you have to create WSDL for each and then you can try merging it.
That merged WSDL file is used in SOAP client/ any program. The appropriate URL is to be called and the input Message should be the same corresponding to that interface.
hi guido,
I'm trying to do the same.
have you tried advanced settings or dynamic determination
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Yoga,
What is your source that says it can be done? Can you point me to it? i have basically the same issue as Guido. Except my WS definition is given by a 3rd party software.
Their WSDL has a single Port with 2 Operations and expects this to be implemented in XI. Of course, each operation has its own name and message type, but in XI WSDL's I'm used to seeing a 1:1:1 relationship between Port:Operation:MessageType.
I think I can handle the message type part with a XSLT mapping and interface determination, but how do I handle having 2 operations for the same port in XI?
Thanks.
Carlos
Edited by: Carlos Herrera on Aug 16, 2008 5:05 PM
Hi VJ,
Thanks for your reply. You are correct.
Here's a brief excerpt from the PI 7.1 preview presentation available from SAP:
"In SAP NW 7.0 (2004s) and SAP NW u201804, service interfaces have one operation per service. In
SAP NW PI 7.1 the Enterprise Services Repository will offer multiple operations per service."
Carlos
User | Count |
---|---|
87 | |
10 | |
10 | |
9 | |
7 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.