Discussions
Categories
- 17.9K All Categories
- 3.4K Industry Applications
- 3.4K Intelligent Advisor
- 75 Insurance
- 537.6K On-Premises Infrastructure
- 138.7K Analytics Software
- 38.6K Application Development Software
- 6.1K Cloud Platform
- 109.6K Database Software
- 17.6K Enterprise Manager
- 8.8K Hardware
- 71.3K Infrastructure Software
- 105.4K Integration
- 41.6K Security Software
Import / create Integration knowledge modules

I am new to ODI and was going to catch some exceptions such as making sure what is passed is a number instead of varchar, or validate the length then record these exceptions into a different table.
Came to tutorials and notes that it seems like I should be using Check Knowledge Module which seems to be linked with Integration Knowledge Module being used while mapping. From what I read this will catch exceptions and put them inside an E$_table, so I want to try it out.
I was using VM ODI downloaded from https://www.oracle.com/middleware/technologies/data-integrator/odi-demo-downloads.html
It includes an append Integration Knowledge module, then I started using the big data lite VM from https://www.oracle.com/database/technologies/bigdatalite-v411.html which is more updated version of ODI and the Oracle Database too.
But in the big data lite ODI, I do not see the append option in Integration Knowledge module, I wonder if there's a way I can either export from the previous VM then import into the new VM. I was checking googling but most of them were talking about exporting / importing environment, repositories and so on.
Can someone shade me some light on how to progress?
Thanks in advance for any suggestions and advices.
P.S. If I am actually on the wrong road of wanting to catch exceptions to another table such as if `TO_NUMBER(value)` gives an exception error or if even possible `LENGTH(value) != 5` something like these. Please let me know and if can lead me to where I can find tutorials with images, I really appreciate the help.
Thanks a lot
Best Answer
-
You are on the right track: CKM is the way to go.
You will need to import the CKMs you need into your project. Right click on Knowledge Modules, choose 'Import Knowledge Modules', navigate to <Oracle_Home>\odi\sdk\xml-reference and click OK.
This will give you the list of all standard Kms.
Have fun, Marco
Answers
-
You are on the right track: CKM is the way to go.
You will need to import the CKMs you need into your project. Right click on Knowledge Modules, choose 'Import Knowledge Modules', navigate to <Oracle_Home>\odi\sdk\xml-reference and click OK.
This will give you the list of all standard Kms.
Have fun, Marco
-
Thanks for noting this, somehow I can't find the directory you mentioned. I randomly found a template from other projects so I copy it over. It is weird that it does catch the constrains I made such as `LENGTH(value) != 5` but weird that inside the constraint made, I do something
TO_NUMBER('2e')
it'll still give me an error and stop the mapping instead of carrying it over to `E$_table` as an exception being catched though -
Which version doe you use?
-
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
Oracle IDE 12.2.1.3.0
-
I have never seen a different location for the KMs.
Do a search on you Oracle_home directory tree for filenames like
KM_IKM*.xml
.Maybe you got tricked by the odd behavior of the file selector dialog? You first need to select the correct directory, you will not see any files at that point until you click OK. Only than you can see files.
-
Thanks Marco, finally found it, yes you are right. Just didn't know it's actually installed in another drive other than the main drive, by any chance you know which module will catch the datatype exceptions not just the constrains created by myself? For example the datatype is number so passing something like '2c' will give an error but this kind of error stops the mapping instead of bringing the bad data to E$ table. I imported and using the IKM Oracle Control Append
-
Those checks are done by a CKM (as in Check KM).
I don't have a lot of experience with those, but in my understanding they can only handle things that are defined as constraints in the repository. If you define a check constraint that for instance uses a function to determine whether the data complies with a datatype it would use that.
Personally, I'd avoid file-based interfaces (I assume that is what you are doing) precisely for this type of issues. Structured and typed data is so much easier to work with.
Have fun, Marco
-
That's correct, file is what I have to work with