In this article
You can find below the major changes and improvements of the Salesforce Connector 1.1.x
The connector download section can be found at this page.
OAuth2 token generation mechanism was not using proxy settings
When authenticating through OAuth2 flows the token generation mechanism was not using the proxy settings specified on Salesforce Metadata.
This was causing connection issues in environment where using a proxy is necessary.
Proxy settings specified on Salesforce Metadata are now correctly used when authenticating with OAuth2.
- Salesforce Templates 2019-01-10 or higher
Bulk Mode now support specifying a chunk size when extracting Salesforce data
When extracting data from Salesforce with Bulk Mode there is now the possibility to specify the chunk size which should be used.
Chunk size is used by Salesforce to automatically calculates a number of batches based on the value specified by analyzing data to be extracted and splitting it into multiples batches.
This can be useful when you are retrieving a large set of data to avoid experiencing timeouts errors from Salesforce, as extraction will be performed in multiple batches.
Refer to documentation of 'SForce Bulk Chunk Size' parameter which is available on Load and Replicator Templates.
For further information about chunking, you can also refer to Salesforce's PK Chunking Header reference documentation.
New parameter to avoid logout when a session end
A new parameter is available to disable the logout performed when a Salesforce operation is finished.
The parameter is called 'Disable Session Logout' and can be found in Metadata on 'Advanced / Connection' tab of server node.
This can be useful when executing multiple autonomous Salesforce sessions in parallel, with startdelivery.bat (.sh) for instance, to avoid parallel sessions to be invalidated when one of them closes the connection.
Note that connection will still be automatically closed by Salesforce when it reaches the session timeout defined in Salesforce Session Settings without being used.
Note also that 'Disable Session Logout' settings defined in Metadata can be overridden on Salesforce Replicator Template if required.
Reversed message node will now be reversed without length
'Message' node which is reversed under 'SForceExchangeOutput' will now be reversed without length, for the length to be calculated automatically based on the target database instead of being forced to 255.
This has been modified to avoid truncations or issues when the message returned by Salesforce is longer than 255 characters.
As this modification applies when reversing objects, note that this will affect only newly reversed objects.
For existing objects, the length of 'Message' node can be modified manually if required.
Class Not Found Exception issue
This version fixes the "java.lang.ClassNotFoundException: org.apache.commons.beanutils.PropertyUtils" issue that could happen when exporting Salesforce data.
The new connector is now shipped with an additional library (commons-beanutils-1.9.3.jar) containing the required class which is used by the Salesforce API in some situations.
- Salesforce Templates 2018-09-28 or higher
Salesforce Bulk Mode support new parameters at read
The connector supports new parameters when using Bulk Mode to retrieve Salesforce data, which has been added also in the templates.
It supports defining the concurrency mode, timeout for job execution, and pollint for checking the job status.
Support additional OAuth2 flows
All the OAuth2 flows supported by the Designer and Runtime can now be used with the Salesforce connector, which only supported 'Authorization Code Grant' in the previous versions.
Ability to ignore fields based on a pre-defined value
The connector now supports ignoring fields based on a user defined keyword.
When the keyword is encountered in data, the field is not sent to Salesforce.
This applies when writing data into Salesforce and is specified using the 'Ignore Field Keyword' parameter available on the integration template.
Fix encoding issue while using Bulk Mode to read Salesforce data
There was an encoding issue when reading Salesforce data using Bulk Mode, which is now fixed.
Accented characters for instance were badly encoded.
- Salesforce Templates 2018-06-15 or higher
Bulk Mode supported when reading Salesforce data
The Salesforce BULK API which was supported when writing data into Salesforce can now also be used when reading data from Salesforce.
As a reminder this API is particularly useful when working with a lot of data, to have better performances and to avoid reaching the Salesforce limitation about the number of batches allowed per day.
From this version you have now the possibility to enable BULK mode when reading data from Salesforce.
Note that this might not be relevant to use this when working with small amount of data, in which you'll not notice performance enhancements.
Salesforce API updated to version 42
The Salesforce partner API used by the connector has been updated from version 26 to version 42.
Using a more recent version of the Salesforce API allows to benefit of the optimizations and fixes that might have been done by Salesforce on their API.
You might also notice new fields when reversing Salesforce Objects, which were not returned by the previous version.
New timeout parameters
Two new parameters have been added to the Salesforce Metadata to offer the possibility to change the timeouts.
The value must be provided in milliseconds.
- 'Connection Timeout': timeout used when opening a connection to Salesforce
- 'Read Timeout': timeout used when reading data from Salesforce data
New Bulk parameter
The connector now supports a new option when loading data into Salesforce.
This parameter allows to indicate if the result of the operations should be retrieved or not.
When working with a lot of data, retrieving the result of operations can be time consuming, and this offers the possibility to disable it.
The option, called 'SForce Bulk Read Salesforce Response', can be found on the Salesforce Integration Template.
Datatype conversion Issue
When loading fields from the "SForceExchangeOutput" into a target database, the chosen datatype was not correct.
It was always set to "string" so it causes issues when retrieving the value of the "IsCreated" for instance, which is a boolean.
The conversion of datatype should now be performed correctly.
"InvalidSessionId" error when multiple sessions are executed at the same time
When executing multiple Mappings / Processes using the same Salesforce Connection details in parallel, an "InvalidSessionId" might be thrown.
This was due to an issue about using the same connection in parallel, that should be fixed now.
Timeout could occur when using BULK mode through a proxy
When using the BULK mode on a Salesforce Server accessed through a proxy, a timeout could occur on some environments.
The issue is fixed in this version.
Out of Memory could happen when processing a lot of NULL values
Loading a lot of null values into Salesforce produced Out of Memory errors.
There was an issue about the management of null values when writing data into Salesforce.
It is now fixed.