This document describes how to create an outbound hierarchical interface in SAP PI/PO using SKYVVA SFDC2SAPPI Adapter. When talking about the outbound interface in this document the direction Salesforce to SAP is meant e.g. Salesforce Interface will be called from SAP-PO. The development of an outbound 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.
Introduction #
We can link two different object with each other using foreign key or tree mapping.
What Are Hierarchical Interfaces? #
- To arrange interfaces in an order means hierarchical interface. It is structure in which interfaces are linked according to levels of importance.
- In hierarchical Interfaces, one interface is a parent’s of another interface. It means that child interface inherited External ID from its parent’s interface. For example, Account interface is parent’s contact interface because of Contact inherited External ID from Account.
- Also One parent interface can have many child account but child interface has only single parent interface. eg. one Account can store many Contacts, but one Contact can’t store many Accounts.
What is the foreign key? #
A FOREIGN KEY is a field (custom fields) in one Interface that refers to the PRIMARY KEY . The Interface containing the foreign key is called the child Interface, and the Interface containing the candidate key is called the parent Interface.
- 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 either in SAP or in Salesforce. It based on the generation and customized the 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.
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.
- Outbound and Inbound Interface
The term outbound is used when data is sent out from Salesforce to SAP. Therefore we call interfaces for sending data out of Salesforce to SAP “Outbound Interface”. For the other direction, we call interfaces as “Inbound Interface” when data is sent from SAP to Salesforce. So the reference point is set to Salesforce.
Prerequisite for creating an Outbound 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.
You start developing outbound interface when you want to send data from Salesforce over PO to SAP-Backend. Of course, you can send data from Salesforce to anywhere not just to SAP-PO. But the focus of this document is sending data from Salesforce over SAP-PO to SAP-Backend e.g. an SAP ECC 6.0.
- Creating an outbound adapter in Salesforce.
To Create an Adapter in Salesforce. Go to Adapter tab as shown below.
In the Adapter page. Click on New to create an adapter.
select the type as SFDC2SAPPI Adapter.
Here in the properties tab, we have to specify the Now specify the Name, description, and properties as shown in screenshots below.
- Creating an Outbound synchronous interface
Here we have to create four interfaces 2 for Parent and child Request and other 2 for Parent child Response as shown below.
Create Parent Outbound interface as “Quote_SFDC_Sync_OUT” and provide the necessary details as shown in detail below.
Do the necessary mapping as shown below.
After providing all the details. Save the outbound interface.
Now create the child request interface as shown below.
Do the respective mapping as shown below
Now go to Parent interface related tab as shown
Now add the child interface as ichained interface in the parent interface related tab as shown below.
We need to add SKYVVA__PARENTID field in the parent interface ISTRUCTURE as shown.
and map this SKYVVA_PARENTID field to Quote Id.
Create parent inbound interface and provide the necessary details as shown in detail below.
Create child inbound interface as shown below
Add foreign key lookup as shown below to link the Quotelineitem with Quote.
In the Inbound parent interface related tab add the child interface as Ichained as shown.
Download the request and response WSDL’s and import it into SAP PO for mapping.
- Designing the objects in ESR
Import the Request WSDL as external definition into ESR and save activate it
Import the response interface WSDL as external definition, save and activate it.
As we are using BAPI from SAP. So no need to create Data type, Message type, and Service Interface.
Create an outbound service interface as shown below.
Create request and response message mapping as shown below
Create Operation mapping as shown below
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.
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.
Configuring the Sender SOAP communication channel
Create sender communication channel as shown below.
Since we are using Salesforce as a source. So, here we are using SOAP in the sender channel.
Provide the necessary details as shown and then save and activate the channel.
- Configuring the RFC receiver channel
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.
Here we have to specify the value of Reference Customer in the parameterized mapping of ESR. In ICO we have to specify the value of reference customer.
In the “outbound processing” tab, we have to specify the receiver channel.
Test the Outbound Interface.
Triggering the data from the Source system using the following Apex Code.
skyvvasolutions.CallOutControl c=new skyvvasolutions.CallOutControl();
c.returnXml=true;
c.returnListRecord=true;
c.isCreateMessage=true;
c.actionDoIntegrate=true;
String[] ids=new String[]{‘0Q0f0000000ASCuCAO’};
skyvvasolutions.CallOutResponse r=skyvvasolutions.Iservices.invokeCallout2(‘SAP PI/PO Integration App V1′,’Quote_SFDC_Sync_OUT’,ids,’SYNC’, c);
Check the message in the Skyvva message board. Message sent successfully to SAP PO and got the response back from SAP.