Thursday, 14 August 2014

OBIA Table Maintenance Customisation

OBIA ODI Default Behaviour on Table Maintenance


The table Maintenance procedure only currently works under the Oracle BI Applications model Folder

The below solution involves altering a procedure / generating a scenario / Duplicating and Altering an IKM

Oracle BI Applications
Dimension_Stage = Truncate after load in IKM
Fact_Stage = Truncate after Load in IKM


The truncate is handled by the Table Maintenance Program in ODI this is called from the Integration Knowledge Modules…

To alter the Table Maintenance program so it supports other models  folders do the following

Navigate to: 
1.       Bi Apps Project à Components à DW à Table Maintenance
2.       Duplicate TABLE_MAINT_PROC Procedure

3.       Edit the New TABLE_MAIN_PROC Procedure and remove the following piece of code


This will now enable the TABLE_MAINT_PROC to work on any Model

I wanted to create a model called RX Oracle BI Applications not linked to BI Applications so that I can keep the custom models separate from the seeded models. Remember you still need to name your folders Dimension_Stage .. same as seeded etc

4.       Duplicate the Existing Package Exec TABLE_MAINT_PROC and refer the procedure step to the new duplicated procedure above.

5.       Generate a new scenario
6.       Duplicate a seeded IKM

Left Click to Duplicate an object

7.       Edit the duplicated IKM

Under Details then step “Table Maintenance Before”

Alter the python code – Update to new Scenario name generated above with new Procedure to support a model apart from Oracle Applications.


That’s it test your new interfaces using the New Knowledge Module. Import the Knowledge module into your project.


---------- Reference Code in TABLE_MAINT_PROC

   if (td.mTableModelCode.equals("BIAPPS")||td.mTableModelCode.equals("BIAPPS_DATALINEAGE")||td.mTableModelCode.equals("ORACLE_BI_APPLICATIONS")) {

                optOverride = odiRef.getFlexFieldValue(Integer.toString(td.mTableId), "2400", "OBI_TAB_MAINT_BEHAVIOR"); //FlexField for Over-riding the default Sub Model Behaviour

   } else { optOverride = "NEVER_SKIP_ALLSTATS"; // For non-BIAPPS model do nothing


---------- I Have included the snippet that requires changing  in earlier steps.


No comments:

Post a Comment

Google Drive API Google Sheets Extract to CSV with SERVICE KEY.JSON Recent Client had some Google Sheets stored on their Goo...