SAP PI/PO Adapter

  1. Home
  2. Dokumente
  3. SAP PI/PO Adapter
  4. 1. How to create an inbound interface to post a single sObject?

1. How to create an inbound interface to post a single sObject?

This document describes how to create an inbound interface with SAP-PO java single stack. When talking about the inbound interface in this document the direction SAP to Salesforce is meant e.g. Salesforce Interface will be called from SAP-PO. The development of an inbound interface involves steps to be done in Salesforce and in PO. This document does not describe the work at SAP-Backend e.g. developing business logic in SAP-Backend with ABAP.

  1. Skyvva software landscape and building blocks

Skyvva Integration Suite enables the integration between Salesforce and SAP-Backend over SAP-PO with less effort and without programming neither in SAP nor in Salesforce. It bases on the generation and customized approach to reduce effort and to accelerate the development of interfaces between those systems.
In order to be able to provide such a toolset and framework some component (green) has been developed by Skyvva and has to be deployed on Salesforce and SAP-PO of the customer. On the SAP-Backend e.g. SAP ECC 6.0 there is no software installation needed.

















Creating an inbound interface is only possible when the Skyvva solution framework is set up correctly. When talking about the direction we have to clearly define the perspective from which platform we are looking for. Since we are coupling two platforms Salesforce and SAP together we have to clearly define from which view we are referencing when talking about direction outbound or inbound.














2. Outbound and Inbound Interface

The term outbound is used when data is sent out from Salesforce to SAP. Therefore we will call interfaces for sending data out of Salesforce to SAP “Outbound Interface”. For the other direction, we will call the interfaces “Inbound Interface” when data is sent from SAP to Salesforce. So, the reference point is set to Salesforce.


3. Prerequisite for creating an inbound interface

  • The Skyvva solution framework has to be installed into your Salesforce instance.
  • An integration instance has been created
  • SAP-PO has been installed and set up correctly
  • Your workstation needs an internet browser IE or Firefox of the new release.


4. Creating Inbound Interface

The figure below depicts which steps to be followed to create an inbound interface with SAP PI/PO.














Step 1. Creating an inbound interface(Salesforce)

Login to the Salesforce org and then select Skyvva Integration Cloud.

Go to Integration Tab and create New Integration under that go to the interfaces tab and then create New interface as shown below.




























Now we have to fill the following fields:

  • Name
  • Source Name
  • Status
  • Sequence
  • Operation Type
  • Connect with Middleware
  • External Mapping
  • Interface Mode

Then click on button “Save” to save your interface.

Now we have to specify some required fields and other optional fields for defining the inbound interface. Following all fields related to creating an inbound interface for connecting to Salesforce are described. Note that there are also fields in the screen which is not needed for the SAP-PI coupling but needed for other couplings e.g. the SAP direct coupling.


4.1 Name

  • It represents the Interface Name that we are going to create and also we have to provide a meaningful description in the Description label.
  • Since we are creating an Inbound interface. So, here we recommend you to follow the naming convention as for example Account_IN for the inbound interface as shown below and Account_Out for outbound interface.





4.2 Status

Initially, it will be in the “Development” status. When we want to run the interface then we have to set it as “Deployed” as shown below.





4.3 Sequence

Enter a number in this field. This field is for numbering the interface to be shown in the logical order on screen













4.4 Operation Type

This field contains the SQL statement for an interface. For inbound interface, we need to specify an operation since this is an updated interface.
In this case, you can specify the value “Upsert”.





4.5 Field Type

Here we are specifying the direction of the interface e.g. InBound or Outbound. Since we have created an inbound interface. So, We have to specify the value as “InBound”.





4.6 Interface processing mode

Here we have to specify the processing mode as Asynchronous. If we expect a response back then we have to set it as Synchronous.





4.7 Connect with Middleware

We have to check this flag because we use SAP-PO as a middleware component. This is just to
indicate Skyvva runtime service that it is not connected directly to an SAP-Backend.





4.8 External Mapping

Since we are using SAP PO as a middleware component and as a developing a tool for mapping. This is just to indicate Skyvva runtime service that mapping will be done in SAP-PO and that you don’t need to do mapping in Skyvva framework.







If our business case needs that you want to map both in SAP-PO and in Skyvva framework then you have to
check the “Mapping in SFDC” also. But normally in most of the cases, we don’t need to do mapping in Skyvva
framework again.

Step 2 – Generate WSDL for the Inbound interface

Now we have to generate the WSDL for this inbound interface. This is needed to do mapping in SAP PO and to generate the WSDL. Go to Integration under that select details tab and then click on “Manage Middleware WSDLs” as shown below.














Click on the link “Manage Middleware WSDLs”









Now select the interface you want to export as WSDL.
After selection of an interface now click on the button “Create WSDL”. Scroll down to see the generated









Now click on the Link “View“ and then WSDL will be downloaded.





