cancel
Showing results for 
Search instead for 
Did you mean: 

Web service with multiple operations

Former Member
0 Kudos

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

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi,

If you're on WAS 6.20 and up, you can expose an RFC as a webservice directly from WAS.

Or if you’re 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 ? Isn’t 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.

Former Member
0 Kudos

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

Former Member
0 Kudos

Hi Guido,

No i dont think you can.....

so i guess i will get 10 on 10 points for this if not for the last one......hehehehe

Regards,

abhy

Former Member
0 Kudos

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

former_member187339
Active Contributor
0 Kudos

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.

Answers (1)

Answers (1)

Former Member
0 Kudos

hi guido,

I'm trying to do the same.

have you tried advanced settings or dynamic determination

Former Member
0 Kudos

hi,

web service with multiple operation can be achieved in PI 7.1, not only for the exposing of the web service but for the consumption of the webservice too.

Did any one tried it?

thanks,

yoga

Former Member
0 Kudos

Hi,

Check the SAP Note: 856597 - FAQ SOAP Adapter

Q: My web service expects a SOAP with multiple elements in the SOAP body. How can I create such SOAP message?

Q: How does the nosoap mode work for the SOAP receiver adapter?

Thanks,

Beena.

Former Member
0 Kudos

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

VijayKonam
Active Contributor
0 Kudos

This is not possible until 7.0. PI 7.1 has this capability in the form of service interfaces supporting more than one operation.

VJ

Former Member
0 Kudos

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