Installation
To install and run SSIS Integration Toolkit for Oracle CRM On Demand, your system must have the following components installed.
-
A supported SSIS design-time or run-time, which can be one of the following:
- Azure-SSIS Integration Runtime
- SSIS 2022
- SSIS 2019
- SSIS 2017
- SSIS 2016
- SSIS 2014
- SSIS 2012
For SSIS run-time, the installation should be done by using the corresponding SQL Server installation media, and you must select the "Integration Services" component during the installation, as shown below:
Note that when using SQL Server 2014, a cumulative update is required (a recent service pack, such as one of the following, is preferred) in order to run our software during runtime.
- SQL Server 2014 Service Pack 2: https://www.microsoft.com/download/details.aspx?id=53168
- SQL Server 2014 Service Pack 1: https://www.microsoft.com/download/details.aspx?id=46694
For SSIS design-time, you should be installing the version of SSDT (SQL Server Data Tools) or BIDS (Business Intelligence Development Studio) that aligns with the SQL Server version that you plan to use for your final deployment (the runtime).
Target Server Design Time Azure-SSIS IR Any one of the following: SSIS 2022 Any one of the following: SSIS 2019 Any one of the following: SSIS 2017 Any one of the following: SSIS 2016 Any one of the following: SSIS 2014 Any one of the following: -
SSDT for Visual Studio 2019
- Packages created using SSDT 2019 need to have their project's TargetServerVersion setting set to "SQL Server 2014" in order to work with SSIS 2014.
-
SSDT for Visual Studio 2017
- Packages created using SSDT 2017 need to have their project's TargetServerVersion setting set to "SQL Server 2014" in order to work with SSIS 2014.
-
SSDT for Visual Studio 2015
- Packages created using SSDT 2015 need to have their project's TargetServerVersion setting set to "SQL Server 2014" in order to work with SSIS 2014.
- SSDT-BI for Visual Studio 2013
SSIS 2012 Any one of the following: - SSDT-BI for Visual Studio 2012 (recommended; most reliable)
-
SSDT for Visual Studio 2019 (not recommended due to potential compatibility issues with ISV solutions)
- Packages created using SSDT 2019 need to have their project's TargetServerVersion setting set to "SQL Server 2012" in order to work with SSIS 2012.
-
SSDT for Visual Studio 2017 (not recommended due to potential compatibility issues with ISV solutions)
- Packages created using SSDT 2017 need to have their project's TargetServerVersion setting set to "SQL Server 2012" in order to work with SSIS 2012.
-
SSDT for Visual Studio 2015
- Packages created using SSDT 2015 need to have their project's TargetServerVersion setting set to "SQL Server 2012" in order to work with SSIS 2012.
-
A Windows Operating System
Windows operating system requirement largely depends on the version of SSIS runtime or design-time selected. We don't have any additional requirements in terms of the Windows operating system as long as it satisfies the minimum requirements of SSIS runtime or design-time. The general guideline is the newer the operating system is, the better. In summary, our software should work for the following Windows operating systems.
-
For desktop systems (mostly for development workstations)
- We generally recommend Windows 10, version 1507 or greater.
- Windows 8.1, 8, or 7 should work fine with our software installation which supports most SSDT versions and SQL Server 2016 or below, but we highly recommend you upgrade to Windows 10 because of their support status with Microsoft.
-
For server systems (mostly for runtime deployments)
- We generally recommend Windows Server 2016 or greater (Including Windows Server 2019 and potentially future Windows Server versions).
- Windows Server 2012 or Windows Server 2012 R2 should work fine for SSIS versions up to 2016.
-
For desktop systems (mostly for development workstations)
-
A .NET Framework
-
- Our software requires the installation of .NET Framework 4.5.2 or above
- For SSIS 2016 or above, .NET Framework 4.6 (or above) is generally a prerequisite, no additional installation is required.
- For SSIS 2014 or lower, you may turn on the .NET Framework feature or install it by downloading it from the Microsoft website.
- Our software requires the installation of .NET Framework 4.5.2 or above
When you have confirmed that your system satisfies the above prerequisites, you can navigate to the KingswaySoft website at https://www.kingswaysoft.com to download the installation package.
After you have downloaded the package, you can install the software by following the installation wizard.
Working with SSIS Toolbox
SSIS Toolbox is the first place that you will be looking for our components to be added to your ETL process during the design time.
If you are working with SSIS 2012 or later, SSIS Toolbox should be automatically available during the design time once you have an SSIS package opened provided that you have our software installed properly. If you do not see the SSIS Toolbox, click either the SSIS Toolbox menu option under the SSIS menu or the SSIS Toolbox icon in the design window's upper right corner, as shown below.
Note: When working with SSIS Toolbox, you need to make sure that you are in the right view in order to see the right components. For instance, if you are looking for a data flow component, you need to make sure that you are in the Data Flow view, not the Control Flow view. Visual Studio would show different components depending on the design view that you are currently working with.
Once the data flow components are available in the SSIS Toolbox, you can start your ETL development by dragging them from the toolbox to the Visual Studio design surface.
Setup an Oracle CRM On Demand Connection Manager
The Oracle CRM On Demand Connection Manager is an SSIS connection manager component that can be used to establish connections with Oracle CRM On Demand.
To add a new connection, right-click the Connection Manager area in your Visual Studio project, and choose "New Connection..." from the context menu.
You will be prompted the "Add SSIS Connection Manager" window. Select the "OracleCRMOnDemand" item to add a new Oracle CRM On Demand Connection Manager.
The Oracle CRM On Demand Connection Manager contains the following 3 pages of configuration.
- General
- More Info
General Page
The General page allows you to specify connection properties and login credentials to Oracle CRM On Demand.
- Server Information
-
- Web Service URL
-
The Web Service URL field lets you specify the URL to the Oracle CRM On Demand Web Service. It should follow the pattern: https://secure-ausomx[POD].crmondemand.com/Services/Integration, where POD is the 3-letter Pod Identifier for your Oracle CRM On Demand instance. This address may vary and can be obtained in the Service section of any WSDL file that you obtain from CRM On Demand -> Admin -> Web Services Administration.
- Authentication
-
- Authentication Mode
-
Oracle CRM On Demand supports different authentication modes. However, our connection manager currently only supports Login Credentials in SOAP Security Header.
- User Name
-
The User Name allows you to specify the user account used to authenticate with Oracle CRM On Demand.
- Password
-
The Password field allows you to specify the password for the above user account.
Note: By default, the Password is not shown in the Oracle CRM On Demand connection manager's ConnectionString property. This is done by design for security reasons. However, you can include it in your ConnectionString if you want to parameterize your connection manager. The format would be Password=myPassword; (make sure you have a semicolon as the last character). It can be placed anywhere in the ConnectionString property.
- Service Timeout
-
- Timeout
-
The Timeout value lets you indicate the length of time (in seconds) to expect a response from a web service call before failing.
- Test Connection
-
After all the connection information has been provided, you may click the "Test Connection" button to test if the user credentials entered can authenticate with Oracle CRM On Demand.
Advanced Settings Page
The Advanced Settings page allows you to configure your connection to Oracle CRM On Demand to use a proxy server.
- Proxy Server Settings
-
- Proxy Mode (since v4.0)
-
The Proxy Mode option allows you to specify how you want to configure the proxy server setting. There are three options available.
- No Proxy
- Auto-detect (Using system-configured proxy)
- Manual
- Proxy Server
-
Using the Proxy Server option, you can provide a proxy server to connect to Salesforce.com.
- Port
-
The Port option allows you to specify the port number of the proxy server for the connection.
- Username (Proxy Server Authentication)
-
The Username option (under Proxy Server Authentication) allows you to specify the proxy user account.
- Password (Proxy Server Authentication)
-
The Password option (under Proxy Server Authentication) allows you to specify the proxy user's password.
Note: The Proxy Password is not included in the connection manager's ConnectionString property by default. This is by design for security reasons. However, you can include it in your ConnectionString if you want to parameterize your connection manager. The format would be ProxyPassword=myProxyPassword; (make sure you have a semicolon as the last character). It can be anywhere in the ConnectionString.
- Miscellaneous Settings
-
- Retry on Intermittent Errors
-
This is an option designed to help recover from possible intermittent outages or disruption of service. It prevents the integration process from stopping due to temporary issues. Enabling this option will allow service calls to be retried upon certain types of failure. A service call may be retried up to 3 times before an exception is fired. Retries occur after 0 seconds, 15 seconds, and 60 seconds.
Warning: We have designed our retry feature carefully such that the retry should only occur when it is deemed safe to do so; however, in some occasions, such retry service calls could result in the creation of duplicate data.
More Info Page
The More Info page shows some basic information about the toolkit. On this page, you can find the version information of the toolkit.
Using the Oracle CRM On Demand Source Component
The Oracle CRM On Demand Source Component is an SSIS data flow pipeline component that can be used to read/retrieve data from Oracle CRM On Demand.
The component includes the following two pages of configuration.
- General
- Columns
General Page
The General page allows you to configure various options that will help you retrieve the desired data from Oracle CRM On Demand.
- Connection Manager
-
The source component requires an active web service connection to Oracle CRM On Demand. The Connection Manager drop-down will show a list of all Oracle CRM On Demand Connection Managers that have been created in the current SSIS package.
- Batch Size
-
A maximum limitation of 100 records per web service result is set by Oracle CRM On Demand. You can change the batch size to suit your preferences.
- Source WSDL
-
The Source WSDL drop-down lists all available WSDL files. The folder path that is read is determined by the registry key: HKEY_LOCAL_MACHINE\SOFTWARE\KingswaySoft\SSIS Integration Toolkit for Oracle CRM On Demand\WSDLDirectory. If the registry key does not exist, the default folder path ([path to Program Files ]\KingswaySoft\SSIS Integration Toolkit for Oracle CRM On Demand\Schemas) will be used. By selecting a value from this drop-down, the component will attempt to read the metadata contained within the selected WSDL file. Additional WSDL files can be obtained from the Oracle CRM On Demand -> Admin -> Web Services Administration page.
- Source Object
-
This text box is a read-only field that displays the object detected from the WSDL file loaded from the Source Object WSDL drop-down.
- Child Object
-
This drop-down list specifies the child object to read from. By default it is left blank meaning only parent fields can be read. When a child object is selected another searchspec textbox will be made available along with another table in the "Columns" page, this allows reading and filtering of both parent and child fields.
- Output Timezone (since v4.0)
-
The output timezone setting determines what format any datetime values read from Oracle should be converted to. There are three options available.
- Timezone of Connection User: Any datetime values will be converted to the timezone of the connection user based on the user's timezone setting in Oracle CRM On Demand.
- UTC
- Local System Timezone (Default): Any datetime values will be converted to the local system time where the package is run.
- (Parent/Child) Searchspec Filter
-
The Searchspec Filter allows you to specify a searchspec query to help filter for the desired records. When a child object is selected, another Searchspec field will be made available allowing you to specify a searchspec query for both the parent and the child object. Please read Oracle Documentation for further details on how to specify a searchspec query.
- Refresh Component Button
-
Clicking the Refresh Component button causes the component to retrieve the latest metadata and update each field to its most recent metadata.
- Expression fx Icon
-
Click the blue fx icon to launch SSIS Expression Editor to enable dynamic updates of the property at run time.
- Generate Documentation Icon
-
Click the Generate Documentation icon to generate a Word document that describes the component's metadata including relevant mapping, and so on.
Columns Page
The Columns page shows you all available attributes from the object that you specified on the General page. You may indicate which attributes to include in your source component by checking or unchecking the checkbox next to each attribute. In conjunction with the searchspec filter from the General page, each attribute has a Filter column where you can enter search criteria for the attribute.
Child Objects in the Source Component
When a child is selected in the "Child Object" drop-down list on the "General" page, another table is made available here on the "Columns" page. This allows for the selection and filtering of both parent and child fields. Even though there are two tables there is still only one output, this just makes it easier to select/deselect child and parent fields separately. One thing to note as well is there are fields that exist in both tables. This is a problem because we only have one output. However, if you look at the output columns in the advanced editor you will notice all of the child fields are prefixed with the child name (eg. TeamData.).
Data Filtering in the Source Component
There are 2 methods for filtering for the desired data in the Oracle CRM On Demand Source Component. You may add filter criteria in the Searchspec Filter text box, and/or add filtering for each individual field. The 2 methods work together to filter for records that match both filtering techniques.
- Example for the Searchspec Filter
- In the above screenshot for the source component, you can see a filter on the CreatedDate column to filter for records created between the dates 2014-08-01 to 2014-08-17. The general structure for a filter is: [field name] {operator} {your filter value}. E.g. [CreatedDate] > '2010-01-01T00:00:00' You can also search on multiple fields by using an AND/OR E.g. ([CreatedDate] > '2010-01-01T00:00:00') AND ([AccountName] = 'Acme Company')
- Example for the Field specific filtering
- Filtering applied on the field level will only apply to that particular field. The general structure for a filter is: {operator} '{your filter value}'. E.g. To look for all AccountName that begins with the value 'Test' using the following filter: LIKE 'Test*'
- Reference
- The best place to find further information on filtering is to refer to the Oracle Documentation
Using the Oracle On Demand Destination Component
The Oracle On Demand Destination Component is an SSIS data flow pipeline component that can be used to write data to Oracle On Demand. You can create, update, or delete objects with this component. There are three pages of configuration:
- General
- Columns
- Error Handling
General Page
- Select the connection manager and write the action
-
- Connection Manager
-
The destination component requires an active web service connection to Oracle CRM On Demand. The Connection Manager drop-down will show a list of all Oracle CRM On Demand Connection Managers that have been created in the current SSIS package.
- Action
-
The Action option allows you to specify how data should be written to Oracle CRM On Demand. There are currently four (4) supported action types available.
- Create: Create new object(s).
- Update: Update existing object(s).
- Delete: Delete object(s).
- Upsert: Insert or update a record depending on whether a match can be found based on the matching fields specified. If there are matches an update will be performed; if there are no matches, the record(s) will be created in Oracle CRM On Demand. When the Upsert action is used, at least a matching field has to be specified on the Columns page. Note that the Upsert action only supports a batch size of 1, each record will involve two service calls, with the first one to perform the matching query, and the second one to perform the Create or Update action to write the record to CRM on demand server.
- Batch Size
-
For write actions, a maximum limitation of 20 records per web service call is set by Oracle CRM On Demand. You can change the batch size to suit your preferences.
Note that the Upsert action only supports a batch size of 1.
- Configuration write destination
-
- WSDL File
-
The WSDL File drop-down lists all available WSDL files. The folder path that is read is determined by the registry key: HKEY_LOCAL_MACHINE\SOFTWARE\KingswaySoft\SSIS Integration Toolkit for Oracle CRM On Demand\WSDLDirectory. If the registry key does not exist, the default folder path ([path to Program Files ]\KingswaySoft\SSIS Integration Toolkit for Oracle CRM On Demand\Schemas) will be used. By selecting a value from this drop-down, the component will attempt to read the metadata contained within the selected WSDL file. Additional WSDL files can be obtained from the Oracle CRM On Demand -> Admin -> Web Services Administration page.
- Object Detected
-
This text box is a read-only field that displays the object detected from the WSDL file loaded from the Source Object WSDL drop-down.
- Child Object
-
This drop-down list specifies the child object to write to. By default this option is left blank meaning only parent fields can be written to. When a child object is selected another field is added to the "Columns" page called "CurrentParent.Id". When writing to a child object you must specify this field. This field acts as a selector meaning it specifies the parent to which the child object belongs. This is applicable to all three actions.
- Input Timezone (since v4.0)
-
The input timezone setting tells the component what format any incoming datetime values are in, and uses this information to write the correct date to Oracle CRM On Demand. There are three options available.
- Timezone of Connection User: Any datetime values will be treated as the local time of the connection user (not the system) based on the user's timezone setting in Oracle CRM On Demand.
- UTC
- Local System Timezone (Default): Any datetime values will be treated as the local system time where the package is run.
- Upsert Settings
-
- Handling Multiple Matches
-
It is possible that the Upsert action could find multiple matches in the target CRM system. The Handling of Multiple Matches option allows you to specify what action will be taken when such multiple matches are found. There are four options available.
- Update All: All records found will be updated in Oracle CRM On Demand.
- Update One: The first record that is found will be updated in Oracle CRM On Demand.
- Ignore: None of the records found will be updated in Oracle CRM On Demand.
- Raise an error: None of the records found will be updated in Oracle CRM On Demand, and an Error will be fired.
- Refresh Component Button
-
Clicking the Refresh Component button causes the component to retrieve the latest metadata and update each attribute to its most recent metadata.
- Map Unmapped Fields Button
-
By clicking this button, the component will try to map any unmapped attributes by matching their names with the input columns from upstream components. This is useful when your source component has recently added more columns, in which case you can use this button to automatically establish the association between input columns and unmapped destination attributes.
- Clear All Mappings Button
-
By clicking this button, the component will reset all your mappings in the destination component.
- Expression fx Icon
-
Click the blue fx icon to launch SSIS Expression Editor to enable dynamic updates of the property at run time.
- Generate Documentation Icon
-
Click the Generate Documentation icon to generate a Word document that describes the component's metadata including relevant mapping, and so on.
Columns Page
The Columns page allows you to map the columns from upstream components to destination attributes.
On the Columns page, you will see a grid as shown below.
- Input Column: You can select an input column from an upstream component here.
- Destination Field: The attribute/field that you want to write data to.
- Data Type: This column indicates the type of value for the current attribute.
- Unmap: This button provides a convenient way to unset the mapping for the selected attribute/field.
Error Handling Page
The Error Handling page allows you to specify how errors should be handled when they happen.
There are three options available.
- Fail on error
- Redirect rows to error output
- Ignore error
When the Redirect rows to error output option is selected, rows that failed to write to Oracle CRM On Demand will be redirected to the 'Oracle CRM On Demand Destination Error Output' of the Destination Component. As indicated in the screenshot below, the green output connection represents rows that were successfully written, and the red 'Error Output' connection represents rows that were erroneous. The 'OracleErrorMessage' output column found in the 'Error Output' may contain the error message that was reported by Oracle CRM On Demand or the component itself.
Note: Use extra caution when selecting Ignore error option, since the component will remain silent for any errors that have occurred.
In the Error Handling page, there is also an option (since v2.3) that can be used to enable or disable the following output fields for the destination component.
- OracleCrmId: Contains the newly created Oracle CRM On Demand record's Id field value.
- IsNew: Contains value to indicate whether it is a newly created Oracle CRM On Demand record or an existing one. This is useful when you use the Upsert action.
Note: When "Upsert - Update All" is chosen and there are multiple matching records, a single output row of the first match will be redirected to the default output.
License Manager
SSIS Integration Toolkit comes with a license manager program that helps you manage and activate the product license key to be used for the toolkit. The below information is useful for development workstations and Single Server license management. For Azure-SSIS IR deployments, license management and activation will be handled through the PowerShell script, see Running SSIS Integration Toolkit on the Cloud for further details.
Without a commercial license, SSIS Integration Toolkit will operate under the Developer License which is free to use for development or evaluation purposes. Under the developer license, you can use the software within the development tool (SSDT-BI, BIDS, or Visual Studio).
The only limitation of the free developer license is the inability to run the software outside of the development tool (SSDT-BI, BIDS, or Visual Studio). If you would like to run the software outside the development tool, such as running SSIS packages on a scheduled basis or from a command line, you will need to acquire a license from us.
If you want to test out the functionality by scheduling your SSIS packages, a trial license can be requested. To do so, you can launch the License Manager program, then click the "Change/Update License Key..." button, where you can request a free trial license after filling out the necessary Licensee Information.
If you have received a product license key from us after placing an order through our online shopping cart system, you can also click the "Change/Update License Key..." button and enter the product license key in order to activate the software to use the fully-featured commercial license.
The Licensee field is where you will specify the company the software is licensed to, you can include your system's machine name for future reference. For example, the Licensee can be "ABC Inc." or "XYZ Corp (SQLSVR-001)." The Contact Email would be the person we reach out to for any license-related notices such as renewal reminders.
To request a free trial license or activate a product license key that you have received, you can use the Web Service option to complete the process by sending the request to our license server directly. An Internet connection is required when the Web Service option is used. This is the option that we recommend.
Alternatively, you can choose the Email option so that the license manager will generate an email for you which you can send to us. The Email option should only be used if your system has no Internet access. It requires manual processing so please expect to wait for 24 to 48 hours before receiving a license file from us. Once you have received the license file from us through email, you can save it to a local file, which you can then install by clicking the "Install License File..." button in the License Manager.
If you have acquired a license from us, once the software has been activated, your license manager will be shown as below.
Connection Tier will display the number of distinct connections your license supports per connection type within a 24-hour period at runtime. Multiple connections to the same instance are typically treated as 1 distinct connection (exceptions may apply depending on the nature of the service). Selecting the magnify icon will launch the Runtime Connection Usage Summary window which will display counts on the number of connections made per connection type and when the 24-hour period will reset.
If you own a perpetual license from us, you should be able to see your Maintenance Expiry Date in the License Manager program. By default, your perpetual license should be instated with a one-year maintenance and upgrade included, which entitles you to use any version of the software released before your Maintenance Expiry Date. To extend your software license maintenance, log in to our portal and navigate to the license key using the License Keys menu. From there, you can renew the license or otherwise reach out to our Client Services team to request their assistance in renewing your license terms.
Note: Perpetual license is only applicable to clients who have previously acquired such a license before the deprecation of the license type. It is no longer offered for any new purchases.
If your commercial license is a subscription license, you will not see the Maintenance Expiry Date option in the License Manager program, since your subscription license comes with maintenance and upgrade for the entire subscription period. Instead, you will see your license expiry date and a progress bar with the number of days left on your subscription.
Note: You must run the License Manager program under a local administrative account due to the privileges required to write license files to the system.
Contact Us
If you need any further assistance with the toolkit, please don't hesitate to contact us.