Note The SSIS Integration Toolkit for Xero is now part of the SSIS Productivity Pack and is no longer available as a stand-alone product. Please continue reading for information about the Xero components, or visit the Xero component page part of the Productivity Pack for information.

Installation

To install and run SSIS Integration Toolkit for Xero, 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 2019
    • SSIS 2017
    • SSIS 2016
    • SSIS 2014
    • SSIS 2012
    • SSIS 2008 R2
    • SSIS 2008
    • SSIS 2005 (No longer supported since v4.0)

    For SSIS runtime, the installation should be done by using the corresponding SQL Server installation media (most likely in CD/DVD format), and you must select the "Integration Services" component during the installation (as shown below).

    Integration Services Runtime Selection

    Note that when using SQL Server 2014, a cumulative update is required (a recent service pack, such as one of the following, is more preferred) in order to run our software during runtime.

    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 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.
    SSIS 2008 R2 or earlier The Business Intelligence Development Studio that is shipped with the installation media of the corresponding SQL Server version.
  • 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 system (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 their support status with Microsoft.
    • For server system (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 version up to 2016.
      • Windows Server 2008 should work fine for SSIS version up to 2014, but we highly recommend upgrading to a more recent version due to its support status with Microsoft.
      • If working with SSIS 2008, it might be possible to work with Windows Server 2003 R2 (even Windows XP for development workstation), but it is definitely not recommended, neither do we officially support such installations. In such cases, Windows Installer 4.5 needs to be installed by downloading it from the Microsoft website.
  • .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 from Microsoft website.
    • When working with SQL Server 2008 or 2008 R2, .NET Framework 3.5 is required, which is generally installed along with SQL Server installation.

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.

download options

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 are not seeing the SSIS Toolbox, you would either click the SSIS Toolbox menu option under the SSIS menu, or click the SSIS Toolbox icon in the design window's upper right corner as shown below.

SSIS Toolbox Buttons

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 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.

When you working with SSIS 2008, you would have to add our data flow components to the SSIS Toolbox manually. To add the data flow components, create a new data flow task if you do not have one yet and switch to the SSIS data flow page. Right-click on the toolbox area to bring up the context menu, where you can select the "Choose Items..." option as shown below.

Choose items

You will be presented with a window called "Choose Toolbox Items". Switch to "SSIS Data Flow Items" tab, and select the components from the list.

Add SSIS data flow components

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.

Using the Xero Connection Manager

The Xero Connection Manager is an SSIS connection manager component that can be used to establish connections with Xero.

To add a Xero connection to your SSIS package, 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 "Xero" item to add the new Xero connection manager.

new connectionAdd Xero Connection

The Xero Connection Manager contains the following three pages which configures how you want to connect to Xero.

  • General
  • Advanced Settings
  • More Info

General Page

The General page on the Xero Connection Manager allows you to specify general settings for the connection. There are two authentication mode available for Xero.

  • OAuth 1 (Deprecated)
  • OAuth 2
OAuth 1

Add Xero Connection

Creating a Public/Private Key Pair:

  1. Download OpenSSL for Windows
  2. After installation you may need to restart your machine.
  3. Open a Windows Command Prompt as Administrator (Go to Start -> type cmd -> right click on 'cmd.exe' -> select 'Run as administrator').
  4. Navigate to the 'bin' folder of the installation location of OpenSSL using the 'cd' command (ex: 'cd C:\OpenSSL-Win32\bin').
  5. Execute the following commands. The third command will prompt you to enter a password. Remember this password to connect to Xero later.
    openssl genrsa -out privatekey.pem 1024
    openssl req -new -x509 -key privatekey.pem -out publickey.cer -days 1825
    openssl pkcs12 -export -out public_privatekey.pfx -inkey privatekey.pem -in publickey.cer

Creating a Private Application:

  1. Go to My Applications (you will need to login to Xero).
  2. Click the 'Add Application' button.
  3. Select the 'Private' application radio button.
  4. Give the application a name.
  5. Select the Organization you wish to integrate with.
  6. Select the 'Upload X509 certificate file (.cer)' radio button and click 'Choose File'.
  7. Upload the 'publickey.cer' file we created earlier using OpenSSL.
  8. Check the Terms & Conditions checkbox.
  9. Click 'Save'
  10. Notice the 'Valid To' field. After this date the certificate you uploaded would have expired and you will need to generate a new one. The newly generated certificate (.cer) and public/private key (.pfx) files will need to be reflected in both the Xero Application you just created and the Xero Connection Manager.

Xero Connection Manager

Consumer Key

Your Xero Consumer Key can be found in the Xero Developer Console underneath My Applications.

Path to PFX File:

The Path to PFX File points to the path of the public/private key file (.pfx) we made earlier using OpenSSL.

Password for PFX File

The Password for PFX File is whatever password you used when generated the public/private key file using OpenSSL. Leave blank if no password was used.

OAuth 2

Xero Connection Manager

Generate New Token File

This button will open a dialog in order to generate a new Token File.

Xero Connection Manager

  • App Type
    • KingswaySoft: The Connection Manager will use the Client Id and Secret that is provided by KingswaySoft for your convenience when setting up the connection.
    • My Own App:Selecting this option will allow you to use your own Client ID and Secret to connect to Xero.
  • Client ID: The Client Id option allows you to specify the unique ID which identifies the application making the request.
  • Client Secret: The Client Secret option allows you to specify the client secret belonging to your app.
  • Redirect URI: The Redirect Url option allows you to specify the Redirect Url which was assigned to your app.
  • Use Default Browser to Sign In: When this option is checked the Sign In and Authorize button will open your default web browser in order to complete the OAuth authentication. When this option is unchecked, the Sign In and Authorize button will complete the entire OAuth authentication process inside of the toolkit.
  • Sign In and Authorize: This button allows you to login to the service endpoint and authorize your app to generate a token.
  • Password: This option allows you to assign a new password for the token file which will be created.
  • Save To Token File: This option allows specify the location of where the token file will be saved.
Path to Token File
This option allows you to specify the path to the token file on the file system.
Token File Password
This option allows you to specify the password of the selected token file.
Tenant Id
You can specify the Tenant id in this field
Test Connection
After all the connection information has been provided, you may click the Test Connection button to test if the connection settings entered are valid.

Advanced Settings Page

The Advanced Settings page on the Xero Connection Manager allows you to specify some advanced and optional settings for the connection.

Xero Connection Manager

Proxy Mode
Proxy Mode option allows 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 Xero.

Port

The Port option allows you to specify port number of the proxy server for the connection.

Username

The Username option allows you to specify the proxy user account.

Password

The Password option 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.

Timeout (secs)
The Timeout (secs) option allows you to specify a timeout value in seconds for the connection. The default value is 120 seconds.
API Throttling Rate (requests/minute)
The API Throttling Rate is based on the Throttle Limits in Xero. This rate is set to 60 requests per minute limit, by default, to respect the Xero API Throttle limit. If the API Throttling Rate exceeds 60 requests per minute, the Xero server may stop your request for a short period of time. Xero has a Default Daily API Quota of 1000 API calls.
Retry on Intermittent Errors

This is an option designed to help recover from possible intermittent outages or disruption of service, so the integration does not have to be stopped because of such 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. In this page, you can find the version information of the toolkit.

Xero Connection Manager

Adding SSIS Components to Business Intelligence Development Studio's Toolbox

SSIS Integration Toolkit for Xero includes two data flow components for use with Xero. They need to be added to the SSIS toolbox before you can use them in a SSIS data flow task.

Note: If you are using SQL Server 2012 or later development environment, you should not need to do this, as SQL Server 2012 or later automatically lists all available pipeline components by scanning the system.

To add the data flow components, create a new data flow task if you do not have one yet and switch to the SSIS data flow page. Right-click on the toolbox area to bring up the context menu, where you can select the "Choose Items..." option as shown below.

choose items

You will be presented with a window called "Choose Toolbox Items". Switch to "SSIS Data Flow Items" tab, and select Xero Destination and Xero Source components from the list.

Add Xero SSIS Components

Both data flow components should now appear in your SSIS Toolbox, where you can drag and drop any of them to the design surface of your SSIS data flow task.

Using the Xero Source Component

The Xero Source Component is an SSIS data flow pipeline component that can be used to read / retrieve data from Xero.

The component includes the following two pages to configure how you want to read data from Xero.

  • General
  • Columns

General Page

The General page of the Xero Source Component allows you to specify the general settings of the component.

Xero Source Editor

Connection Manager

The Xero Source Component requires a Xero connection in order to connect with Xero. The Connection Manager drop-down will show a list of all Xero connection managers that are available to your current SSIS package.

Source Object

The Source Object drop-down lists all of the currently supported objects which you can read from.

Child Objects

The Child Objects drop-down is enabled when the Source Object specified contains 1 or more readable child objects.

Note: For each child object selected a secondary output will be created. You will be able to manage the fields for the primary object along with all child objects on the Columns Page.

Where Statement

The Where Statement textbox is a conditional statement used to filter data. For more information on how to format a Xero request Where Statement, check out the 'Retrieving a filtered set of resources' section on Xero's Documentation.

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.

Columns Page

The Columns page of the Xero Source Component shows you all available attributes from the object that you specified on the General page. If you selected any child objects you will see a drop-down list at the top of the page where you can select the output columns to view.

Every child object will have a special field that represents the id of its parent. The field name will consist of the name of the Source Object and the name of the Source Object's ID field separated by a period (ex. Contact.ID). This field is crucial for managing child objects both when reading and writing.

Xero Source Editor

If you selected child objects on the General Page you will notice a dropdown list at the top of the Columns Page. This will update the grid below to show the fields for the selected object.

On the top left of the grid, you can see a checkbox, which can be used to toggle the selection of all available Xero fields. This is a productive way to check or uncheck all available fields.

Note: As a general best practice, you should only select the Xero fields that are needed for the downstream pipeline components.

Using the Xero Destination Component

The Xero Destination Component is an SSIS data flow pipeline component that can be used to write data to Xero. You can Create, Update, or Delete objects that allow a particular action with this component. There are three pages of configuration:

  • General
  • Columns
  • Error Handling

The General page is used to specify general settings for the Xero Destination Component. The Columns page allows you to map the columns from upstream components to Xero fields in the destination object. The Error Handling page allows you to specify how errors should be handled when they occur.

Note: If you supply multiple inputs (child objects) you will need to sort all of the inputs using the SSIS Sort Component. For the primary input sort by the ID field and for secondary inputs sort by the Parent ID field.

General Page

The General page allows you to specify general settings for the component.

Xero Destination Editor

Xero Connection Manager

The Xero Destination Component requires a Xero connection. The Xero Connection Manager option will show all Xero connection managers that have been created in the current SSIS package or project.

Destination Object

The Destination Object drop-down lists all of the currently supported objects which you can write to.

Action

The Action option allows you to specify how data should be written to Xero. There are currently three (3) supported:

  • Create
  • Update
  • Delete
Batch Size

The Batch Size lets you specify how many records to send per service call to Xero. This is only available for some objects, the option will be disabled when it is not.

Child Object Settings

In order to gain access to child object input data, you must map secondary inputs to destination child objects using the Child Object Settings. The table is only visible when the Destination Object contains Child Objects that you can write to. The 'Secondary Input' column will show all of the attached Secondary Inputs. The 'Child Object' column will show drop-down lists of destination child objects. Select the child object that the secondary input represents and you will then be able to go to the Columns Page and edit the column mappings for that Secondary Input.

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 Xero 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.

Columns Page

The Columns page of the Xero Destination Component allows you to map the columns from upstream components to the Xero destination fields.

In the Columns page, you would see a grid that contains four columns as shown below.

Xero Destination Editor

  • Input Column: You can select an input column from an upstream component for the corresponding Xero field.
  • Xero Field: The Xero field that you are writing data.
  • Data Type: This column indicates the type of value for the current field.
  • Unmap: This column can be used to unmap the field from the upstream input column, or otherwise it can be used to map the field to an upstream input column by matching its name if the field is not currently mapped.

Note: Depending on the action and whether or not you supply child objects determines what fields must be mapped. Here are some guidelines:

  • If no child objects are supplied then you must map the ID field while Updating and Deleting but not for Creating.
  • If child objects are supplied then you will need to supply the ID field for the destination object and Parent ID fields for all of the child objects while Creating or Updating (Deleting is not effected by the addition of child objects).
  • While Creating, the ID and Parent ID fields don't actually get written to Xero, they are for associating child objects with parent objects during execution.

Error Handling Page

The Error Handling page allows you to specify how errors should be handled when they happen.

Xero Destination Editor

There are three options available:

  1. Fail on error
  2. Redirect rows to error output
  3. Ignore error

When the Redirect rows to error output option is selected, rows that failed to write to Xero will be redirected to the 'Error Output' output of the Destination Component. As indicated in the screenshot below, the green output connection represent rows that were successfully written, and the red 'Error Output' connection represents rows that were erroneous. The 'ErrorMessage' output column found in the 'Error Output' may contain the error message that was reported by Xero or the component itself.

error output

Note: Use extra caution when selecting Ignore error option, since the component will remain silent for any errors that have occurred.

Enable Columns for Default Output.

  • XeroRecordId - Contains the id of the Xero item which you can use to write to log or further process using additional data flow components.

License Manager

SSIS Integration Toolkit comes with a license manager program which 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 purpose. Under the developer license, you can use the software within the development tool (SSDT-BI, BIDS, or Visual Studio).

KingswaySoft License Manager

The only limitation with 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 License Manager program, then click "Change License Key" button, where you can request a free trial license after filling out the necessary Licensee Information.

KingswaySoft License Manager

If you have received a product license key from us after placing an order through our online shopping cart system, you can also click "Change License Key" button and enter the product license key in order to activate the software to use the fully-featured commercial license.

Licensee field is where you will specify the company the software is licensed to, you can include you 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 Web Service option to complete the process by sending the request to our license server directly. An Internet connection is required when 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 from through email, you can save it to a local file, which you can then install by clicking "Install License File..." button in License Manager.

If you have acquired a license from us, once the software has been activated, your license manager will be shown as something like below.

KingswaySoft License Manager

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.

License Manager Runtime Connection Usage Summary

You can see your Maintenance Expiry Date in the License Manager program if you are using a perpetual license. By default, your perpetual license comes with a one-year maintenance and upgrade, which entitles you to use any version of the software released before your Maintenance Expiry Date. You can extend it by entering a new maintenance license key that you have acquired from us.

KingswaySoft License Manager

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 amount of days left on your subscription.

Note: You must run License Manager program under a local administrative account due to the privileges required to write license file to the system.

Contact Us

If you need any further assistance with the toolkit, please don't hesitate to contact us.