Creating a mapping in ODI 12c is different from the one in ODI11g. People who are accustomed to ODI11g will be irritated by the fact that some things which were bad in 11g haven't changed and the new additions are even more complicated than the older one.
I am going to show how to create a simple mapping and as I do that, I'll list down some issues that we can normally face. (Please dont delve into the details of tables and what they are doing)
Starting with the first tab, you will see that 'Staging Area Different From Target' check option is missing. Where did it go ? We will see that later.
Dragging and dropping tables is same as older versions.On the 'Logical' Tab canvas I dragged and dropped three tables from Models tab and a 'join' component explicitly from the component tab since we have to join tables DEPT and EMP. Somehow the graphics are not rendered perfectly as you can see the Join component is not visible completely.
To create joins, drag DEPTNO column from DEPT onto the join component and DEPTNO from EMP table onto the component. This exercise will create the needed join. Now, if you see the connector properties, you will see that INPUT1 and INPUT2 are showing DEPT and EMP, now what about OUTPUT1 ?
Well, it does sound weird but all components have this INPUT and OUTPUT 'ports' whether they make sense or not (and Oracle lovingly calls it EAST and WEST)
Now, if you drag source tab column onto the target tab column (EMP.DEPTNO onto EMPDEPT_LO. DEPTNO), this port will be automatically populated and an arrow starting from out port (EAST) of Join component to the target table will be created.
That ODI 12c supporting multiple targets is an old story, but looking at the diagram below will give you a hint of how it will look. Spare some time to observe how arrows come out from tables.
Logical flow (Mapping in ODI11g) now looks more like its competitors (if you know what I mean) and should silence critics for some time now.
There is a 'check' button to validate the mapping, if everything is alright, you can navigate to the 'Physical' tab
Now, here is the issue which even the older one had, if there is a warning or error the properties tab will show it in a single line.
Even if you reposition the tab to accommodate the issue column, the space is insufficient to view the entire message and it does not open in a separate window so that you could just copy it. There is a ridiculous work-around, hover your mouse pointer on the issue column and read the message before if disappears automatically (or take a snapshot as I did below)
Oracle definitely needs to do something about this.
Coming back to the topic, the warning was about re-considering the Staging location, (staging area different from target option). Where is this option now ?
On the Physical Tab's canvas you will have to click on the whitespace to get the properties of the mapping.
Observe the options 'Is Frozen' and 'Use Unique Temporary Object names'. These are new features and using the 'Help' option redirected me to documentation of ODI 11g. Will have to find the use of these by trial-and-error.
When everything was sorted, I tried executing the interface and it threw an error
ODI-1228: Task LKM Oracle to Oracle Pull (DB Link) (Create database link to source) fails on the target GENERIC_SQL connection ODI_TRN.
Caused By: java.sql.SQLSyntaxErrorException: ORA-01031: insufficient privileges
Please note that the tables used in the mapping are already being used in ODI 11g and it has been working fine. I observed that in ODI12c, ODI tries to create a dblink at the start of the execution and removes the link after use. So there are some extra privileges that your source and target are going to need in order to create these dblinks. To make matters worse, I could not find an option in KMs or anywhere else where I can run a mapping without creating dblinks just like in older versions.
Creating a dblink and giving extra privileges is not working, maybe I need to consult the DBA here to sort it out. But for now, this is how it is.
Next we will see how other components are used.
Cheers !
NJ