SAP PI/PO Adapter

  1. Home
  2. Dokumente
  3. SAP PI/PO Adapter
  4. 14. How to pass Queue-ID into the URL parameter of the SAP-PI/PO SOAP Adapter?

14. How to pass Queue-ID into the URL parameter of the SAP-PI/PO SOAP Adapter?

This document describes how to create an outbound asynchronous interface with SAP PI/PO EOIO mode using SOAP 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.

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 outbound Interface

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 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.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

For EOIO mode we have to specify the “QueueId” in the endpoint as like below.

http://195.201.104.232:16080/sapo5b/XISOAPAdapter/MessageServlet?channel=Salesforce:CC_SOAP_s_IDOC_Account&QueueId=QueueName

In the QueueName, we have to give the name which we are defined in the sender channel of SAP PO.

 

Now specify the Name, description and select the type as SOAP Adapter.

Here in the properties tab specify the endpoint of the receiver system for example here we are sending data to SAP PO. So here we have to specify the endpoint of SAP PO and the username and the password of the PO system.

Specify the payload format as XML as shown above.

  • Create Metadata Provider

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Here we are creating metadata for the message type. Metadata providers are plugins that do the actual metadata extraction from files. Metadata Provider tells the data processing layer of lib md which metadata fields (types) they can extract.

In Skyvva, when we create metadata, the Name field is only the mandatory field. On MetaData the Name cannot be duplicated.

  • Create IStructure repository

The term Repository is in fact to store data and structure of a message. The purpose of Istructure is An Interface for a structure that contains the metadata of a structure.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Create Message Type

Now Create Message Types for IStructure Repository. The free define message type is a type and structure definition which is stored in the Repository. The message type can be resided in a WSDL, in SAP IDoc, SAP Bapi, etc… It can be stored in a file in CSV, XML or other formats.

For the Message Type, you have to use our defined Structure. As we are sending the Opportunity from Salesforce to create a project in SAP. Here we use  Account sObject.

{
“SOAP_Service”: {//TYPE WILL BE : “WSDL Service”
“SOAP_Request”: {//SOAP_Request TYPE WILL BE : “WSDL Request”
“SOAP_URLPARAM”: { //TYPE WILL BE : “WSDL URL Parameter”
“SOAP_URL_PATH”: {}, // TYPE WILL BE : “WSDL Path Parameter” : This will use in to build Query path of Endpoint URL
“SOAP_URL_QUERY”: {} //TYPE WILL BE : “WSDL Query Parameter” : This will use in to build Query path of Endpoint URL
},
“SOAP_Header”: {},//TYPE WILL BE : “WSDL Header” : This is just of identify not need to include in building of request or response//Hear will be Actual Object which we suppose to insert in header of Request : Must be start by Object
“SOAP_Body”: {//TYPE WILL BE : “WSDL Body” : This is just of identify not need to include in building of request or response
//Hear will be Actual Object which we suppose to insert in Body of Request : Must be start by Object
“ISTRUCTURE_Account”: {
“Account”: {
“BillingCity”: “”,
“SAP_Customer_Number__c”: “”
}
}
}
},
“SOAP_Response”: { //TYPE WILL BE : “WSDL Response”
“SOAP_Header”: {},//TYPE WILL BE : “WSDL Header” : This is just of identify not need to include in building of request or response
“SOAP_Body”: {//TYPE WILL BE : “WSDL Body” : This is just of identify not need to include in building of request or response
//Hear will be Actual Object which we suppose to insert in Body of Response : Must be start by Object
}
}
}
}

In Istructure repository click on “Open Editor” to create the message type as shown below.

 

 

 

 

 

 

 

 

 

 

 

Select file type as JSON and give input to open text box as below:

 

 

 

 

 

 

 

 

Click on the Save button and you can see the below message type.

 

 

 

 

 

 

 

 

 

 

Creating an Outbound Asynchronous interface

Create Outbound interface as “Account_Async_Out” and provide the necessary details.

 

 

 

 

 

 

 

 

 

 

Specify the Outbound adapter as shown below.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Do the mapping in Skyvva as shown below.

Here map the QueueId with the Id of the sObject.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Then save the data mapping and then save the interface.

Download the WSDL and import it into SAP PO for mapping.

  • Designing the objects in ESR

Import the Account WSDL as external definition into ESR and save activate it

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

As we sending data to SAP. Here we are using DEBMAS07 Idoc as a target structure. Import Idoc from SAP and activate it.

 

 

 

 

 

 

 

 

Create outbound service interface as shown below.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Create 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

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.

We need to select the Quality of service as Exactly once in order and give the queue name as shown in the screenshot below.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Provide the necessary details as shown and then save and activate the channel.

  • Configuring the IDOC 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.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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[]{‘0014E000012qeNYQAY’};
skyvvasolutions.CallOutResponse r=skyvvasolutions.Iservices.invokeCallout2(‘SAP_Skyvva_Salesforce’,’Account_Async_Out’,ids,’ASYNC’, c);

 

Check the message on the message board. Message sent successfully to SAP PO.

 

 

 

 

 

 

Messages got delivered to SAP successfully from PO.

 

Fandest du diesen Artikel hilfreich? Ja Nein

Wie können wir helfen?