cancel
Showing results for 
Search instead for 
Did you mean: 

Exposing mutiple outbound message interface as a single Web service

Former Member
0 Kudos

Hi all,

My Scenario is SOAP <--> PI 7.0 <---> SAP R/3 (Proxy communication). A third party portal will communicate 24/7 online with SAP R/3 via PI 7.0. I have to expose all the outbound message interfaces as a single webservice, so that the third party portal will consume that web service and will communicate to SAP R/3. The communication between Portal and PI 7.0 will be SOAP and from PI to SAP R/3 as proxy communication. I can able to expose a each outbound message interface as a webservice individually i.e each message interface gets separate WSDL file. But the portal people asking me to generate single WSDL (web service) in which all the message interfaces should be included as operations. Could you please send me the information, how to generate a single web service for all the message interfaces?

I have gone through the entire SDN community, but could nt able to get the information. If anybody worked on similer issue , please guide me to approach to get the solution.

Regards

Vijayanand Poreddy

Accepted Solutions (0)

Answers (5)

Answers (5)

Former Member
0 Kudos

hi,

For my scenario, use query string will not helpful. Already i tried using use query string. Finally i came a conclusion that, it is not possible using PI 7.0. Thanks to one and all, who gave a quick reply. As of now i am closing the Thread, if anybody knows the solution, please re-open and update accordingly.

Regards

Vijayanand Poreddy

Former Member
0 Kudos

Hi All,

This problem was resolved using java mapping. The approach is as follows...

Step1 . I have created message interface with 16 messages wrapping under one root node.

Message

-Message1

-Message2

-Message3

......

......

-Message16

Step2. Exposed this interface as Web service and provided the URL to third pary system. The third party system going to

send the messages individually as Message1 or Message 2 as root node.

Step3. Now from the third pary system i am going to recieve any of the message from 1 to 16 dynamically as Message1,

message2 and so on..

Step4. Once i recieve the message using java mapping wrapped the message with root node. i.e if message1 comes, the

message will be wrapped as follows

Message

- Message1

Step5. Thus the message will fits in the actual Message type

Step 6. In the target system, i have written the code to process based on the incomming message.

Thus solved my problem

Thanks & Regards

Vijayanand Poreddy

Former Member
0 Kudos

Hi All,

Thanks for the quick reply, merge concept can not work for me.

Scenario:

In my scenario the portal will communicate to XI with 16+ types messages , each message will have different types inputs (Pay loads). i.e one time it may request to create a sales order, next time may be purchase order like that 16 messages will perform different type of activities.

Case 1: Merging Interfaces in BPM.

Though if i merge all the 16 outbound interfaces using BPM, when i expose that, the output will consist only one Message type which can not accept all the 16 messages. i.e the message type is not generic for all the communications between portal and XI.

Case 2: Merging exposed WSDL.

If i merge the WSDLs , each WSDL will have diffrenet endpoints, i.e it will have diffrent URL for each WSDL. But i need to give them only one URL (One endpoint for all message interfaces).

So please advise me is it possible with PI 7.0 or not.

Regards

Vijayanand Poreddy

Former Member
0 Kudos

Hi Vijayanand,

This wouldn't be possible in XI as far as i know. I guess you would have to expose the 16 interfaces separately. Moreover the SOAP Action for each of these also would be different right?

Cheers,

Abhy

turmoll
Active Contributor
0 Kudos

Hi,

It is possible to expose all operation using one endpoint by overwritting the default interface name and interface namespace in one "generic" soap sender CC. To achieve it, you need to set the following options Use Encoded Headers and Use Query String in your sender CC.

Unfortunatelly, there is one drowback of this approach. Before portal will send the request, it has to concatenate the generic endpoint:

http://<host>:<j2ee-port>/XISOAPAdapter/MessageServlet?channel=<party>:<service>:<channel>

with URL encoded interface information:

&version=3.0&Interface=http%3A%2F%2Fsap.com%2Ftest%5ETest

for each operations.

For more detail ref these docs:

[How To… Use the XI 3.0 SOAP Adapter|https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/d23cbe11-0d01-0010-5287-873a22024f79]

[Note 856597 - FAQ: XI 3.0 / PI 7.0 / PI 7.1 SOAP Adapter|https://websmp230.sap-ag.de/sap(bD1wbCZjPTAwMQ==)/bc/bsp/spn/sapnotes/index2.htm?numm=856597&nlang=EN&smpsrv=https%3a%2f%2fwebsmp210%2esap-ag%2ede]

I guess that in PI 7.1 this disadvantage will be enhanced.

Regards,

Jakub

Former Member
0 Kudos

Hi Vijayanand,

I think you need to merge all the outbound message interfaces having seperate Web services (wsdls) into single Web Service. It is possible to include all those wsdls in to one common Web Service with the help of altova XMLspy tool.

But remember you need to deploy that new generated common wsdl to the sender application i.e in your case to portal side.

Thanks

Swarup

Former Member
0 Kudos

Hi Vijayanand,

I am not sure if I understood your request in detail.

It seems that you have to merge messages.

For this, create a message-interface where you merge your messages. Genrate the wsdl on basis of the merged message.

To merge messages you have to use BPM.

Samples how to merge you will find in your SWC SAP BASIS in your integration repository. Search for the appropriate BPM in SAP BASIS.

Hope this helps

Regards Mario

prateek
Active Contributor
0 Kudos

I dont think it is possible in XI to expose multiple interfaces as a single WebService

Regards,

Prateek