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 IKMFact_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
||td.mTableModelCode.equals("ORACLE_BI_APPLICATIONS")
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.
OdiStartScen
"-SCEN_NAME=RX_EXEC_TABLE_MAINT_PROC" "-SCEN_VERSION=001"
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.
Note: only a member of this blog may post a comment.