It’s time for another cool tutorial on Oracle Data Integrator. This one will guide you in using your custom Java code and help call .jar files from within ODI.
Pre-requisites: Oracle Data Integrator 11g (build version 18.104.22.168.7)
Step 1: Write Java code to perform Addition of two numbers
Open notepad and start coding. Here is what my Java class looks like:
public class Addition
public int number1, number2;
public int add(int num1, int num2)
return (num1+ num2);
public static void main(String args) throws Exception
Addition addobject = new Addition();
System.out.println("--------------Program to add two numbers---------------");
Scanner s = new Scanner(System.in);
System.out.println("Enter 1st number");
System.out.println("Enter 2nd number");
System.out.println("result of addition is :" + " " +addobject.add(num1, num2) );
Step 2: Compile and create .jar file
Compile the .java class from the command line
Create .jar file from the class
C:\programs\jar cf Addition.jar Addition.class
Copy the newly created Addition.jar file and paste it at the following locations!
At the second location, you will find the additional_path.txt file. Open it and add the path to your .jar file.
; Additional paths file
; You can add here paths to additional libraries
; C:\ java\libs\myjar.jar
; C:\ java\libs\myzip.zip
; C:\java\libs\*.jar will add all jars contained in the C:\java\libs\ directory
; C:\java\libs\**\*.jar will add all jars contained in the C:\java\libs\ directory and subdirectories
After you have copied the .jar file you now need to do a workaround. Copy the Lib folder from C:\oracle\product\11.1.1\Oracle_ODI_1\oracledi.sdk\lib and paste it inside C:\oracle\product\11.1.1\Oracle_ODI_1\oracledi\agent\lib. This makes sure that ODI reads the python files when we try to import them in our procedure code.
Step 3: Create new procedure
Launch ODI Studio and connect to your work repository. Create new procedure named AddTwoNumbers in any of your existing Projects.
Now, write the command for the procedure in Jython
jars = [
for jar in jars:
num1 = <%=odiRef.getOption("number1")%>
num2 = <%=odiRef.getOption("number2")%>
print "1st number: %d" % num1
print "2nd number: %d" % num2
print "Sum is : %d" % result
Note: Make sure the above code is well indented or else it will result in errors when executed.
Before you run this procedure you need to create two Options that will act as input parameters for the procedure.
Step 4: Create new package
Create new package named Addition of Two Numbers. Add the procedure to the package with the correct options and run the package. Check the status of the operation under the Operator navigator.
Note: In order to view the output on the command line window, one can Create a new Agent and run the above package by selecting your agent.