Connect to JD Edwards Data in JRuby
JRuby is a high-performance, stable, fully threaded Java implementation of the Ruby programming language. The CData JDBC Driver for JD Edwards makes it easy to integrate connectivity to live JD Edwards data in JRuby. This article shows how to create a simple JRuby app that connects to JD Edwards data, executes a query, and displays the results.
Configure a JDBC Connection to JD Edwards Data
Before creating the app, note the installation location for the JAR file for the JDBC Driver (typically C:\Program Files\CData\CData JDBC Driver for JD Edwards\lib).
JRuby natively supports JDBC, so you can easily connect to JD Edwards and execute SQL queries. Initialize the JDBC connection with the getConnection function of the java.sql.DriverManager class.
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.
Built-in Connection String Designer
For assistance in constructing the JDBC URL, use the connection string designer built into the JD Edwards JDBC Driver. Either double-click the JAR file or execute the jar file from the command-line.
java -jar cdata.jdbc.jdedwards.jar
Fill in the connection properties and copy the connection string to the clipboard.
Below is a typical JDBC connection string for JD Edwards:
jdbc:jdedwards:URL=https://your-jde-environment-app.example.com;User=admin;Password=myPassword;
Create a JRuby 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:
require 'java'
require 'rubygems'
require 'C:/Program Files/CData/CData JDBC Driver for JD Edwards 2018/lib/cdata.jdbc.jdedwards.jar'
url = "jdbc:jdedwards:URL=https://your-jde-environment-app.example.com;User=admin;Password=myPassword;"
conn = java.sql.DriverManager.getConnection(url)
stmt = conn.createStatement
rs = stmt.executeQuery("SELECT DocumentNumber, Amount FROM AccountsPayable.AccountLedger")
while (rs.next) do
puts rs.getString(1) + ' ' + rs.getString(2)
end
With the file completed, you are ready to display your JD Edwards data with JRuby. To do so, simply run your file from the command line:
jruby -S JDEdwardsSelect.rb
Writing SQL-92 queries to JD Edwards allows you to quickly and easily incorporate JD Edwards data into your own JRuby applications. Download a free trial today!