This document describes how to create an inbound interface using SKYVVA Bulk mode with SKYVVA connector module.
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 >= 5000records, 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.
- 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.
- 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
2. SKYVVA interface creation
Create an interface, for example, “IntegrateBulk” as shown below.
maximum integrate Batch size will be 5000
As we are using SKYVVA Bulk 1.0. So, we have to check the Bulk mode checkbox as shown below:
Now save the interface and download the WSDL from the classic mode.
Step 3 – Import WSDL into ESR
First, we have to create a namespace in ESR like “urn:skyvva:integrateBulk“.
Now create an external definition under the namespace like below. Here the WSDL is for Account. So, we can give the name as AccountIntegrateBulk.
Import the WSDL and save and activate the external definition.
- Sender data type
Create sender data type as shown below
after creating the source data type click on save and activate.
- Source message type
Create the message type as shown below:
- Outbound Service Interface
Create an Outbound service interface, in that select category as outbound and select the respective message type.
then save and activate the outbound service interface.
- Inbound Service Interface
Create an inbound service interface, in that select category as inbound and select the respective external definition.
Save and active the inbound service interface.
- Message Mapping
Create message mapping as shown below:
Insert the respective source and target structure and then do the mapping.
Now save and activate the message mapping.
- Operation Mapping
Create Operation mapping as shown below
Select the respective outbound and inbound service interfaces and also the message mapping then save and activate the operation mapping.
- 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/GetSessionID_V4” which is a custom module used in the soap receiver channel.
We have to use SKYVVA connector module in the soap receiver channel.
- Salesforce/GetSessionID_V4
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 SOAP UI 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 SOAP receiver channel (Module version 3)
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 must be specified.
The below parameters has the following meaning.
If we use the V3 module version then we have to specify only the salesforce ID of the interface name. For V4 module version, we use only interface name in “SforceBulkInterfaceId”
- Configuring the SOAP receiver channel (Module version 4)
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 must be specified.
Configuration of module parameters are described in detail below
- SKYVVA Module Parameters
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://login.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 |
sforceBulkMode | It specifies the mode of Bulk | Skyvva Bulk |
skyvvaVersion | Skyvva version needs to be specify here | Ex. 2.42 |
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 | AccountContactIntegrateBulk |
BulkCreateLogFile |
This parameter is used to create the error log file for bulk batch job | X |
BulkLogFileFolder | This will create the folder for the error log files | X |
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 Inbound Interface.
Triggering the data from the Source system. Now we have to check the result in Bulk Control board as shown below.
Here we have to select the Bulk interface then click on search.
We have a scheduler to schedule the jobs during a particular time intervals.
Here we can see the number of records passed from the Source system
If we want to test large amount of data for example-
we are sending 30 records from Source to target Salesforce then we have to specify the parameter “SforceBulkPacketSize” in SKYVVA module.
Lets say the SforceBulkPacketSize = 5 in receiver channel and then test the interface with 30 records. In Salesforce we can see 6 attachments. Each attachment may contain 5 records.
So now we can see each attachment may contain 5 records.