cancel
Showing results for 
Search instead for 
Did you mean: 

Simple SOAP Provider Interface!

silentbull
Participant
0 Kudos

Hello

We have recently upgraded our system to PO and our customer would like to test the connectivity and asked to develop a pilot scenario where he would want to call the PO webservice by sending a simple GetCurrentDate and PI would need to send back the response with the current date.

Please do guide on the steps to develop this scenario or correct me if I am wrong.

Repository:

1. Create DT/MT with both GetCurrentDate string and GetCurrentDateResp string.

2. I am confused what MI and Mapping should i be created as I am new to SOAP

Directory:

Create SOAP sender channel and generate the WSDL using ICO and pass it to my third party.

Also what settings should i be doing at the sender soap channel.

Appreciate if you can guide on this scenario or any blogs for simple SOAP scenario where PI will be the provider.

Regards

Sam

Accepted Solutions (0)

Answers (3)

Answers (3)

silentbull
Participant
0 Kudos

additionally, i can also do a soap async where I can confirm that the message is entering into my system and i am saving it into fileshare. This will atleast confirm that the connectivity between third party and soap is good.

iaki_vila
Active Contributor
0 Kudos

H Sam,

Yes, you can do it in that way, but the sender system won't know if the request has been accepted, at least they have access to that fileshare.

Regards.

former_member186851
Active Contributor
0 Kudos

Hello Sam,

In addition what Inaki suggested,You can refer the below link as well.

SAPTechnical.COM - WebService to WebService Synchronous scenario

silentbull
Participant
0 Kudos

Hello

thank you both for the tips.

I do understand that I need a receiver . I was wondering whether I can keep a simple NFS which just stores the request coming from SOAP. At the same time the response should be sent back to them using SOAP sender channel stating simple mapping as 'OK'.

Is this something possible.?

Alternatively, if i keep a soap sender sync to proxy in ECC, should that proxy need to respond something which will be sent to soap and if so the proxy response structure and soap response structure be same?

Reason is that the third party is consuming our services, so i believe we need to give them wsdl for both request and response.

iaki_vila
Active Contributor
0 Kudos

Hi Sam,


I do understand that I need a receiver . I was wondering whether I can keep a simple NFS which just stores the request coming from SOAP. At the same time the response should be sent back to them using SOAP sender channel stating simple mapping as 'OK'.

Is this something possible.?

I think, it is possible with acknowledgments, but the acknowledgments has meaning only with async scenario, because the sync ones the response is yet a way to know the request has arrived.


Alternatively, if i keep a soap sender sync to proxy in ECC, should that proxy need to respond something which will be sent to soap and if so the proxy response structure and soap response structure be same?

Yes it can be the same, however you should take into account that the proxies structures has restrictions with some kind of tag or types. If you use xsd:string as a types, don't use a complex system of namespaces or structures,  and all your final tags typified you don't usually have issues. IMO, this option is easier than the 'OK' automatic response one, or to have an RFC receiver for you pilot scenario.


Reason is that the third party is consuming our services, so i believe we need to give them wsdl for both request and response.

You only need to give one wsdl, this wsdl will contain your request and response outbound service interface structure.

Regards.

silentbull
Participant
0 Kudos

additionally, i can also do a soap async where I can confirm that the message is entering into my system and i am saving it into fileshare. This will atleast confirm that the connectivity between third party and soap is good.

iaki_vila
Active Contributor
0 Kudos

Hi Sam,

You would need a receiver in your communication you can do SOAP to SOAP or SOAP to RFC for example. Check my comment in this thread Creating a simple Hello world web service in SA... | SCN

I've just found an example here http://saprainbow.com/sap-pi-adapter/soap2soap-sync-sender-soap-to-sync-receiver-soap-currency-web-s..., about your Sender SOAP you should take into account to select best effort as quality of service, this means that the scenario will be sync, also the sender namespace and interface will be used in the wsdl to be exposed in your test case.

Regards.

silentbull
Participant
0 Kudos

Hello Inaki

I am bit confused on the IR side.

If all I need is to accept a string with request of date and send the response back with current date, this will get achieved with sender soap adapter with Best effort.

My original scenario would be third party sending me an XML using SOAP and me pushing it to SAP as idoc xml.

For the pilot scenario, what should be my case as I don't do anything with the request coming from third party.

I am confused how my IR will be for this pilot scenario.

Regards

Sam

former_member186851
Active Contributor
0 Kudos

Hello Sam,

So your scenario is Soap->IDoc Scenario?

Since Idoc is not synchornous,you need to follow some additional settings to achieve it.

silentbull
Participant
0 Kudos

Hello Raghu

Yes,

All I am looking forward is that if the third party sends me a xml as soap and i send him immeditate response like received ok following by async with idoc in sap. Is this achievable?

My sender soap would be sync

my receiver would be idoc adapter.

So as soon as i get a xml file, my response mapping will just send an acknowledgement saying okl.

iaki_vila
Active Contributor
0 Kudos

Hi Sam,

I understand your pilot scenario but you should think that you will need a receiver, even a dummy one. For example you can do a Z  RFC function (In PI if it is dual or in an ECC) that take the one variable request and to copy it to a variable response. Also, you can try with a free internet webservices.

The IR (ESR), would be as simple as you want. You only need to define the outbound part, the inbound will depend if you use a RFC or a external webservice. The mapping will be an easier as you want, because you can use the same inbound (receiver)  XSD or wsdl for you outbound (sender) part .

Regards.

former_member186851
Active Contributor
0 Kudos

Hello Sam,

You can try as Per Inaki suggestion or you can have a bridge scenario.

Refer the below link ,Instead of file have a proxy sender to send ack back.

http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/80f96dbf-adca-3010-ffb5-daf2d1f0e...