Connect to JD Edwards Data in Ruby

Jerod Johnson
Jerod Johnson
Director, Technology Evangelism
Connect to JD Edwards data in Ruby with ruby-dbi, dbd-odbc, and ruby-odbc.

The CData ODBC Driver for JD Edwards makes it easy to integrate connectivity to live JD Edwards data in Ruby. This article shows how to create a simple Ruby app that connects to JD Edwards data, executes a query, and displays the results.

Create an ODBC Connection to JD Edwards Data

If you have not already, first specify connection properties in an ODBC DSN (data source name). This is the last step of the driver installation. You can use the Microsoft ODBC Data Source Administrator to create and configure ODBC DSNs.

The driver connects to JD Edwards through your Application Interface Services (AIS) Server. Set the following connection properties:

  • URL: The base HTTPS URL of your AIS Server (e.g., https://jde-ais.example.com:8300).
  • User: Your JD Edwards username.
  • Password: Your JD Edwards password.
  • Environment (optional): The JD Edwards environment to use (e.g., PD920 for production or DV920 for development). If not specified, the AIS Server's default environment is used.
  • Role (optional): The JD Edwards role for the session. If not specified, the AIS Server's default role is used.
  • DeviceName (optional): An identifier for the connecting device or application, used for auditing and logging on the AIS Server.
  • Jasserver (optional): The specific Java Application Server (JAS) instance to route requests through, useful in clustered environments.

Choosing Which Data Is Exposed

JD Edwards organizes tables and business views by System Code, and the driver exposes each System Code as its own schema. Use these properties to control which schemas are available:

  • DataModel: One or more ERP modules (comma-separated) whose System Codes are exposed as schemas, or All to expose every System Code in the connected instance. Defaults to FinancialManagement.
  • SystemCodes: A comma-separated list of additional System Codes to expose alongside those from DataModel (e.g., 42,43).

When you connect, the driver sends your credentials to the AIS Server to obtain a session token and caches it. The driver requests a new token automatically before the session expires.

Installing Ruby and Necessary Gems

If you do not have Ruby installed, refer to the Ruby installation page. With Ruby installed, you will need to install the ruby-dbi, dbd-odbc, and ruby-odbc gems:


gem install dbi
gem install dbd-odbc
gem install ruby-odbc

Create a Ruby App with Connectivity to JD Edwards Data

Create a new Ruby file (for example: JDEdwardsSelect.rb) and open it in a text editor. Copy the following code into your file:


#connect to the DSN
require 'dbi'
cnxn = DBI.connect('DBI:ODBC:CData JDEdwards Source','','')

#execute a SELECT query and store the result set
resultSet = cnxn.execute("SELECT DocumentNumber, Amount FROM AccountsPayable.AccountLedger WHERE BusinessUnit = '100'")

#display the names of the columns
resultSet.column_names.each do |name|
  print name, "\t"
end
puts

#display the results
while row = resultSet.fetch do
  (0..resultSet.column_names.size - 1).each do |n|
    print row[n], "\t"
  end
  puts
end
resultSet.finish

#close the connection
cnxn.disconnect if cnxn

With the file completed, you are ready to display your JD Edwards data with Ruby. To do so, simply run your file from the command line:


ruby JDEdwardsSelect.rb
Writing SQL-92 queries to JD Edwards allows you to quickly and easily incorporate JD Edwards data into your own Ruby applications. Download a free trial today!

Ready to get started?

Download a free trial of the JD Edwards ODBC Driver to get started:

 Download Now

Learn more:

JD Edwards Icon JD Edwards ODBC Driver

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

Access JD Edwards data like you would a database - read JD Edwards AccountLedger, ProposalofPayment, ContractRevenueSummary, EmployeeEnrollment, RentIncreaseAmounts, etc. through a standard ODBC Driver interface.