Hi Everyone…
One more post in our “Oracle Data Integrator 11g” serie.
In the last two features of the ODI 11g we have been covering the Initial and repository logic part . Now in this Post we will be covering few of the Inside looks, option changes in ODI 11g.
The idea is show what changed in the GUI. How to find some features that we already know and some new.
As I already said, now there is just an “ODI Studio” and the 4 ODI modules are inside the same visual interface.
Once logged into the ODI 11g we find that unlike different component in ODI 10g we have all the Designer, Topology , Operator and Security Manager integrated into Sub tabs which can be Closed and called again. If you have accidently closed any Navigator , you can call from View options.

Even in the each Component, instead of Tabs we find Sub sections.

Others and Solution are something we don’t use more and we can minimize them to have more space. To minimize, at the end you will find down arrow under each sub section and you can click on it and click on Minimize.

All the minimized sections are stored under this small bar with three dots at the end .

Once click you will find all the minimized objects. Click on it to expand.

Option which were seen in the title bar option in ODI 10g is not available as Scroll bar option


You can find the Import Work Repository option and other options which we found in File in 10g are now again as scroll menu at the top tab in Designer.

Similar such categorization and formatting is pretty much applied to other components of ODI.
ODI 11g also allows few good handling of Tabs while working with multiple or parallel Interface or Models etc . By default when you open objects in ODI they open by tabs .

and if you want to see two parallel tabs , and select New Editor Tab Group and see the objects in parallel and you can do for multiple objects.


The Interface is a little different in ODI 11g .

In ODI 11g we can split the Inter face into two screens, you can enable those options

And this way,you can see the two part of the ODI Interface simultaneously, the only restriction you cant see the same option on both section.

We can also view the source data store as Compact and symbolic.


There is also new add a lookup functionality ,where you can add datastore and make the required joins in a form of wizard.



and has a different color for lookup

You can also optimize the size of Datastore .


There are more user defined Flags

There is also a Quick Edit tab where we can see all our joins , lookup and all other information and we can edit and modify them accordingly .

The Flow Control bar is little different from previous version and you can select the IKM and LKM when you select the Staging Area.

ODI 11g supports Partition and Sub partition too and we shall cover them in a separate post in near future in detail .

The Models are pretty much having the same functionality except instead of Reverse button we have an icon to do that . The green arrow icon lets us to do our Reverse engineer.

In the Column as we have discussed before we have support for Partition and Sub Partitioning

Well, we tried to give you a general vision of everything in the graphical interface and its characteristics. More will come in the next days….
Thank you for visit us!
GD Star Rating
loading...
Posted: August 31st, 2010 |
Author: Cezar Santos |
Filed under: Architecture,
How to,
Logic,
ODI,
Tips and Tricks |
Tags: INTERFACES,
MODEL,
ODI 11g,
ODI GUI,
Oracle Data Integrator 11g,
REVERSE,
Sunopsis |
Comments: 2 Comments »
Hi Guys,
Another really usefull tip about data types!
There are some time it happens we don’t have the required data type in respective Technology in ODI say for example DATETIME YEAR TO DAY ,DATETIME YEAR TO SECOND etc and so when we do a Selective reverse or RKM we don’t get the correct data type listed causing which we get the Null data type or get assigned to String .
The other simple solution if you are particular in getting the data type listed in Model . Here are the steps to Manually add the data type in Topology and create the respective conversation syntax.
Step1 . Go to the Respective data type and right click and Insert Data type or Duplicate an already existing datatype
Step2. Provide the required code and syntax

Step 3 . Provide the required converted To and Converted From detail for the Technology you are going to Work with . Lets say my target will be Oracle in that case , I have assigned to Timestamp .

