cancel
Showing results for 
Search instead for 
Did you mean: 

Web service scenario with ws adapter in PI 7.1

Former Member
0 Kudos

Hello,

after reading some documents about the new ws adapter in PI 7.1, I am still not clear how to utilize it.

My understanding is, in the current PI 7.1, ws adapter can only be used in the scenario where the sender is SAP system, where the receiver theoritically can be third party system. Basically for web service scenario, PI is used to centrally configure the web service consumer and provider for the sender SAP system and receiver SAP system, the configuration would be then populated to the systems automatically. So if I have scenario where 3rd party wants to call SAP web service, this will NOT be possible to use ws adapter. Is my understanding correct?

Can you also shine more lights on this ws adapter thing?

Thanks

Eric

Accepted Solutions (0)

Answers (3)

Answers (3)

kkram
Contributor
0 Kudos

Eric

Let me give it a try to explain how WS adapter works. As you would have guessed by now, WS adapter is implemented in ABAP and supports only EO/EOIO quality of service. The primary difference between SOAP adapter and WS adapter is that the latter supports WS-RM.

WS-RM (Reliable messaging) is a specification laid down by OASIS on how a webservice provider and a consumer can exchange information asynchronously and still guarantee delivery and sequence. The way to do it is by creating a unique sequence ID for each transaction and exchange messages within this sequence. Matter of fact, WS adapter internally uses SOAP/HTTP for actual communication though.

Now, in PI 7.1, the WS-RM is implemented with the use of bgRFC (successor of qRFC/tRFCs) and hence implemented within ABAP. According to me WS adapter can be used between non SAP and non SAP consumer / provider as well. If you look at the communication channel settings (don't know if you have access to a PI 7.1 system), you could define the end points either as an URL (3rd party) or a SAP system.

If the provider is a SAP system, then you don't have to provide the end point URL within the communication channel because from the combination of Interface ID and Namespace, PI 7.1 will determine the endpoint automatically once the receiver agreement is activated. This is especially helpful when you are transporting your settings across landscapes (DEV, QA, PROD)

In case of consumer being a 3rd party system, PI system will be the provider for the 3rd party system and hence the end points within the consumer, have to be obtained from the service(formerly message) interface.

In case of provider being a 3rd party system, it is obvious that the end point is determined by the 3rd party system and hence the communication channel for WS adapter will have the URL access for 3rd party systems end point.

Hope this explanation helps. Let me know if you need more information.

Thanks

KK

Former Member
0 Kudos

Hi KK,

your information is very helpful, it confirms some of my understandings. However

To configure ws sender communication channel, following settings are required (mandatory):

Target Host

Service Name/port

Target Client (ABAP stack) [000-999]

If sender is SAP system, I understand that the above infor is needed, because the ws consumer configuration will be populated to the sender system. In case of 3rd party system, there is no Target Client. Because this is a mantory field, what should I specify here?

Furthermore, why do I need to provide those infor in case of 3rd party system. Once sender agreement with the ws comm. channel is configured, wsdl can be generated from the sender agreement, the wsdl already contains end point, and the 3rd party can call PI using hte wsdl. Why the 3rd party's host, port and client(?) need to be given in the communication channel config?

Can you please help more on this?

Eric

kkram
Contributor
0 Kudos

Eric

Let me try to explain a bit more. Let us consider the case where Sender is a 3rd party system(S1) and receiver is a 3rd party system (S2). Since you are using PI as the mediator, the following is true

Consumer (S1) -> Provider (PI)

Consumer (PI) -> Provider (S2).

Here PI is the virtual receiver. Since for S1 (actual consumer), the provider(virtual) is PI, you would provide the client number of your PI system in the "Target Client" field of Sender communication channel. Similarly target host will the host name of your PI system and the port will be the HTTP or HTTPS port number of the PI system.

Hope this helps.

Thanks

KK

Former Member
0 Kudos

Hi KK,

you are saying that for sender ws communication channel I should enter PI information into the field of

Client

Host

Port?

I thought those config is to configure the sender system, not the PI.

I will test the ws scenario based on your information.

kkram
Contributor
0 Kudos

Eric

In addition, check this blog https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/7772. [original link is broken] [original link is broken] [original link is broken] Especially check the "Perform Configuration in the Integration Directory" which is a SAP tutor enabled guide. Here you will see configuration done between ABAP systems (I think client 200 in PI is consumer and client 300 in PI is the provider & client 100 in PI is the integration server). Though this example is for ABAP to ABAP communication, you will see how sender communication channel is configured and is not any different for 3rd party scenario.

Thanks

KK

Former Member
0 Kudos
Former Member
0 Kudos

Hi Abhishek,

I already went through though link and document. They do not answer my question or clear my doubts.

Eric

Former Member
0 Kudos

Hi Eric ....

I was also looking for some article on WS adapter say 1 months before ....this article helpe me a lot ....guess you will find it more useful

https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/304335f7-f33c-2a10-ae80-9c9ffdc8...

Enjoy forever

Abhishek