Ready to get started?

Download a free trial of the Sage 300 Driver to get started:

 Download Now

Learn more:

Sage 300 Icon Sage 300 JDBC Driver

Rapidly create and deploy powerful Java applications that integrate with Sage 300.

Connect to Sage 300 Data in CloverDX (formerly CloverETL)



Transfer Sage 300 data using the visual workflow in the CloverDX data integration tool.

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

Connect to Sage 300 as a JDBC Data Source

  1. Create the connection to Sage 300 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.sage300.jar file.
  3. Enter the JDBC URL.

    Sage 300 requires some initial setup in order to communicate over the Sage 300 Web API.

    • Set up the security groups for the Sage 300 user. Give the Sage 300 user access to the option under Security Groups (per each module required).
    • Edit both web.config files in the /Online/Web and /Online/WebApi folders; change the key AllowWebApiAccessForAdmin to true. Restart the webAPI app-pool for the settings to take.
    • Once the user access is configured, click https://server/Sage300WebApi/ to ensure access to the web API.

    Authenticate to Sage 300 using Basic authentication.

    Connect Using Basic Authentication

    You must provide values for the following properties to successfully authenticate to Sage 300. Note that the provider reuses the session opened by Sage 300 using cookies. This means that your credentials are used only on the first request to open the session. After that, cookies returned from Sage 300 are used for authentication.

    • Url: Set this to the url of the server hosting Sage 300. Construct a URL for the Sage 300 Web API as follows: {protocol}://{host-application-path}/v{version}/{tenant}/ For example, http://localhost/Sage300WebApi/v1.0/-/.
    • User: Set this to the username of your account.
    • Password: Set this to the password of your account.

    Built-in Connection String Designer

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

    java -jar cdata.jdbc.sage300.jar

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

    A typical JDBC URL is below:

    jdbc:sage300:User=SAMPLE;Password=password;URL=http://127.0.0.1/Sage300WebApi/v1/-/;Company=SAMINC;

Query Sage 300 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 Sage 300 JDBC data source from the drop-down menu.
  3. Enter the SQL query. For example: SELECT InvoiceUniquifier, ApprovedLimit FROM OEInvoices WHERE AllowPartialShipments = 'Yes'

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 OEInvoices table. (You can also open this menu by right-clicking the input port for the UniversalDataWriter.)
  6. Click Run to write to the file.