Easy and Simple solution in dealing with Data types missing.
Any comments???
It’s our pleasure to have you here, at www.odiexperts.com
GD Star Rating
loading...
Posted: August 28th, 2010 |
Author: Kshitiz Devendra |
Filed under: Administration,
Common Errors,
How to,
Logic,
ODI,
Technology,
Tips and Tricks |
Tags: Data Type,
ODI,
ODI Adminstration,
ODI Experts,
Oracle Data Integrator,
Topology |
Comments: No Comments »
Hi Friends,
Right now I’m in São Paulo airport waiting for a flying that is very delayed! With some time free, let me write about something that I want to publish there is a long time….
Surprise! Isn’t an Oracle Data Integrator issue! hehehehehehe……
I really like to work with ORACLE RDBMS but doesn’t exist a “Is Number” function is, in my opnion, a lack of funcionality that I can’t understand.
Every time that is necessary to check if the returned value from a column (or a substring from it ) is number, I created a database (PL/SQL) function that return true or false and then uses it in the query.
In this way works, but if I want to do the same in a Microsoft SQL Server, there is a “native” function to do it.
The big problem is that, sometimes, you don’t have an user that can create PL/SQL procedures and, then, you can’t do this type of validation.
For solve this, I created the following technique:
A single SQL query that can return if a column is number or alphanumeric
select case when trim(TRANSLATE('1234f','0123456789', ' ')) is null
then 'numeric'
else 'alpha'
end
from dual
Where ’1234f’ should be substituted by the column that you wish to validate.
The principle is very simple, if the numbers from a string are removed and the result is different of null then the string isn’t numeric. The Trim funcion eliminates any remained space.
Plus, it is pretty usefull when there some non-visible ASCII char in a column.
Well, I couldn’t let to show a use of this in ODI.
When there is a text file to be loaded and it is necessary to check (CKM) if the columns are with the right data (thru ODI constraint) this single query can send to the error table (E$) any record that has the wrong data.
See you around!
GD Star Rating
loading...
Posted: August 26th, 2010 |
Author: Cezar Santos |
Filed under: How to,
Logic,
ODI,
SQL,
Tips and Tricks |
Tags: ODI,
ODI Constraint,
Oracle Data Integrator,
Oracle Is_Number function,
Sql,
Sunopsis |
Comments: 2 Comments »
Hello all,
OdiSqlUnload is a great utility for unloading but then we need to hardcoded and provide the parameters of the username and password which can change in the Other Environment in ( Testing , UAT or Prod ) . Here is a small trick to handle that situation.
In the Command on Source, Select the Required Technology and Schema name .
Copy the Syntax of the OdiSqlUnload into an ODI procedure into Command on Target with Sunopsis API as the Technology
OdiSqlUnload “-FILE=” “-DRIVER=<%=odiRef.getInfo(“SRC_JAVA_DRIVER”)%>” “-URL=<%=odiRef.getInfo(“SRC_JAVA_URL”)%>” “-USER=<%=odiRef.getInfo(“SRC_USER_NAME”)%>” “-PASS=<%=odiRef.getInfo(“SRC_ENCODED_PASS”)%>” “-FILE_FORMAT=VARIABLE” “-FIELD_SEP=,” “-ROW_SEP=\r\n” “-DATE_FORMAT=yyyy/MM/dd HH:mm:ss” “-CHARSET_ENCODING=ISO8859_1″ “-XML_CHARSET_ENCODING=ISO-8859-1″ “-FETCH_SIZE=5000″ “-QUERY=select * from QUERY”
This way ODI will automatically get the parameters from the topology and also use the Fetch_Size 5000 for good performance .
Also look into this post for generating header in OdiSqlUnload – http://odiexperts.com/?p=1845
Just a small trick . Look for more ideas at odiexperts.com
GD Star Rating
loading...
Posted: August 25th, 2010 |
Author: Kshitiz Devendra and
Cezar Santos |
Filed under: How to,
Logic,
ODI,
Tips and Tricks |
Tags: hardecoded password,
ODI,
ODI connection,
ODI Experts,
odisqlunload,
Oracle Data Integrator,
Sunopsis |
Comments: No Comments »
This post is all about explaining how the internal Id in ODI plays and acts and what is the best practice and what actually happens when most of the error occurs.
Internal Id is an important element in ODI when its comes to Import Export of Object and so a good understanding of it can help us save time and above all errors related to Export Import . Internal ID apart being an incrementing code also have relationship to Work and Master Repository.
If you are keen on knowing how the internal Id objects have relation to Work (WR)and Master Repository. Here is the key , when you define your 2 or 3 digit number as the Internal ID to Repository, this number(WR Internal ID ) acts like a base in all the object.
Lets say my internal id for Work Repository is 200 .
My project will have the Internal Id – 1200
My Folder will have Internal Id of -2200
Interface1 – 2200
Interface2- 3200
Interface3- 1200
Variable1- 2200.
If you have notice all the different objects have suffix 200( WR Internal ID) to their incrementing number.
Note : ODI can have same internal Id for different objects but never for the same object , since while storing into the SNP work repository tables it increments accordingly by 1000 or other number as defined in its code.
Similarly its go for the Master Repository.
Lets say my Master Repository internal id 50 .
Data Server 1- 2050
Data Server 2 – 3050
Physical Schema1 – 1050
Physical Schema2 – 2050
Agent1-1050
[Please note some of the Default Data server created while Initial ODI installation( Ex - XML_GEO_DIM , File Generic etc ) will have different Internal ID not matching to your Master Repository IDs. ]
We hope till now , you would have got an good understanding of ODI objects , Repository Internal ID and their relationship .
Now let us cover the importance and the simple reason why Repositories needs to have different Internal ID and which is the highly suggested and the best practise to do with few simple scenarios.
Scenario 1. Two DWR having the same internal ID.
Let us call them DWR1 and DWR2. They both have the same Internal Id of 200 connected to different Master Repository.
Let say the development is being carried on both the repository or even the Development and Testing environment are both DWR .
Let say we have reveresed engineered datastore
Source Data Store – ABC (121200)
Target Data Store – TRG (321200)
and created the interface
Interface – XMT_Interface (143200)
The interface is ready and some body in the DWR2 needs the same Interface for their development build, but unfortunately some one have already reverse engineered the same in the DWR and their internal id as follows .
Source Data Store – ABC (122200)
Target Data Store – TRG (322200)
When the Developer brings in the Interface XMT_Interface thinking that already the Data store exists in the DWR2 , it will fail because of improper links , since Interface will look for Datastore ABC (121200) and TRG (321200) and KM and when they are different it error out.
To solve this either the developer have to bring in Duplicate mode and also change the Source Data stores. In short he pretty much needs to rebuild the whole interface again.
The other sub scenario can be Interface with the same ID can exists with different name and code. Again the Developer need to import in duplicate and assign the required datastore , in short rework .
Scenario 2. Two DWR having different internal ID.
Let me call them DWR1 and DWR2. They both have the different internal id of 200 and 201 respectively.
Now let say the developer is moving the Interface from the DWR1 to DWR 2. Well even now the interface will fail , not becuase of Interface id but becuase of the datastore can be different in the DWR2.
To solve this we need to import the data store too but that’s like having two different data stores for single purpose.
Well here the steps to handle in such a scenarios.
Step1. Sync Global Variable and other Global ODI objects , Model and Datastore when imported in One DWR to another DWR immediately or at the End of the Day.
Step2. Import the Codes in this order Project, KM, Local Variable, Procedure ,Interface and Packages for sync [ if required ]
Well with these above conditions in place, the Developer can easily migrate the code since
Source Data Store – ABC (121200)
Target Data Store – TRG (321200)
Will be present and also being a different internal id we can use Insert_Update and import the codes.
Above all, what ever is the case, have different internal Id for Work Repository.
Scenario -3 Importing from DWR to EWR having the same internal ID. (100)
Lets take an Example where a Developer in the EWR makes a duplicate of the present scenario ( 12100) and ODI starts to define a new Internal ID but here comes the issue , that
scenario internal id can be already present or in future when trying to import makes an Error ,since we have created a duplicate interface with that ID.
Scenario -4 Importing from DWR to EWR having the different internal ID. (200 and 201 )
If in case the EWR would have had a different internal id DWR (200) and EWR (201) , so when the Developer make a duplicate the new id will be with some thing like this (12201) and so its does not updates or modify or error out because of an existing object or even when importing scenarios in the future ,since the base ODI have scenarios with numbers ending in 200 .
Similarly the Internal ID can impact for different ODI objects in Topology and Security Manager, so use different Internal ID.
I hope this post have given you an understanding and the relationship of Internal Id , its generation method and why the objects gets error out.
Moral of the Post – Create Different internal Id for both Work Repository and Master Repository always .
Look for odiexperts.com for more tips, tricks and best practices.
GD Star Rating
loading...
Posted: August 17th, 2010 |
Author: Kshitiz Devendra and
Cezar Santos |
Filed under: Administration,
Architecture,
How to,
ODI,
Technology,
Tips and Tricks |
Tags: Export,
Import,
insert update mode,
odi internal id,
ODI repository |
Comments: No Comments »