Skip to Content
0
Apr 23, 2014 at 04:53 PM

SAP PI 7.4 SOAP -> ABAP Proxy Synchronous Webservice

687 Views

Hi Everyone,

I am developing the following scenario:

  • 3rd party makes a SOAP call to SAP (via PI) to determine whether a vendor exists or not in the SAP system. The link for the call is provided by us from the Integrated Configuration.
  • The request comes in, calls an ABAP Proxy to check if a vendor exists and sends a response back to the SOAP call with a 'Y' or an 'N'.

I've read a lot about various scenarios but I'm having trouble connecting the dots as I'm fairly new to PI. I'd appreciate any help.

I've made the following set-up based on assuming I need separate Service Interfaces for the SOAP Request & Proxy Response

ESR

1. Message Types

SOAP (MT_SOAP_REQ & MT_SOAP_RESP) - PROXY (MT_PRXY_REQ & MT_PRXY_REQ)

2. Message Mappings
MM_REQUEST which maps MT_SOAP_REQ to MT_PRXY_REQ)

MM_RESPONSE which maps MT_PRXY_RESP to MT_SOAP_RESP)

3. Service Interfaces (Synchronous)

(SOAP Request)

SI_IN (Inbound Interface) with Request = MT_SOAP_REQ and Response = MT_SOAP_RESP

(Proxy Response)

SI_OUT (Outbound Interface) with Request = MT_PRXY_REQ and Response = MT_PRXY_RESP

4. Operation Mapping
OM_LOOKUP which maps SI_IN to SI_OUT with Request (MT_SOAP_REQ to MT_PRXY_REQ)

and Response (MT_SOAP_RESP to MT_PRXY_RESP)

  • I create the ABAP Proxies for each Service Interface. SI_IN contains the required coded method to check if there is a vendor.
  • I create the webservice and binding for SI_IN in SOAMANAGER
  • At this point I'm somewhat unsure - what do I need to do for SI_OUT ? Do I need to create a logical port ? how is SI_OUT associated to SI_IN (apart from the Operation) to get the response.

ID

In the Integration Directory I've created a SOAP_SENDER communication channel for System A and SOAP_RECEIVER channel for SAP. For the SOAP Receiver I need to specify a URL - what should this be ? Is it meant to point to the web service for SI_IN in SICF or just to the generic http://host:8000/sap/xi/engine?type=entry

Do I need to use the HTTP_AAE adapter for the receiver instead of SOAP ?

I created an Integrated Configuration for the SI_IN Service Interface with comm channel SOAP_SENDER from System A and SOAP_RECEIVER for SAP backend. I then got the WSDL for this to provide to the 3rd Party to test (via SOAP UI) . Again my concern is how is the SI_IN linked to the SI_OUT to achieve the response ?

I appreciate you taking the time to go through this . Any help is greatly appreciated.

Thanks very much

Gary