cancel
Showing results for 
Search instead for 
Did you mean: 

Using new PI 7.1 as a WS provider - interface with multiple operations

Former Member
0 Kudos

Hi guys,

I'm new to 7.1 and have a doubt about using it as a web service provider.

I assume, we can create an outbound service interface with multiple methods and publish this interface to SR. Is that correct?

How should I set up the scenario - which adapter will be on the outbound side (sender agreement)? Should it be the new WS adapter?

If I'm not wrong, WS adapter is ABAP based. Which port will be then used as a destination for WS clients? Will it be 50000 or 8000?

So there shouldn't be any problems with exposing 1 interface with several operations. It will be possible to call them w/o any problems. Is it correct? Because for example for the SOAP adapter you can't choose the operation so you have to use it only for interfaces with 1 operation.

Thank you for your help,

Olian

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi,

I assume, we can create an outbound service interface with multiple methods and publish this interface to SR. Is that correct? - Yes...........

How should I set up the scenario - which adapter will be on the outbound side (sender agreement)? Should it be the new WS adapter? - If your source application is ABAP Web AS 7.1, you can use WS adapter.......but if it is not a SAP ABAP Web AS, then use SOAP adapter in sender agreement........

WS adapter is ABAP based. - Yes

Which port will be then used as a destination for WS clients? Will it be 50000 or 8000? - It will be HTTP port or HTTPS port of your PI system...........

So there shouldn't be any problems with exposing 1 interface with several operations. It will be possible to call them w/o any problems. Is it correct? - Yes...........

Because for example for the SOAP adapter you can't choose the operation so you have to use it only for interfaces with 1 operation. - No, SOAP adapter can also be used with service interface with multiple operations and you can choose in which operation you want to send data to PI.

Regards,

Rajeev Gupta

Former Member
0 Kudos

Hi Rajeev,

thanks for your reply

How can you set in sender SOAP adapter an operation you want to execute on target system? There is no field for this(?)

Port of the PI system, but which, java(50000) or abap(8000)?

So you say that the WS adapter can be used only with ABAP systems? What about 3rd party ws clients?

Thank you,

Olian

Former Member
0 Kudos

Hi,

How can you set in sender SOAP adapter an operation you want to execute on target system? There is no field for this(?) - See in sender agreement, you will specify service interface..........now when you will generate the WSDL for it, and you test it in WSNavigator, there you will see all the operations defined in your service interface and then you can select your operatin and fill the req msg data and send the req msg to PI.......similarly when the SOAP application will invoke the webservice based on this WSDL, they will also see the operations defined in it and can call the operation they want....but for all the operations in a single service interface there will be a single WSDL for your web-service....

Port of the PI system, but which, java(50000) or abap(8000)? go to transaction SMICM - Go To - Services - HTTP port.......

So you say that the WS adapter can be used only with ABAP systems? What about 3rd party ws clients? - Well WS adpater can be used with applications having SAP Web AS ABAP and SAP Web AS JAVA and i have read somewhere that WS adpater can be used with 3rd party WS clients if the 3rd party WS client supports WS protocol for web-services.............So if your 3rd party WS client supports WS protocol for web-services, then i think you can use WS adpater in sender agreement......

Regards,

Rajeev Gupta

Former Member
0 Kudos

Rajeev, one last question. Where can I specify soapaction for each operation of my interface? So it would be taken into account in my WSDL generated file. Because I tried it now and I have 2 operations and both of them have as a soapaction value http://sap.com/xi/WebService/soap1.1 which I believe is wrong. There have to be specified different soapaction for each method. Am I right?

Thanks,

Olian

Former Member
0 Kudos

Hi,

See in the WSDL you have a operation name which refers to your operation of your service interface....so when your SOAP application will have to send data to your PI system, they will add this WSDL to their application and when they will instantiate it, they will see the operations which you have exposed and then they can call that operation on this object which operation they want to invoke......

Dont worry about SOAPAction it is same for all operations in a service interface.................but the sender application can identify your operations by the operation name.........

Regards,

Rajeev Gupta

Former Member
0 Kudos

But how does the PI distinguish which operation has been called? Why I'm asking this is, because our 3rd party client needs to know how to call each operation. If i'm not wrong this is usually done by soapaction. if you set soapaction to some value, WS provider knows wich operation to execute.

Olian

Former Member
0 Kudos

Hi,

Actually when a 3rd party is publishing web-service, then we have SOAPAction to identify the method.....

But in case of PI7.1 it is slightly different.........in WSDL you have operation and in it SOAP action.....

Why I'm asking this is, because our 3rd party client needs to know how to call each operation - just tell them to add your WSDL as a webservice and create a object of it.......then they will see your operations.....create a req msg structure for this opeation and then call this operation on this object which will send that req msg for that operation to PI............

But how does the PI distinguish which operation has been called? - See your operations are in a single service interface..........so when a SOAP req msg comes to PI, it will have the sender system details and sender service interface details in it..........moreover each operation has a req msg structure in which the req msg has arrived..........so from this req msg struc, PI decides which operation mapping and msg mapping needs to be invoked..............

Regards,

Rajeev Gupta

Former Member
0 Kudos

Hi Rajeev!

You seem to be an expert in service interfaces with multiple operations. So I also have one or two questions:

1. How and where can I see the operation in RWB and/or SXMB_MONI? So far I have just and always found the name of the service interface (containing the multiple operations) and the used operation mapping, but not the operations themselves. In SXMB_MONI I can see a field called Sender Operation, but this field is always empty. So how and where can I see the operation?

2. Additionally can I read the service operation in an Adapter module? And if so how?

3. Can I perform an authentication based on Service Operation (like based on Service Interface using ACL in my Sender Agreement)?

Thanx!

Regards,

Volker

Answers (1)

Answers (1)

Former Member
0 Kudos

Kindly check this link [http://help.sap.com/saphelp_nw2004s/helpdata/en/37/01a7408f031414e10000000a1550b0/frameset.htm]