Hello everyone!
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 11.1.1.0.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:
Addition.java
import java.util.Scanner; 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 { int num1,num2; Addition addobject = new Addition(); System.out.println( "--------------Program to add two numbers---------------" ); Scanner s = new Scanner(System.in); System.out.println( "Enter 1st number" ); num1= s.nextInt(); System.out.println( "Enter 2nd number" ); num2=s.nextInt(); 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
C:\programs\javac Addition.java |
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!
1st location
C:\oracle\product\ 11.1 . 1 \Oracle_ODI_1\oracledi\agent\drivers |
2nd location
C:\Users\<user-name>\AppData\Roaming\odi\oracledi\userlib |
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 ; Examples: ; C:\ java\libs\myjar.jar ; C:\ java\libs\myzip.zip ; C:\oracle\product\ 11.1 . 1 \Oracle_ODI_1\oracledi\agent\drivers\ ; 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 C:\Users\karan\AppData\Roaming\odi\oracledi\userlib\*.jar |
Workaround
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.
Create a step in it as follow.
Now, write the command for the procedure in Jython
import os import sys jars = [ "C:\oracle\product\11.1.1\Oracle_ODI_1\oracledi\agent\drivers\Addition.jar" ] for jar in jars: sys.path.append(jar) import Addition num1 = <%=odiRef.getOption( "number1" )%> num2 = <%=odiRef.getOption( "number2" )%> print "1st number: %d" % num1 print "2nd number: %d" % num2 addobj= Addition() result= addobj.add(num1,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.
Then Execute a package and see results.
Nice tutorial. The Teradata tutorial was helpful for me. Keep Sharing Tutorials.
ReplyDeleteODI Online Training
ODI Classroom Training
ODI Training
ODI Training in Hyderabad
Oracle Data Integrator Training
hi. Thanks for this information. In my organisation we are using ODI on GNU machine. I can see in an existing code some java class is imported and used. I want to open and know the underlying code for this class that is being imported and used. How can i know the path of this class? Is there any path in properties tab of About section?
ReplyDelete