Additional Blogs by Members
cancel
Showing results for 
Search instead for 
Did you mean: 
Former Member

  Introduction:

  The following document implies for all the inbound interfaces
which have Proxy call at source in SAP system and Receiver is a Web service
which can give response to the method(soap action) called.

Inbound Interface:

 

A scenario that makes a Request
from SAP to WebService through PI with certain Request input fields like

  • TokenID
  • ClientTransactionID

  

In Return accepts the Response from WebService with
Response output fields like

  • TransactionID
  • ClientTransactionID
  • RecordsReceived
  • RecordsPosted
  • RecordsFailed

        

Using   PROXY to SOAP Synchronous Scenario

 

Here is the step by step walk
through how to achieve this.

Step 1.  Creation of Data Types. We need to create 2
Data types.

1 for  request message structure and other for
Response structure.

Request structure:


 
 
   
 
  

Response Structure:

These structures are visible in SAP (ECC) at
Transaction SPROXY like below

 

Using ABAP required coding need to
be done for request & response of messages.

Now, Create MessageTypes .Best
practice is to give same names prefixed with DT_ for data types and MT_ for
MessageTypes.

We have to create 2 Message types
and give Data types used as the ones you created above respectively.

Create Message Interfaces in  IR(if PI 7.0 as in this case)

Our Sender message interface
name is MI_GetTransactionkeyStatus

Which is OUTBOUND and SYNCHRONOUS

Here, the exact method which we are
going to call in WebService is

GetTransactionKeyStatus_InputMessage 

We will receive the response
from another method called GetTransactionKeyStatus_OutputMessage

What we are giving below are
Message types created by us.


  Our Receiver Message Interface name
is
MI_GetTransactionKeyStatus_Response

Which is INBOUND and SYNCHRONOUS

  
You can import these two
methods from External Definition which will be provided by Receiver system. The
NameSpace will be from the Webservice org. Here


Now,  Creating Message mappings.

 

We need 2 message mappings one for
making request and one for taking the Response.
MI_GetTransactionkeyStatus Check here the request  is ClientTransactionID, Constant & first
node to Node mapping as-is this changes on various requirements.

2nd mapping for
capturing response from SOAP and passing it to SAP MM_GetTransactionKeyStatus_Response


The values we get here as given
above in response structure.

We will be having only one
Interface mapping as request & response

Provide the Message interfaces you
created source side as Request and Target side as Response and give the Message
mapping  we created first as it is the
request & click on Read interfaces button you will get the Source &
target Messages on either side.

  

Now you will see Response tab
popping up and provide the Message mapping program name for it which end with
MM_***Response.Click  Read interfaces.

You will see a different source
& target for your confirmation.(actually not different but already defined)

You are done with IR part of your
Synchronous Proxy to SOAP interface design.

CONFIGURATION :

You need two communication channels
in order to make a request and capture response back.

Sender  Comm channel adapter for  Proxy is
XI

Security check for Incoming
messages select [ HTTP ]

   Receiver
Comm Channel adapter for WebService is
SOAP

In the receiver comm channel
at Connection Parameters provide the Target URL [ provided by the webservice ]

Importantly,
Provide the Soap Action for the method you are calling. You will get this in
SoapUI.

One important catch here for those who are facing issues in adding  soap Envelop to source message and removing
that soap envelop while taking response from Webservice. You need to add the
below module name as-it-is . That will solve the problem. Else we need to
incorporate and xslt mapping to do that work for us adding it in our Interface
mapping which may be hectic.

Module name     :

Create Receiver
Determination:  You will be giving Sender
as SAP and interface name as the one you created for request message. Which is GetTransactionKeyStatus


Interface Determination : You will
be passing the Sender details as above in receiverdetermination. If you are
using PI7.0 version as in this eg: Fisrt you need to give interface mapping
select from drop down, then Inbound Interface name which is GetTransactionKeyStatus


Now create Receiver Agreement as
below & provide the Receiver CommChannel.[ CC_SOAP_GetTransactionKeyStatus_Response
]

 

With this your Synchronous
interface is complete and make sure you activated all objects and clear SLD data Cache from Environment
in the menu.

Trigger the Proxy from SAP side
with relavent data. You will be receiving the response from WebService.

We don’t have sender Agreement
being Proxy Sender.