cancel
Showing results for 
Search instead for 
Did you mean: 

Can XI expose multiple interfaces(messages) in a single webservice?

Former Member
0 Kudos

Hello,

I have several interfaces on XI sender side, which I want to expose with a single SOAP adapter.

A SOAP client/consumer should only have one endpoint, where it can execute more than one action (as the most webservices normally do).

I managed to configure one soap adapter for a single interface, but my intention is to integrate multiple interfaces into one single soap adapter.

It can´t be that if I have to expose 20 endpoints to the customer for 20 actions/messages that could normally be defined in one single wsdl file and exposed in one single webservice.

Many thanks,

Bernhard

Accepted Solutions (0)

Answers (3)

Answers (3)

turmoll
Active Contributor
0 Kudos

Hi,

You can use one SOAP sender cc with the conversion parameters "Use Encoded Headers" and "Use Query String" checked.

Then you can specify the interface namespace and interface name in the URL.

Please have a look at the following doc: "How to Use XI 3 SAOP Adapter" and the following note: 856597.

regads,

Jakub

Former Member
0 Kudos

Thanks Jakub for your answer, I figured this out.

But I don´t want to change the URL of the webservice/SOAP adapter every time i invoke another action.

Think of a SOAP client that uses the amazon or google webservice api. The client connects to a single URL and can invoke multiple SOAP actions without changing the URL / endpoint.

Regards,

Bernhard

stefan_grube
Active Contributor
0 Kudos

Hi Bernhard,

this is not possible. The SOAP adapter does not examine the SOAP action. So you cannot distinguish the calls with this parameter.

The only idea I have is using a generic interface with a common tag which you can use for receiver determination. Then you use the same URL for every scenario.

Regards

Stefan

stefan_grube
Active Contributor
0 Kudos

I have not tested it so far, but you could try to use the adapter-specific message attributes for variable header field to read the SOAP-action field which you can use for routing. In this case you would not need a common field in your message for routing.

If all your interfaces are different, you could also check for exisens of a node in receiver determination.

Regards

Stefan

Former Member
0 Kudos

Hi Stefan,

I tested a little bit and it seems that a generic interface would work. I found a context object called SHeaderSOAPAction that i could use in receiver determination. According to the name, I would guess that this object contains the SOAP action, but it seems that it is never filled. Adapter specific message attributes and variable tansport bindings are checked.

Any ideas?

Thanks,

Bernhard

stefan_grube
Active Contributor
0 Kudos

Hi Bernhard,

SHeaderSOAPAction works for me (XI 3.0 SP19).

What tool do you use for tests? How is the Soap-Action in your HTTP stream?

Regards

Stefan

Former Member
0 Kudos

Hi Stefan,

I use XMLSpy as SOAP client. SOAP-Action e.g. is the default url http://sap.com/xi/WebService/soap1.1 as exported in wsdl generated by IntegrationBuilder wizard.

At the moment I´m testing with XI 3.0 on NW2004s (I think SP6). Could the patch level be the point why it´s not working?

Thanks,

Bernhard

stefan_grube
Active Contributor
0 Kudos

The features comes with SP08

See:

http://help.sap.com/saphelp_nw2004s/helpdata/en/44/1e642ad9cb72b5e10000000a422035/frameset.htm

But in SP06 you should not see the values: <i>Adapter specific message attributes and variable tansport bindings</i> in the channel.

Stefan

Message was edited by:

Stefan Grube

Former Member
0 Kudos

Its not possible in default XI environment. May be you can write a wrapper web service in Java and expose that to client, which in turn invoke call to XI multiple interfaces.

--Archana

former_member187339
Active Contributor
0 Kudos

Hi,

I dont think this is possible...

Regards

Suraj