COZYROC Salesforce components, part of COZYROC SSIS+ suite since 2009, are third-party plug-ins for Microsoft SSIS that make it easy to integrate or migrate data to and from Salesforce. They will preserve the integrity of your data by always using the SOAP-based and REST-based APIs. You can use any application, service or database supported by SQL Server Integration Services (SSIS) or COZYROC’s toolkit as the source or destination for Salesforce. The toolkit is easy to use and follows the same guidelines and principles used by the standard out-of-the-box SSIS components. In addition, COZYROC also provides short and informative demonstration videos, providing step-by-step instructions on how to get started.
The COZYROC SSIS+ library also includes the powerful and elegant Data Flow Task Plus, not found in any other competitive product on the market. Data Flow Task Plus allows creation of dynamic data flows at runtime and can be used with COZYROC's Salesforce adapters. You can create processes where the addition or deletion of Salesforce object fields doesn't necessitate modification of existing SSIS packages. This powerful feature requires no programming skills to use and greatly simplifies your maintenance efforts.
The Salesforce integration package consists of:
- Salesforce Connection Manager
- Stores the credentials and functionality for connecting to Salesforce service.
- Well documented API for use by user-defined scripts.
- Salesforce Source component
- Retrieves data from a Salesforce object.
- Input type can be either an object or a SOQL statement.
- The source can be dynamically modified at runtime using an SSIS expression.
- Supports retrieval of deleted and archived records.
- Salesforce Destination component
- Inserts or updates data in a Salesforce object.
- Supports four entity actions: Create, Update, Delete or Upsert.
- Provides information about records with errors as well as the unique identifier assigned for new records created.
- The destination can be dynamically modified at runtime using an SSIS expression.
- File Transfer Task
- Allows working with Salesforce Files (download, upload, etc.)
- Reusable scripts
- Unique technology which allows user-defined reusable scripts for additional Salesforce integration scenarios.
- Support both regular SOAP and bulk REST API.
Technical Specifications
Case Studies
Salesforce Source
In this section we will show you how to set up a Salesforce Source component.
- Before you begin, configure a Salesforce connection manager.
- Drag the Data Flow Task from the SSIS Toolbox to the Control Flow canvas.
- Click the Data Flow tab to go to the Data Flow canvas.
- In the SSIS Toolbox, locate the Salesforce Source component and drag it onto the Data Flow canvas.
- Double-click on the component on the canvas.
- Once the component editor opens, select the connection manager you configured earlier from the Connection drop-down list.
- For Mode, either select Regular or Bulk.
- For Input, either select Object or Statement.
- If you selected Object, then select the object you want to work with from the drop-down list. You may also specify a Filter, as shown in the figure.
Salesforce Destination
In this section we will show you how to set up a Salesforce Destination component.
- Before you begin, configure a Salesforce connection manager.
- Configure a source component that will provide the data to be written to Salesforce.
- Ensure that you are on the Data Flow canvas.
- In the SSIS Toolbox, locate the Salesforce Destination component and drag it onto the Data Flow canvas.
- Connect the blue arrow from the source component or the data flow transformation that you want to immediately precede the Salesforce Destination component.
- Double-click on the component on the canvas.
- Once the component editor opens, select the connection manager you configured earlier from the Connection drop-down list.
- Choose the desired Action (Create, Update, Delete, or Upsert).
- Choose the Object you will be working with.
- The options will vary depending on the Action you selected. Check the options you desire. Descriptions of the options can be found in the Parameters section of the Salesforce Destination documentation.
- For Mode, either select Regular or Bulk.
- Click OK to close the component editor.
Salesforce CRM Analytics Connection
In this task, we will show you step-by-step how to create a connection to Salesforce CRM Analytics REST API using COZYROC's REST Connection Manager.
Congratulations! You have now established a connection to your Salesforce CRM Analytics instance.
In this guide, we will show how to read data from the Salesforce CRM Analytics service resource using the COZYROC REST Source component.
In this guide, we will show how to write data to the Salesforce CRM Analytics service resource using the COZYROC REST Destination component.
Salesforce Connection
In this section we will show you how to set up a Salesforce Connection Manager to access your Salesforce service.
- Once the connection manager dialog opens, enter your User name, which is an email address associated with your Salesforce account.
- Enter your Password, which is your Salesforce password with your security token appended after it (no spaces and do not add a '+' character in between. You only want to concatenate the two.).
- Click on Test Connection.
- On the Advanced tab, enter the correct Server URL for the Salesforce soap version you want to use. Example: https://login.salesforce.com/services/Soap/u/48.0
(Please see the What's New section on this page to see which versions of Salesforce soap can be used for the version of COZYROC you have installed. If you leave this blank then the component will default to the highest version for the COZYROC version you have installed.)
Overview
Salesforce Connection Manager is SSIS Connection Manager for establishing Salesforce connections. Use the API to build components based on Salesforce Connection Manager.
Quick Start
In this section we will show you how to set up a Salesforce Connection Manager to access your Salesforce service.
- Once the connection manager dialog opens, enter your User name, which is an email address associated with your Salesforce account.
- Enter your Password, which is your Salesforce password with your security token appended after it (no spaces and do not add a '+' character in between. You only want to concatenate the two.).
- Click on Test Connection.
- On the Advanced tab, enter the correct Server URL for the Salesforce soap version you want to use. Example: https://login.salesforce.com/services/Soap/u/48.0
(Please see the What's New section on this page to see which versions of Salesforce soap can be used for the version of COZYROC you have installed. If you leave this blank then the component will default to the highest version for the COZYROC version you have installed.)
Parameters
Server
Use the Server page of the Salesforce Connection Manager dialog to specify properties for connecting to Salesforce service.
- Test Connection
- Confirm connection manager configuration by clicking Test Connection.
Specify user name in email-like format.
Specify password to access Salesforce service.
Specify the number of seconds before timing out session connect. The default value of this property is 60 seconds.
Specify if all clients should use the same connection. This property has the options listed in the following table.
Value Description True All clients use same connection (default). False Every client use different connection. This parameter is not visible in the connection manager dialog.
Advanced
Use the Advanced page of the Salesforce Connection Manager dialog to to specify additional properties for your connection to the Salesforce service.
Specify Salesforce service URL. This property should be explicitly specified when doing sandbox testing. Sample URLs:
- https://test.salesforce.com/services/Soap/u/9.0
- https://test.salesforce.com/services/Soap/c/17.0
- https://test.salesforce.com/services/Soap/u/20.0
Specify the ID of the organization against which you will authenticate Self-Service users.
Specify the ID of the portal for this organization.
Specify to allow duplicates to be preserved. For further information please check here.
Specify to allow field truncation. For further information please check here.
Specify to roll back all changes unless all records are processed successfully. For further information please check here.
Specify the Salesforce identifier of the assignment rule to be invoked when lead or case is created. For further information please check here.
Proxy
Use the Proxy page of the Salesforce Connection Manager dialog to specify properties if your server is behind firewall.
Specify the name or IP address of the proxy server. If not specified, proxy server is not used.
Specify the port number on the proxy server to use for the connection.
Specify user name to access the proxy server.
Specify password to access the proxy server.
Retry On Error
Use the Retry On Error page of the Salesforce Connection Manager dialog to specify properties for the optional error retry. This parameter only applies to the connection with Salesforce. It does not have any effect on errors for individual elements of data. The individual element errors can be directed to a destination (e.g. a file or table) via the Error Output.
Optional. Specify to retry only if the error message matches the RegEx pattern. If no RegEx pattern is provided, connection errors will automatically be retried. Specifying a RegEx pattern will indicate that only certain errors should be retried. If you want all connection errors to be retried, leave this property blank.
Specify the maximum request retry number.
Specify the number of seconds to pause between retries. The default is 30 seconds.
Knowledge Base
- Error Message: Salesforce Connection Manager: The operation has timed out.
- Where can I find the documentation for the Salesforce Connection?
- Error Message: The underlying connection was closed: An unexpected error occurred on a send. (System.Web.Services)
- How to make sure Salesforce Connection Manager is using only TLS 1.2 protocol?
- Error Message: An existing connection was forcibly closed by the remote host
What's New
- New: Updated web service proxy to version 54.
- New: Support for Salesforce library files maintenance with File Transfer Task.
- New: Parameters for Retry On Error.
- New: Updated web service proxy to version 48.
- New: Updated web service proxy to version 45.
- New: Updated web service proxy to version 42.
- New: Updated web service proxy to version 41.
- New: Updated web service proxy to version 37.
- New: Updated web service proxy to version 36.
- New: Enabled support for TLS 1.1 and 1.2 protocols.
- New: Updated web service proxy to version 30.
- New: A new parameter OrganizationId.
- New: A new parameter PortalId.
- New: Updated web service proxy to version 26.
- New: Updated web service proxy to version 23.
- New: Updated web service proxy to version 19.
- New: Included support for proxy server.
- New: A new parameter ServerUrl to specify service URL. This is useful for sandbox testing (Thank you, Frank).
- New: Introduced connection.
Related documentation
Overview
The Salesforce Source Component is an SSIS Data Flow Component for consuming data from the Salesforce Service.
Quick Start
In this section we will show you how to set up a Salesforce Source component.
- Before you begin, configure a Salesforce connection manager.
- Drag the Data Flow Task from the SSIS Toolbox to the Control Flow canvas.
- Click the Data Flow tab to go to the Data Flow canvas.
- In the SSIS Toolbox, locate the Salesforce Source component and drag it onto the Data Flow canvas.
- Double-click on the component on the canvas.
- Once the component editor opens, select the connection manager you configured earlier from the Connection drop-down list.
- For Mode, either select Regular or Bulk.
- For Input, either select Object or Statement.
- If you selected Object, then select the object you want to work with from the drop-down list. You may also specify a Filter, as shown in the figure.
Parameters
Configuration
Use the parameters below to configure the component.
Select an existing Salesforce connection manager.
Related Topics: Salesforce Connection Manager
Specify the number of rows to be retrieved as a batch. The maximum is 2000.
Specify the input type. This parameter has the options listed in the following table.
Value Description Object Input type is Salesforce object. Selecting this value displays the dynamic parameters Object, ObjectFilter 1.5 SR-2. Statement Input type is a SOQL statement. Selecting this value displays the dynamic parameter Statement. After making this change, use the Refresh command in the 'Column Mappings' tab to reload the source object metadata.Select the read mode. This parameter has the options listed in the following table.
Value Description Regular Read data using regular mode (default). Bulk Read data using bulk mode. Select the Salesforce data object.
Specify the object filter statement using SOQL statement expressions.
Specify a SOQL statement.
Use this parameter to include all records in the result, including the deleted records. This parameter has the options listed in the following table.
Value Description True The deleted records are included in the result. False The deleted records are not included in the result. Specifies the amount of records to retrieve in PK Chunking bulk mode. If 0, PK Chunking is not used. The default is 0.
Knowledge Base
- Where can I find the documentation for the Salesforce Source?
- Error Message: "Failed to process ... for column COLUMN_NAME"
- Why am I unable to see a lookup field that is newly added in Salesforce?
- Error Message: MALFORMED_QUERY: unexpected token: True
- How to include the missing columns when using an SOQL statement
Related scripts
Samples
What's New
- New: A new parameter PKChunkSize to use PK Chunking bulk mode.
- Fixed: Got NULL when an output column name differs from an external column name. (Thank you, Lucas)
- Fixed: Failed with error "System.ObjectDisposedException: Cannot access a disposed object." when reading data in bulk. (Thank you, Venkat)
- New: Support for SOQL statements returning composite data.
- New: In case of an error when reading data in bulk, the component will retry.
- New: Included command to close job after the bulk read is complete.
- Fixed: Metadata initialization failed when specified SOQL statement did not return any rows (Thank you, Brett).
- Fixed: Id fields from related objects missing (Thank you, Ranjan).
- Fixed: Metadata of certain related fields was not configured.
- Fixed: Failed with error 'Unhandled type: urnRecordTypesSupported' (Thank you, Allen).
- Fixed: MALFORMED_QUERY error in design mode when using aggregate query with LIMIT clause.
- Fixed: Failed with error "INVALID_TYPE: sObject type '...__r' is not supported. If you are attempting to use a custom object, be sure to append the '__c' after the entity name. Please reference your WSDL or the describe call for the appropriate names." when trying to use relationship fields in SOQL statement (Thank you, Imran).
- New: Improved the metadata initialization when using SOQL statements (no more missing columns if the result contains empty fields).
- New: Support for Bulk mode for SOQL statements.
- Fixed: The "Preview" failed with "EXCEEDED_ID_LIMIT" error under some conditions.
- Fixed: Bulk job session is now closed at the end.
- New: Component can now retrieve deleted records in bulk mode.
- New: A new parameter Mode with two options: Regular and Bulk. When bulk mode is used, the component will use Salesforce bulk read functionality.
- Fixed: Component failed with "Failed to process ..." error when processing input columns of type binary.
- New: Component now supports aggregate SOQL statements (Thank you, Greg).
- Fixed: Component failed with “INVALID_TYPE: sObject type ‘…’ is not supported.” error when processing certain SOQL statements containing relationships (Thank you, Jonlee).
- New: A new parameter ObjectFilter.
- Fixed: Component failed with "INVALID_TYPE: sObject type '...' is not supported." error when processing certain SOQL statements containing relationships (Thank you, Ben).
- Fixed: Component failed to load object with more than 250 rows of data.
- New: A new parameter IncludeDeleted to retrieve all records, including deleted.
- New: Introduced component.
Related documentation
Overview
The Salesforce Destination Component is an SSIS Data Flow Component for loading data into a Salesforce object.
Quick Start
In this section we will show you how to set up a Salesforce Destination component.
- Before you begin, configure a Salesforce connection manager.
- Configure a source component that will provide the data to be written to Salesforce.
- Ensure that you are on the Data Flow canvas.
- In the SSIS Toolbox, locate the Salesforce Destination component and drag it onto the Data Flow canvas.
- Connect the blue arrow from the source component or the data flow transformation that you want to immediately precede the Salesforce Destination component.
- Double-click on the component on the canvas.
- Once the component editor opens, select the connection manager you configured earlier from the Connection drop-down list.
- Choose the desired Action (Create, Update, Delete, or Upsert).
- Choose the Object you will be working with.
- The options will vary depending on the Action you selected. Check the options you desire. Descriptions of the options can be found in the Parameters section of the Salesforce Destination documentation.
- For Mode, either select Regular or Bulk.
- Click OK to close the component editor.
Parameters
Configuration
Use the parameters below to configure the component.
Select an existing Salesforce connection manager.
Related Topics: Salesforce Connection Manager
Select a destination object action. This parameter has the options listed in the following table.
Action Description Create Create a new record in the destination object. Update Update an existing record in the destination object. You must specify the appropriate object record identifier for the update to work. Delete Delete an existing record from the destination object. You must specify the appropriate object record identifier for the delete to work. Upsert 1.4 SR-3 Update and insert a record in the destination object. Selecting this value displays the dynamic parameter ExternalId. After changing the action, you must use the Refresh command in the 'Column Mappings' tab to reload the destination object metadata.Specify the number of rows to be sent as a batch. The maximum for regular mode is 200. The maximum for bulk-load mode is 10,000.
Select bulk-load concurrency mode. This parameter has the options listed in the following table.
Value Description Parallel Process batches in parallel mode (default). Serial Process batches in serial mode. Processing in parallel can cause database contention. When this is severe, the job may fail. If you're experiencing this issue, submit the job with serial concurrency mode. This guarantees that batches are processed one at a time. Note that using this option may significantly increase the processing time for a job. Specify the destination Salesforce object where the data is to be loaded.
Specify the field for the external identifiers used in the upsert action.
Select the destination object processing mode. This parameter has the options listed in the following table.
Value Description Regular Process the data in regular mode. BulkData Process the data in bulk-load data mode. BulkBinary Process the data in bulk-load binary mode. Select variable to store bulk-load job identifier. Optional.
Specifies how NULL values are handled. This parameter has the options listed in the following table.
Options Description True The NULL values are ignored and not sent for processing. False The NULL values are sent for processing. Specify how to handle rows with errors.
Contains the unique identifier of the added, updated or deleted record.
Specify the relationship name for updating the foreign key lookup with an external identifier.
Specify the referenced object for updating the foreign key lookup with an external identifier.
Specify the external identifier field for updating the foreign key lookup with an external identifier.
Specify optional bulk job information in XML format. For further review Salesforce documentation. Optional.
Knowledge Base
- Where can I find the documentation for the Salesforce Destination?
- How can I accomplish a HardDelete in Salesforce Destination?
- Why am I unable to see a lookup field that is newly added in Salesforce?
- How to add timezone to the datetime column?
- Missing objects or columns when using Salesforce Destination Component
Related scripts
What's New
- Fixed: Missing fields when using Update action (Thank you, Amit).
- Fixed: Id field was not included in the list of available mapping columns when using Upsert action.
- Fixed: IgnoreNullValue parameter didn't work properly when bulk-mode was used.
- Fixed: Component failed with error "type must be specified for polymorphic foreign key field: Who" (Thank you, Mustafa).
- New: A new parameter BulkJobInfo for optional bulk job information.
- Fixed: Component assumed input date/time columns without time zone information are local time and converted them to UTC. This broke backwards compatibility for existing packages (Thank you, Bharat).
- Fixed: Component will now convert input date/time columns to UTC time.
- New: A new parameter IgnoreNullValue.
- New: A new parameter Concurrency with two options: Parallel and Serial.
- New: Component now permits use of identifier lookup fields for the Upsert action.
- Fixed: Component failed with error "The remote name could not be resolved" when using bulk-load mode with test service instances.
- New: A new parameter JobIdVariable to store bulk job identifier in variable.
- Fixed: Component failed with "Column data type is not supported by PipelineBuffer class." error when processing input columns of type DT_DBDATE (Thank you, Ellen).
- New: Component can now update foreign key lookups with external identifier.
- New: Component now supports setting object fields to NULL.
- Fixed: Component failed with "... is not valid for the type xsd:double" when used in international environment (Thank you, Blazej).
- New: Component now provides newly created records identifier (Thank you, Sam).
- New: Component now supports Upsert action - update and insert of records (Thank you, Brian).
- New: Component now supports update and delete of records.
- Fixed: Component failed under SQL 2008 when ErrorDescription column was not used.
- New: Introduced component.
Related documentation
Overview
Configuration is provided for establishing connections with Salesforce Marketing service. The configuration is used in the REST Connection Manager.
Setup
Press icon to get more information about the connection parameters.
Obtain data
Use REST Source component to get data from service resource.
Insert data
Use REST Destination component to insert data into service resource.
Configuration
The provided configuration handles the authentication aspect of communicating with the service. To invoke endpoints, specific to you integration needs, consider defining custom resources (to be used with REST Source and/or REST Destination) or use the REST Web Service Request Task. If you have suggestions for further improvements, we will be happy to hear your feedback.
Download the configuration from here. Then review the KB article posted here how to use the configuration.
Base URL address: https://[domain].rest.marketingcloudapis.com
.
- User
-
The authentication uses an authorized token. The token will be refreshed with the following expression:
{{=Date.now() + (response.expires_in - 300) * 1000}}
.The authentication has the following user-defined parameters:
- client_id: Required. Specify client ID.
- client_secret: Required. Specify client secret.
- redirect_uri: Required. Specify redirect_uri.
- Scope: https://developer.salesforce.com/docs/atlas.en-us.mc-apis.meta/mc-apis/rest-permissions-and-scopes.htm
The following request parameters will be automatically processed during the authentication process:
-
Authorization:
Bearer {{=token.Access}}
Documentation: https://developer.salesforce.com/docs/atlas.en-us.mc-app-development.meta/mc-app-development/integration-app-auth-code.htm.
- Service
-
The authentication uses a session token.
The authentication has the following user-defined parameters:
- client_id: Required. Specify client ID.
- client_secret: Required. Specify client secret.
- Scope: https://developer.salesforce.com/docs/atlas.en-us.mc-apis.meta/mc-apis/rest-permissions-and-scopes.htm
The following request parameters will be automatically processed during the authentication process:
-
Authorization:
Bearer {{=token.Access}}
Documentation: https://developer.salesforce.com/docs/atlas.en-us.mc-app-development.meta/mc-app-development/integration-s2s-client-credentials.htm.
- [Read] action
-
The result is extracted from:{{=response}}
.
The result is paginated.The following request parameters will be automatically processed:
-
$page:
{{=parameters.iterator}}
-
$pagesize:
{{=parameters.batchSize}}
-
_includeUserParameters:
{{=parameters}}
-
$page:
- [Create] action
-
The action uses POST method.The following request parameters will be automatically processed:
-
_includeUserParameters:
{{=parameters}}
-
application/json:
{{=item}}
-
_includeUserParameters:
- [Update] action
-
The action uses PUT method.The following request parameters will be automatically processed:
-
_includeUserParameters:
{{=parameters}}
-
application/json:
{{=item}}
-
_includeUserParameters:
- [Delete] action
-
The action uses DELETE method.
- ShortText
Data type: DT_WSTR ( length 255 )
- LongText
Data type: DT_WSTR ( length 1000 )
- DateTime
Data type: DT_DBTIMESTAMP
- Date
Data type: DT_DBDATE
Knowledge Base
Related documentation
Overview
These public interfaces are used in Salesforce components. They are provided for implementing advanced functionality in your scripts. In order for you to use these interfaces in your project, you have to reference CozyRoc.SSISPlus.dll and CozyRoc.Sforce.dll libraries. Also include use of Sforce.Service namespace.
ISforceConnection
When you call Salesforce Connection Manager AcquireConnection method, it returns object implementing ISforceConnection interface. This is the interface used for interaction with Salesforce service.
Methods
Connects to Salesforce service. The result is SforceService object.
Closes the connection to Salesforce service. Use always after you finish working with the service.
Returns true if connected to the service.
Properties
Specify user name to access the Salesforce service.
Specify user password to access the Salesforce service.
Specify the number of seconds before timing out session connect. The default value of this property is 60 seconds.
Specify if all clients should use the same connection. This property has the options listed in the following table.
Value | Description |
---|---|
True | All clients use same connection (default). |
False | Every client uses different connection. |
Specify the ID of the organization against which you will authenticate Self-Service users.
Specify the ID of the portal for this organization.
Specify to allow duplicates to be preserved.
Specify to allow field truncation.
Specify to roll back all changes unless all records are processed successfully.
Specify the Salesforce identifier of the assignment rule to be invoked when lead or case is created.
Specify Salesforce service URL. This property should be explicitly specified when doing sandbox testing.
Specify the name or IP address of the proxy server.
Specify the port number on the proxy server to use for the connection.
Specify user name to access the proxy server.
Specify password to access the proxy server.
Knowledge Base
Related documentation
Salesforce Connection
- New: Updated web service proxy to version 54.
- New: Support for Salesforce library files maintenance with File Transfer Task.
- New: Parameters for Retry On Error.
- New: Updated web service proxy to version 48.
- New: Updated web service proxy to version 45.
- New: Updated web service proxy to version 42.
- New: Updated web service proxy to version 41.
- New: Updated web service proxy to version 37.
- New: Updated web service proxy to version 36.
- New: Enabled support for TLS 1.1 and 1.2 protocols.
- New: Updated web service proxy to version 30.
- New: A new parameter OrganizationId.
- New: A new parameter PortalId.
- New: Updated web service proxy to version 26.
- New: Updated web service proxy to version 23.
- New: Updated web service proxy to version 19.
- New: Included support for proxy server.
- New: A new parameter ServerUrl to specify service URL. This is useful for sandbox testing (Thank you, Frank).
- New: Introduced connection.
Salesforce Destination
- Fixed: Missing fields when using Update action (Thank you, Amit).
- Fixed: Id field was not included in the list of available mapping columns when using Upsert action.
- Fixed: IgnoreNullValue parameter didn't work properly when bulk-mode was used.
- Fixed: Component failed with error "type must be specified for polymorphic foreign key field: Who" (Thank you, Mustafa).
- New: A new parameter BulkJobInfo for optional bulk job information.
- Fixed: Component assumed input date/time columns without time zone information are local time and converted them to UTC. This broke backwards compatibility for existing packages (Thank you, Bharat).
- Fixed: Component will now convert input date/time columns to UTC time.
- New: A new parameter IgnoreNullValue.
- New: A new parameter Concurrency with two options: Parallel and Serial.
- New: Component now permits use of identifier lookup fields for the Upsert action.
- Fixed: Component failed with error "The remote name could not be resolved" when using bulk-load mode with test service instances.
- New: A new parameter JobIdVariable to store bulk job identifier in variable.
- Fixed: Component failed with "Column data type is not supported by PipelineBuffer class." error when processing input columns of type DT_DBDATE (Thank you, Ellen).
- New: Component can now update foreign key lookups with external identifier.
- New: Component now supports setting object fields to NULL.
- Fixed: Component failed with "... is not valid for the type xsd:double" when used in international environment (Thank you, Blazej).
- New: Component now provides newly created records identifier (Thank you, Sam).
- New: Component now supports Upsert action - update and insert of records (Thank you, Brian).
- New: Component now supports update and delete of records.
- Fixed: Component failed under SQL 2008 when ErrorDescription column was not used.
- New: Introduced component.
Salesforce Source
- New: A new parameter PKChunkSize to use PK Chunking bulk mode.
- Fixed: Got NULL when an output column name differs from an external column name. (Thank you, Lucas)
- Fixed: Failed with error "System.ObjectDisposedException: Cannot access a disposed object." when reading data in bulk. (Thank you, Venkat)
- New: Support for SOQL statements returning composite data.
- New: In case of an error when reading data in bulk, the component will retry.
- New: Included command to close job after the bulk read is complete.
- Fixed: Metadata initialization failed when specified SOQL statement did not return any rows (Thank you, Brett).
- Fixed: Id fields from related objects missing (Thank you, Ranjan).
- Fixed: Metadata of certain related fields was not configured.
- Fixed: Failed with error 'Unhandled type: urnRecordTypesSupported' (Thank you, Allen).
- Fixed: MALFORMED_QUERY error in design mode when using aggregate query with LIMIT clause.
- Fixed: Failed with error "INVALID_TYPE: sObject type '...__r' is not supported. If you are attempting to use a custom object, be sure to append the '__c' after the entity name. Please reference your WSDL or the describe call for the appropriate names." when trying to use relationship fields in SOQL statement (Thank you, Imran).
- New: Improved the metadata initialization when using SOQL statements (no more missing columns if the result contains empty fields).
- New: Support for Bulk mode for SOQL statements.
- Fixed: The "Preview" failed with "EXCEEDED_ID_LIMIT" error under some conditions.
- Fixed: Bulk job session is now closed at the end.
- New: Component can now retrieve deleted records in bulk mode.
- New: A new parameter Mode with two options: Regular and Bulk. When bulk mode is used, the component will use Salesforce bulk read functionality.
- Fixed: Component failed with "Failed to process ..." error when processing input columns of type binary.
- New: Component now supports aggregate SOQL statements (Thank you, Greg).
- Fixed: Component failed with “INVALID_TYPE: sObject type ‘…’ is not supported.” error when processing certain SOQL statements containing relationships (Thank you, Jonlee).
- New: A new parameter ObjectFilter.
- Fixed: Component failed with "INVALID_TYPE: sObject type '...' is not supported." error when processing certain SOQL statements containing relationships (Thank you, Ben).
- Fixed: Component failed to load object with more than 250 rows of data.
- New: A new parameter IncludeDeleted to retrieve all records, including deleted.
- New: Introduced component.
Knowledge Base
- How to add timezone to the datetime column?
- Missing objects or columns when using Salesforce Destination Component
- Why am I unable to see a lookup field that is newly added in Salesforce?
- Error Message: MALFORMED_QUERY: unexpected token: True
- Error Message: unable to connect to remote server
COZYROC SSIS+ Components Suite is free for testing in your development environment.
A licensed version can be deployed on-premises, on Azure-SSIS IR and on COZYROC Cloud.