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
| importjava.util.Scanner;publicclassAddition {        publicintnumber1, number2;        publicintadd(intnum1, intnum2)    {        return(num1+ num2);    }        publicstaticvoidmain(String args[]) throwsException    {                intnum1,num2;                Addition addobject = newAddition();        System.out.println("--------------Program to add two numbers---------------");        Scanner s = newScanner(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 subdirectoriesC:\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
| importosimportsysjars = ["C:\oracle\product\11.1.1\Oracle_ODI_1\oracledi\agent\drivers\Addition.jar"]forjar in jars:      sys.path.append(jar)importAdditionnum1 = <%=odiRef.getOption("number1")%>num2 = <%=odiRef.getOption("number2")%>print  "1st number: %d"% num1print  "2nd number: %d"% num2addobj= 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