Rename the downloaded file as D_190620_SFDC_InBound_Account_IN.wsdl. Now we can import this  WSDL into ESR in SAP PO for mapping.

Step 3 – Import WSDL into ESR

First, we have to create a namespace in ESR like “urn:skyvva:salesforce“.

Now create an external definition under the namespace like below. Here the WSDL is for Account. So, we can give the name as ED_AccountUpdate.























Now import the WSDL and Save and activate it.

















Step 4 – Mapping in ESR

For this interface, we are getting the data from SAP e.g Customer data into a structure like an IDOC, RFC or as a PROXY. There is no limitation to do mapping in PO. We can do mapping in the PO just as you are used to do it in a normal way.

For example, as shown in this document, we will map the interface AccountUpdate from the IDOC-structure DEBMAS07 to Salesforce.

Step 5 – Mapping logic flow with Skyvva runtime

You have to map business data from SAP e.g. IDoc, BAPI or Proxy into the Skyvva WSDL business structure. This business structure is the result of your operation mapping in PO and will be passed into the soap receiver channel. This structure will be converted by the Skyvva module “Salesforce/Transformation” which is a custom module used in the soap receiver channel.
















We have to use Skyvva customer module in the soap receiver channel.

  • Salesforce/GetSessionID_V4















5. Service Interface

Create service interface under the namespace.




Enter the name of Service Interface and then click on create button





























Choose the category Inbound or Outbound. In our scenario we are creating an inbound interface, therefore we choose Inbound.














Now click on Save and activate it.

6. Message mapping






Create message mapping under the same namespace.


















Select the Source structure as DEBMAS07 and target was which we created as an external definition.















Do the respective mapping and save and activate it.

Here we have to define a parameter for Interface name.













Now we have to bind this parameter in the operation mapping.

7. Operation Mapping for asynchronous inbound interface

Create Operation mapping.


































Now select the inbound and outbound service interfaces and the respective mapping and also bind the parameters.

Then save and activate the operation mapping.

8. Creation of Integrated Configuration Objects

After creating the objects in ESR. We have to configure these objects in the integration directory.

First, we have to create Configuration Scenario.























Now enter the name of the scenario, description and choose a folder if you have created then press on create button.
An Integration scenario has the following objects.

  • Business System for Sender and Receiver
  • Sender and Receiver Communication channel
  • Integrated Configuration











These are the objects we should create.
We have to define our business system e.g. for the SAP-Backend. For Salesforce you can use our proposal “Salesforce” as the business system. We have to import these business systems from SLD.

9. Configuring the Sender Idoc communication channel

Create sender communication channel as shown below.

Since we are using an IDOC as a source. So, here we are using IDoc adapter in the sender channel.
















Provide the necessary details. After that save and activate the channel.

10. Configuring the SOAP receiver channel

Configuration for Tab “General”























Specify the parameters as shown in the above screenshot.

Below is the configuration for the “Advanced” Tab.












The value “TserverLocation” has to be entered for the parameter Variable Header (XHeaderName1).

Below are the settings for Tab “Module”. Here, the SKYVVA module containing the logic for session handling and transformation logic must be specified.


















Configuration of module parameters are described in detail below

11. Skyvva Module Parameters

Starting from version 2.27 Skyvva provides a single module, “Salesforce/GetSessionID_V4”, to be used with SOAP receiver channels. Module parameters are outlined below





This parameter contains the skyvva engine integration id on Salesforce. Here we recommend to use only Integration name instead of id because if we transport the objects from one environment to other environment IntegrationId will be changed but Integration Name will not be changed.



This parameter holds the path in which the session id is being stored



This parameter represents the URL(endpoint) for getting the session id. The URL is that of the Enterprise WSDL for Salesforce used for logging in and getting the session id


A flag that actives or deactivates the session pooling. Set for better performance



It will show the request payload of skyvva



This parameters holds the security token from salesforce. Necessary only of configured in the salesforce instance



It displays the SAP PI parameters in the output log



This parameter is the salesforce username


Defines the webservice operation in skyvva



It holds the password of the salesforce user used to log in to the salesforce


























12. Integrated Configuration

Create integrated configuration objects as shown below.



















Enter the required data e.g. the Communication Component, Interface and Namespace and then click on create button to create an ICO.



















Now go through the tabs from left to right to configure the relevant objects. In this first tab “Inbound Processing” here we have to specify the sender communication channel.





















Here in the “Receiver” tab, we have to specify the receiver business system.
















In Receiver interfaces tab specify the operation mapping and also the values of the parameters.

The parameter Account_Update_In is the interface name (on Skyvva side) of the interface Account.




















In the “outbound processing” tab, we have to specify the receiver channel.

13. Test the Inbound Interface.

IDOC DEBMAS07 has been triggered by ECC. Now we have to check the result in Salesforce Skyvva message board.









Customer data from SAP was successfully sent to Salesforce.











Fandest du diesen Artikel hilfreich? Ja Nein

Wie können wir helfen?