Welcome to All Things Data Integration: Announcements, Insights, Best Practices, Tips & Tricks, and Trend Related...

Extending the Interface Accelerator

David Allan

Carrying on the automate, automate theme, here’s an illustration of some really useful capabilities using the ODI 11g
SDK which make it more powerful, carrying on from the post on the simple
accelerator that I posted here.
In this posting I had a simple control file that mapped some table to some other
table that were defined in in the control file. The auto mapping as-in the ODI
UI itself matches on exact names of columns.

What if we want to do something a little different and automate? For example
say some standard suffixes or prefixes have been added to the column names what
can we do? With the previous posting no columns will be mapped. This was because
I used the auto mapping provided out of the box (see the following line in the
interfaceAccelerator.java file from the post mentioned;

InterfaceActionSetTargetDataStore(targetDatastore, new MappingMatchPolicyLazy(),
AutoMappingComputerLazy(), new AutoMappingComputerLazy()
, new

Here is where we can refine this by specializing the auto mapping class that
ODI provides, I will create one called MyRegexpAutoMappingComputer.java this
class will refine the method performAutoMapping which will construct the mapping
for a target column – it can even call the super classes method and reuse the
default exact name matching if needed.

interactiveHelper.performAction( new
InterfaceActionSetTargetDataStore(targetDatastore, new MappingMatchPolicyLazy(),
new MyRegexpAutoMappingComputer(
MyRegexpAutoMappingComputer.MatchTypes.TGTENDSWITH), new
MyRegexpAutoMappingComputer.MatchTypes.TGTENDSWITH), new

You can see in the above call I now use a new auto mapping class and pass in
the TGTENDSWITH enumeration to do matching (so a source call named EMPNO will
match with a target name of STG_EMPNO). The new files are available here;

The class could be enhanced to support more complex stuff, hopefully you see
how this works and an insight into how you can extend the SDK provided and add even more value.

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.Captcha