Connect to Harvest Data in CloverDX (formerly CloverETL)



Transfer Harvest data using the visual workflow in the CloverDX data integration tool.

The CData JDBC Driver for Harvest enables you to use the data transformation components in CloverDX (formerly CloverETL) to work with Harvest as sources. In this article, you will use the JDBC Driver for Harvest to set up a simple transfer into a flat file. The CData JDBC Driver for Harvest enables you to use the data transformation components in CloverDX (formerly CloverETL) to work with Harvest as sources. In this article, you will use the JDBC Driver for Harvest to set up a simple transfer into a flat file.

Connect to Harvest as a JDBC Data Source

  1. Create the connection to Harvest data. In a new CloverDX graph, right-click the Connections node in the Outline pane and click Connections -> Create Connection. The Database Connection wizard is displayed.
  2. Click the plus icon to load a driver from a JAR. Browse to the lib subfolder of the installation directory and select the cdata.jdbc.api.jar file.
  3. Enter the JDBC URL.

    Start by setting the Profile connection property to the location of the Harvest Profile on disk (e.g. C:\profiles\Harvest.apip). Next, set the ProfileSettings connection property to the connection string for Harvest (see below).

    Harvest API Profile Settings

    To authenticate to Harvest, you can use either Token authentication or the OAuth standard. Use Basic authentication to connect to your own data. Use OAuth to allow other users to connect to their data.

    Using Token Authentication

    To use Token Authentication, set the APIKey to your Harvest Personal Access Token in the ProfileSettings connection property. In addition to APIKey, set your AccountId in ProfileSettings to connect.

    Using OAuth Authentication

    First, register an OAuth2 application with Harvest. The application can be created from the "Developers" section of Harvest ID.

    After setting the following connection properties, you are ready to connect:

    • ProfileSettings: Set your AccountId in ProfileSettings.
    • AuthScheme: Set this to OAuth.
    • OAuthClientId: Set this to the client ID that you specified in your app settings.
    • OAuthClientSecret: Set this to the client secret that you specified in your app settings.
    • CallbackURL: Set this to the Redirect URI that you specified in your app settings.
    • InitiateOAuth: Set this to GETANDREFRESH. You can use InitiateOAuth to manage how the driver obtains and refreshes the OAuthAccessToken.

    Built-in Connection String Designer

    For assistance in constructing the JDBC URL, use the connection string designer built into the Harvest JDBC Driver. Either double-click the JAR file or execute the jar file from the command-line.

    java -jar cdata.jdbc.api.jar

    Fill in the connection properties and copy the connection string to the clipboard.

    A typical JDBC URL is below:

    jdbc:api:Profile=C:\profiles\Harvest.apip;ProfileSettings='APIKey=my_personal_key;AccountId=_your_account_id';

Query Harvest Data with the DBInputTable Component

  1. Drag a DBInputTable from the Readers selection of the Palette onto the job flow and double-click it to open the configuration editor.
  2. In the DB connection property, select the Harvest JDBC data source from the drop-down menu.
  3. Enter the SQL query. For example: SELECT Id, ClientName FROM Invoices WHERE State = 'open'

Write the Output of the Query to a UniversalDataWriter

  1. Drag a UniversalDataWriter from the Writers selection onto the jobflow.
  2. Double-click the UniversalDataWriter to open the configuration editor and add a file URL.
  3. Right-click the DBInputTable and then click Extract Metadata.
  4. Connect the output port of the DBInputTable to the UniversalDataWriter.
  5. In the resulting Select Metadata menu for the UniversalDataWriter, choose the Invoices table. (You can also open this menu by right-clicking the input port for the UniversalDataWriter.)
  6. Click Run to write to the file.

Ready to get started?

Connect to live data from Harvest with the API Driver

Connect to Harvest