This document explains us about how to create skyvva asynchronous inbound interface with Integrate Bulk mode in SAP PI/PO with new V3 adapter module to generate the Skyvva External ID and Transaction ID?
Introduction
SKYVVA provides different processing modes and uses API Dynamic Switch where incoming data goes automatically to be processed as asynchronous, batch or bulk.
What Is Bulk?
SKYVVA Bulk Interface Processing is an interface uses for running bulk attachments. When you have a huge amount of data I.e data >= 5000 records, then we should use bulk processing to process the interface.
We should know some terms:
- BULK Mode: We have to set this flag to run our interface in bulk mode using salesforce bulk API.
- SKYVVA Bulk: SKYVVA Bulk is slow but very powerful, it allows you to do business mapping using our mapping tool and formula. Likewise, you can use SKYVVA workflow to validate the data before posting. You can use SKYVVA Bulk mode with both Bulk-processing mode, which are Parallel and Serial. The default value is Serial.With V2 Skyvva connector module we cannot support message type hierarchical data. SKYVVA Bulk will support both flat and hierarchical data.
- SFDC Bulk: We support SFDC pure bulk mode in version 1.0 or 2.0 that is very fast but cannot use SKYVVA mapping tool to do business data mapping. On the other hand, SFDC Bulk require the data has to be mapped already on the sender side and doing additional mapping to enrich the business logic is not possible using SKYVVA mapping. This mode will work with both processing mode, Parallel and Serial, for version 1.0. Version 2.0, you can only use with Serial mode processing.SFDC Bulk will support only flat structure.
- Bulk Version: SKYVVA support SFDC pure bulk mode in version1.0 or version 2.0 then we have our own skyvva bulk mode. This use skyvva workflow and mapping and thus it is more powerful but slower than pure bulk API technique from salesforce.
- Bulk Processing Mode: This fields indicate two modes which is support with bulk version 1.0 and bulk version 2.0 only parallel mode is supported. So the value is depend here the selection of field bulk version. For example When we want to use ‘ serial‘ we should select bulk 1.0.
- Parallel: When you select this processing mode, it will run parallel.
- Serial: When you select this mode, it will not run at the same time.
- Bulk Package Size: This parameter determine how many records is splitted into Bulk data size. If your Message contain 10.000 records and the value for this parameter is 1000 so you will get 10 bulk data set in Salesforce.
- Bulk Monitor Keep Size: The number of bulk execute logs to be keep.
- Bulk Sch Frequency: This is the schedule time frequency for bulk scheduler on
interface. - Bulk Integrate Time Interval (minute): The interval (minutes) used for integrate bulk job scheduler. For example, if its value is 10, then the integrate bulk scheduler will be run every 10 minutes.
#
The process and development of an inbound interface utilize the bulk api is almost the same like developing an ordinary inbound interface. How to develop an ordinary inbound interface with SKYVVA Integration Suite is described in the document “How to create an inbound interface to post a single sObject? “.
The following steps to be follow to develop and processing an interface with bulk api:
- Follow all the steps to develop an inbound interface
- Configure these parameters SforceBulkOperation, SforceBulkPacketSize and SforceBulkInterfaceId for in the soap inbound channel
- Bulk data set will be created as bulk data load job and has to be processed inside Salesforce manually
We have to understand the 4 fields we have in the message monitoring e.g.
– Business External Id
– System External Id
– Transfer Id
– Transaction Id
System External Id – For every message we have the Id field as the Skyvva system external Id field.
Transfer Id – In case of “integrateBulk” transfer Id will not be generated by SAP SKYVVA module.
Transaction Id – It is generated by skyvva api internally if you don’t set the field for ‘Custom Transaction Id’. If we set the path for this field to get the value from source. Such value we can see in the Transaction Id in the SKYVVA message monitor
Business External Id – It is the external id which we check the flag in the mapping tool.
In this example System External Id is for example the IDOC Number.
Steps needs to be done in Skyvva
Create Asynchronous Inbound Interface
New V3 works only with Skyvva message type.
Create Metadata Provider:
Create Istructure Repository:
Create Message type:
For Inbound we can use normal message type as shown.
Inbound skyvva Interface –
In this example we are creating the interfaces under “SAP PI/PO Integration App V1“.
Specify the Interface name, Description, Source/Target Name, Metadata Provider, Repository, Message type, Status, Direction and Operation Type as shown below
If we want to put the customer number into this field skyvvasolutions__SKYVVA_EXTERNAL_ID__c so that we can search in our monitor by the sap customer number for that we have to specify the path of system external Id and customer transaction Id. which comes from the IDOC source structure but here we have specify only the target skyvva sObject structure path.
If we don’t specify the Customer Transaction Id. Skyvva will generate the default transaction Id.
In this example we are specifying the path of System External Id and Custom Transaction Id as shown below.
We have to enable the Bulk mode in the skyvva interface.
Do the mapping as shown below
Download the inbound interface XSD to import to SAP PO for mapping.
We have to create the SKYVVA__SystemExternalId field as Message type field entry from the Account message type related tab.
To create Message type field entry initially we have to create Istructure as shown below.
Click on “New Istructure” to create Istructure
Now specify the Name and Category of the Istructure and then save the Istructure field.
Create the message type field entry from the Account related tab. Click on “New” to create new field entry.
Give the Message type field entry name and Istructure name and then click on Save.
Now the field entry is created as shown below.
Once we create this field in message type field entry. Now we can see this field in the Downloaded XSD.
To download the XSD.
Go to Integration details tab and then click on “Generate Metadata”
Now select the Interface name and choose file format and then click on export to generate the XSD.
Scroll down to see the generated XSD and click on View to download the XSD file.
Import this downloaded XSD to SAP PO for further mapping steps.
In SAP PI/PO we need to create Asynchronous interface
With respect to SAP its an outbound Interface(SAP to Salesforce)
Import WSDL into ESR
First, we have to create a namespace in ESR like “http://DEBMAS07_to_AccountUpdate”.
Now create an external definition under the namespace like below. Here is the XSD for Account. So, we can give the name as ED_32Demo_new
Now import the XSD and Save and activate it.
No need to create Datatype, Message type and Service Interface for Sender system SAP as we are using IDOC as a source.
Service Interface
Create service interface
Now click on Save and activate it.
Message mapping
Map the DOCNUM with SKYVVA__SystemExternalId to send the IDOC number System external Id to show in SKYVVA monitor.
Do the respective mapping and save and activate it.
Operation Mapping for asynchronous inbound interface
Create Operation mapping.
Then save and activate the operation mapping.
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.
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.
We have to specify the SKYVVA version for Acknowledgement handling with BULK mode.
Configuration of module parameters are described in detail below
Skyvva Module Parameters
“Skyvva/V3/Integration” to be used with SOAP receiver channels. Module parameters are outlined below
Parameter |
Description |
Value |
IntegrationID |
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. |
Lalitha_Test_Integration |
SessionGlobalFilePath |
This parameter holds the path in which the session id is being stored |
/usr/sap/O5B/SYS/global |
SforceAccessPoint |
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 |
https://test.salesforce.com/services/Soap/c/43.0 |
SessionPooling.Active |
A flag that actives or deactivates the session pooling. Set for better performance |
X |
SforceRequestPayload |
It will show the request payload of skyvva |
X |
SforceSecurityToken |
This parameters holds the security token from salesforce. Necessary only of configured in the salesforce instance |
By54dfe0000DerYvvv |
SforceShowSAPChannelParameters |
It displays the SAP PI parameters in the output log |
X |
SforceUsername |
This parameter is the salesforce username |
xxx@bbbb.com |
SforceWebServiceOperation |
Defines the webservice operation in skyvva |
integrateBulk |
pwdSforceLoginPassword |
It holds the password of the salesforce user used to log in to the salesforce |
xxxxxxx |
SforceBulkPackageSize |
This parameter determines how many records are split into chunks of the package size. For example if PI message contains 1000 records and the value of this parameter is 100 then we will get 10 batches each contain 100 records. |
Ex – 1000 |
sforceBulkMode |
It specifies the mode of Bulk |
Skyvva Bulk |
skyvvaVersion |
Skyvva version needs to be specify here |
Ex. 2.48 |
SforceBulkOperation |
This parameter is set when the interface uses the Bulk API. The bulk API enables transferring of mass data |
X |
SforceBulkInterfaceId |
It specifies the name of the skyvva interface |
Account_IN |
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_IN is the interface name (on Skyvva side) of the interface Account.
In the “outbound processing” tab, we have to specify the receiver channel.
Testing the interface –
Triggering the data from SAP
We have to check in Bulk control board
From the Integration details tab we have to select “Bulk Control Board”
I have sent four records from SAP. So we can see 2 batches in BULK control board.
Then it will navigate to the below page.
Select the Interface name and click on search to see the records sent from SAP.
We sent 4 records from SAP with Bulk package size as 2. So here we can see two attachments.
In this example we are processing the attachments manually using the “Process Bulk Attachment”. Not using any scheduler.
Now we can see the manual processed files below with status completed.
Now we can see the completed messages in the SKYVVA message monitor.
We can see the Business External Id as we define in the mapping tool, System external Id as IDOC Number and Transaction Id as we defined the path as customer number from SAP and transfer Id will not generate by SAP skyvva module in case of Bulk mode.
Account data transferred to Skyvva