Ready to get started?

Download a free trial of the SAP Ariba Procurement ODBC Driver to get started:

 Download Now

Learn more:

SAP Ariba Procurement Icon SAP Ariba Procurement ODBC Driver

The SAP Ariba Procurement ODBC Driver is a powerful tool that allows you to connect with live data from SAP Ariba Procurement, directly from any applications that support ODBC connectivity.

Access SAP Ariba Procurement data like you would a database - read, write, and update SAP Ariba Procurement 0, etc. through a standard ODBC Driver interface.

Query SAP Ariba Procurement Data as a MySQL Database in Node.js



Execute MySQL queries against SAP Ariba Procurement data from Node.js.

You can use the SQL Gateway from the ODBC Driver for SAP Ariba Procurement to query SAP Ariba Procurement data through a MySQL interface. Follow the procedure below to start the MySQL remoting service of the SQL Gateway and start querying using Node.js.

Connect to SAP Ariba Procurement Data

If you have not already done so, provide values for the required connection properties in the data source name (DSN). You can use the built-in Microsoft ODBC Data Source Administrator to configure the DSN. This is also the last step of the driver installation. See the "Getting Started" chapter in the help documentation for a guide to using the Microsoft ODBC Data Source Administrator to create and configure a DSN.

In order to connect with SAP Ariba Procurement, set the following:

  • ANID: Your Ariba Network ID.
  • ANID: Specify which API you would like the provider to retrieve SAP Ariba data from. Select the Buyer or Supplier API based on your business role (possible values are PurchaseOrdersBuyerAPIV1 or PurchaseOrdersSupplierAPIV1).
  • Environment: Indicate whether you are connecting to a test or production environment (possible values are TEST or PRODUCTION).

Authenticating with OAuth

After setting connection properties, you need to configure OAuth connectivity to authenticate.

  • Set AuthScheme to OAuthClient.
  • Register an application with the service to obtain the APIKey, OAuthClientId and OAuthClientSecret.

    For more information on creating an OAuth application, refer to the Help documentation.

Automatic OAuth

After setting the following, you are ready to connect:

    APIKey: The Application key in your app settings. OAuthClientId: The OAuth Client Id in your app settings. OAuthClientSecret: The OAuth Secret in your app settings.

When you connect, the provider automatically completes the OAuth process:

  1. The provider obtains an access token from SAP Ariba and uses it to request data.
  2. The provider refreshes the access token automatically when it expires.
  3. The OAuth values are saved in memory relative to the location specified in OAuthSettingsLocation.

Configure the SQL Gateway

See the SQL Gateway Overview to set up connectivity to SAP Ariba Procurement data as a virtual MySQL database. You will configure a MySQL remoting service that listens for MySQL requests from clients. The service can be configured in the SQL Gateway UI.

Creating a MySQL Remoting Service in SQL Gateway (Salesforce is shown)

Query SAP Ariba Procurement from Node.js

The following example shows how to define a connection and execute queries to SAP Ariba Procurement with the mysql module. You will need the following information:

  • Host name or address, and port: The machine and port where the MySQL remoting service is listening for MySQL connections.
  • Username and password: The username and password of a user you authorized on the Users tab of the SQL Gateway.
  • Database name: The DSN you configured for the MySQL remoting service.

Connect to SAP Ariba Procurement data and start executing queries with the code below:

var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'localhost',
  database : 'CData SAPAribaProcurement Sys',
  port	   : '3306',
  user     : 'mysql_user',
  password : 'test'
});
connection.connect();
connection.query('SELECT * FROM Orders', function(err, rows, fields) {
  if (err) throw err;
  console.log(rows);
});

connection.end();