Download as pdf or txt
Download as pdf or txt
You are on page 1of 66

OBIA 11g ETL Customization Guide

Author: Dileep Vasu


Creation Date: May 8, 2014
Last Updated: July 23, 2014
Version: 6.0
Document Control

Change Record

Date Author Version Change Reference


04/28/2014 Dileep Vasu 1.0 No previous document
07/09/2014 Dileep Vasu 5.0 Updated with details about extensions,
scenarios and load plans.

07/22/2014 Dileep Vasu 5.1 Added the step to set the OBI fact group
flexfield for fact tables, updated to set the P1
constraint as Primary Key

07/23/2014 Dileep Vasu 6.0 Updated the document to remove customer-


specific details

Reviewers

Name Position

Page 2 of 66
Table of Contents

Document Control......................................................................................................................................... 2
Change Record .......................................................................................................................................... 2
Reviewers .................................................................................................................................................. 2
Table of Contents .......................................................................................................................................... 3
Notes on Customization................................................................................................................................ 5
Initial Setup ................................................................................................................................................... 6
Create New Sub-Folders for Customizations and Extensions ................................................................... 6
Versioning the Data Model ..................................................................................................................... 10
Custom Facts and Dimensions -- Source Dependent Extract (SDE) ............................................................ 12
Import Source Tables .............................................................................................................................. 12
Import Target Staging Tables .................................................................................................................. 14
Create the Source Dependent Extract (SDE) mapping............................................................................ 18
Staging Mapping ETL Development Notes.............................................................................................. 21
Create a Package for the SDE Mapping .................................................................................................. 24
Custom Dimensions -- Source Independent Load....................................................................................... 26
Reverse Engineer the Dimension Table .................................................................................................. 26
Set Column Properties for Slowly Changing Dimensions ........................................................................ 31
Create a Sequence for the Surrogate Key ............................................................................................... 32
Create the Source Independent Load (SIL) Mapping .............................................................................. 34
Dimension Mapping ETL Development Notes ........................................................................................ 35
Create a Package for the SIL Mapping .................................................................................................... 37
Custom Facts -- Source Independent Load ................................................................................................. 39
Reverse Engineer the Fact Table ............................................................................................................. 39
Create the Source Independent Load (SIL) Mapping .............................................................................. 45
Create a Package for the SIL Mapping .................................................................................................... 51
Generating Scenarios and Updating the Load Plan for Custom Facts and Dimensions ............................. 52
Client Configuration ................................................................................................................................ 52

Page 3 of 66
Generate Scenarios – Custom Facts and Dimensions ............................................................................. 53
Generating Scenarios for Multiple Packages ...................................................................................... 55
Adding Scenarios for Custom Facts and Dimensions to the Load Plan................................................... 57
Extending a Delivered OBIA Dimension or Fact with New Columns .......................................................... 60
Add Columns to the ODI Metadata Model ............................................................................................. 60
Modifying the Delivered ETL ................................................................................................................... 61
Generate Scenarios ................................................................................................................................. 64

Page 4 of 66
Notes on Customization

1. The types of customization supported by OBIA 11g are described in the Oracle Business
Intelligence Applications Administrator’s Guide:
http://docs.oracle.com/cd/E51479_01/doc.111181/e51483/customizing.htm#i1027294
While the Administration Guide provides the high-level steps for customization, at the time of
writing this document it does not cover specific details (such as setting flexfields) that are
required for customizations to work.
2. Note that by convention, the names of custom objects start with WC_ and use the standard
suffix for the type of object (_D for dimension, _F for fact, _DS for dimension staging etc.). A full
list of table naming conventions is in the Administrator’s Guide:
http://docs.oracle.com/cd/E51479_01/doc.111181/e51483/namingconv.htm#sthref89
3. OBIA 11g has a sample custom fact and dimension (WC_SAMPLE_F and WC_SAMPLE_D) along
with their staging tables that can be used as templates for modeling your custom facts and
dimensions.
4. All the source adaptor folders and the SILOS folder also contain task folders with the interface
and package that load these sample tables (e.g. SDE_<source>_SampleDimension). These can be
used as reference for custom mapping development.
5. OBIA uses its own knowledge modules (e.g. IKM BIAPPS Oracle Control Append) which you
should use in your custom mappings as well. Do not use the standard non-BIAPPS knowledge
modules. The BIAPPS knowledge modules have descriptions that explain what their various
options and limitations are.
6. You can test interfaces and packages by simply executing them in ODI, but note that most
parameters are set by BIACM when you run the execution plan. When running interfaces and
packages within ODI, these parameters use a default value defined in ODI that may affect
testing. For example, DATASOURCE_NUM_ID is set to a default hard-coded value that may not
match your source setup in BIACM which would cause surrogate key lookups to fail.
7. Similarly, for Slowly Changing Dimensions the Type 2 parameter must be set in BIACM and it is
only triggered during incremental loads. In other words, the ODI variables IS_INCREMENTAL and
TYPE2_FLG should be set to Y for SCD behavior to work. For testing you can create a package
that sets these variables to Y before running the custom SIL interface rather than changing the
hard-coded default values.

Page 5 of 66
Initial Setup

Create New Sub-Folders for


Customizations and
Extensions
1. Connect to the ODI work repository for BI Applications using the ODI client and navigate to the
Designer tab.
2. Navigate to the Mappings folder under BI Apps Project. Right-click and select New Sub-Folder.

3. Name the sub-folder using the following naming convention: Custom_SDE_<SourceAdaptor>. In


this case, we are creating a folder for the Source Dependent Extract mappings for a PeopleSoft
9.0 source, so the name of the folder is Custom_SDE_PSFT_90_Adaptor

4. Similarly, create the Custom_SILOS folder to hold the Source Independent Load interfaces and
packages, and if needed, the Custom_PLP folder for Post-Load Process interfaces and packages.

Page 6 of 66
5. Click on the Connect Navigator on the Designer pane and click Edit Release Tag…

6. In the Release Tag Wizard, select the BIA_11 release tag, and move the newly created
Custom_SILOS and Custom_PLP folders to the selection window on the right. Click Next >.

Page 7 of 66
7. In step 2, click Finish.

8. Similarly, set the release tag for the SDE folder that corresponds to your source system. In this
example, we add the Custom_SDE_PSFT_90_Adaptor to the PSFT_9_0 release tag.

Page 8 of 66
Page 9 of 66
Versioning the Data Model
1. In the Models pane of the Designer tab, expand the Oracle BI Applications folder and right-click
on the Oracle BI Applications model and select Version > Create Version…

2. Enter a Description to identify this version as the baseline delivered data model, and click OK.

3. Navigate to the source model. Right-click and create a version of the model as we did for Oracle
BI Applications. In this case, the source is the Peoplesoft 9.0 CS model under the PeopleSoft 9.0
> PeopleSoft 9.0 CS folder.

Page 10 of 66
Page 11 of 66
Custom Facts and Dimensions -- Source Dependent Extract (SDE)

Import Source Tables


1. Check underneath the source folder if the table already exists. You can also use Find ODI Object
in the View menu to search for it.
2. If the source table does not already exist it must be imported The source in this example is the
PeopleSoft 9.0 CS model.
3. In the Designer tab, go to the Models pane and expand the PeopleSoft 9.0 folder, then the
PeopleSoft 9.0 CS subfolder and double-click on the PeopleSoft 9.0 CS model.

4. Click on the Reverse Engineer tab, and select <select to change value> in the LIST_OF_TABLES
option.

5. In the Expression Editor enter a comma-separated list of tables that need to be imported.

Page 12 of 66
6. Set the option ONLY_PROCESS_EXISTING_TABLES to false.

7. Set the USE_MASK option to false.

Page 13 of 66
8. Set the ADD_SDS_SUPPORT option to true if you intend to use changed data capture with
GoldenGate now or in the future for this source table. This adds the CDC columns used by
GoldenGate to the source table. You can still use the table and ignore these columns in your
mappings if you do not use SDS.
9. Click on the Save icon on the main toolbar, then click on the Reverse Engineer button on top.

10. After the reverse-engineering is complete, the tables are defined under their respective sub-
models.

Import Target Staging Tables


1. Custom target tables (staging and fact/dimension tables) must be defined in the Oracle BI
Applications model. The table may be defined by hand in ODI, or created in the data warehouse
schema and then imported.
2. To import a target table, in the Designer window expand the Oracle BI Applications folder in the
Models pane and double-click on the Oracle BI Applications model.

Page 14 of 66
3. Click on the Reverse Engineer tab on the left. Go to the LIST_OF_TABLES option and select
<select to change value> in the drop-down list.

4. In the Expression Editor window that pops up, enter the name of the newly created custom
table to import. Use a comma-separated list of names to import multiple tables. Click OK to
close the editor. In this example, we import the WC_CSU_CITIZENSHIP_MDS dimension staging
table.

Page 15 of 66
5. Click on the Save icon in the main toolbar, then click on the Reverse Engineer button on top to
import the metadata.

6. When the Execution window appears, click OK to submit the job. To see the status of the
reverse engineering session, go to the Operator window.

7. After reverse engineering is complete, the imported custom table can be found underneath the
Other sub-model.

Page 16 of 66
8. Move the table from Other sub-model to the appropriate sub-model. In this example, we move
the WC_CSU_CITIZENSHIP_MDS table to the Dimension Staging sub-model.

9. Double-click on the table. Set the OLAP Type to the type of the table in the star schema
(Dimension/Slowly Changing Dimension/Fact Table). In this example, the staging table is for a
Slowly Changing Dimension.

Page 17 of 66
10. In the case of Fact Staging tables, move the table to the Fact Stage sub-model.

11. Set the OLAP type for the Fact Staging table to Fact Table.

Create the Source Dependent


Extract (SDE) mapping
1. In Designer, go to the folder created for custom SDE mappings
(Custom_SDE_PSFT_90_Adaptor). Right-click on it and select New Sub-Folder.

Page 18 of 66
2. Enter the name of the SDE folder using the naming convention:
SDE_<SOURCE>_<TargetBusinessName>. In this example,
SDE_PSFT_CSUCitizenshipMiniDimension.

3. Expand the newly created subfolder and right-click on Interfaces. Select New Interface…

Page 19 of 66
4. Enter the name of the interface using the following convention:
SDE_<SOURCE>_<TargetBusinessName>.<TargetPhysicalName>. In this example,
SDE_PSFT_CSUCitizenshipMiniDimension.WC_CSU_CITIZENSHIP_MDS.

5. Go to the Mapping tab and drag and drop the target table from the BI Applications model to
the target data store.

Page 20 of 66
6. Drag and drop the source tables from the source (PeopleSoft 9.0 CS) model to the Default
mapping tab and implement the logic specified in the ETL specifications.

Staging Mapping ETL


Development Notes
1. To take care of incremental loads, select the last update date column from the source and drag
it on to an empty space on the mapping canvas to create a filter (in the example below, the filter
is created for LASTUPDDTTM).

Use the following expression for the filter:


RUN_FULL_INCREMENTAL('#IS_INCREMENTAL',
<SourceTable>.<CreationDateColumn> >
TO_DATE_VAR('#INITIAL_EXTRACT_DATE'),
RUN_REPLICATED_TRANSACTIONAL('#IS_SDS_DEPLOYED',

Page 21 of 66
(<SourceTable>.<LastUpdateDateColumn> >
TO_DATE_VAR('#LAST_EXTRACT_DATE')),
(<SourceTable>.CDC$_SRC_LAST_UPDATE_DATE >
TO_DATE_VAR('#LAST_EXTRACT_DATE'))))
The RUN_FULL_INCREMENTAL function checks if the load is incremental (#IS_INCREMENTAL). If
it is not an incremental load, it uses the expression to select all records whose creation date is
greater than the initial extract date defined in BIACM (#INITIAL_EXTRACT_DATE). If the load is
incremental, it checks if replication with SDS is being used (#IS_SDS_DEPLOYED). If SDS is used, it
uses the CDC timestamp to select the records created/updated since the last extract date
(#LAST_EXTRACT_DATE). Otherwise it uses the last update date column from the source to
select records created/updated since the last extract date.
2. When mapping the INTEGRATION_ID, use the SPACES2NULL function to remove spaces in the
codes and concatenate key columns using tilde (~) as separator. Note that this is a key column
and should be at level of granularity of the dimension/fact E.g.
SPACES2NULL("Y", CSU_CO_ERSS_STG.CSU_CO_CITIZEN_CD) || '~' ||
SPACES2NULL("Y", CSU_CO_ERSS_STG.CSU_CO_COUNTRY_CIT) || '~' ||
SPACES2NULL("Y", CSU_CO_ERSS_STG.NON_RESIDENT_ALIEN_FLAG)
3. Use the following pre-defined variables to set the DATASOURCE_NUM_ID and TENANT_ID
#DATASOURCE_NUM_ID
‘#TENANT_ID’ (note the quotes)
4. You may use SESSSTARTTIME (the session’s start time) to set CREATED_ON_DT and
CHANGED_ON_DT if suitable columns are not already available in the source.
5. If suitable columns are not available from the source, you may use FLOOR_DATE() to get the
earliest warehouse date for SRC_EFF_FROM_DT, and CEILING_DATE() to get the latest
warehouse date for SRC_EFF_TO_DT .

Page 22 of 66
6. Go to the Flow tab in the interface. The lookup knowledge module for the source is LKM BIApps
SQL to Oracle (Multi-Transport) by default.

7. Set the knowledge module to IKM BIAPPS Oracle Control Append for the target. This truncates
and loads the staging table. If you need distinct rows to be loaded, you can check the Distinct
Rows checkbox under Target Properties in this tab as shown below.

Page 23 of 66
Create a Package for the SDE
Mapping
1. Navigate to Packages below the sub-folder for the SDE interface. Right-click and click on New
Package.

2. Enter the name of the package. The package name follows the same convention as the folder
SDE_<Source>_<BusinessName>

3. Go to the Diagram tab of the package. On the left, scroll down to Variables underneath the BI
Apps Project. Drag and drop the IS_INCREMENTAL variable onto the diagram. The default
operation for the variable step is Refresh Variable.

Page 24 of 66
4. Similarly, drag and drop the LAST_EXTRACT_DATE variable. Then drag and drop the SDE
interface for the dimension staging table onto the diagram.

Click on the ok connector on the menu bar of the diagram.


5. Click on the IS_INCREMENTAL step of the package, and then hold and drag the mouse to the
next step (LAST_EXTRACT_DATE) to connect the two steps. Then connect LAST_EXTRACT_DATE
to the SDE interface step.

6. Save and close the package.

Page 25 of 66
Custom Dimensions -- Source Independent Load

Reverse Engineer the


Dimension Table
1. Import the dimension table, just as we imported the dimension staging table. Navigate to the
Oracle BI Applications model and double-click on it. Select the option to change the value of
LIST_OF_TABLES.

Page 26 of 66
2. Click OK and click on the Reverse Engineer button.
3. After reverse engineering is complete, Move the table from the Other sub-model to the
Dimension sub-model.

4. Set the OLAP Type to Dimension or Slowly Changing Dimension.

Page 27 of 66
5. If the primary key (<Dimension>_P1) has already been imported, skip to step 10.
6. Right-click on Constraints below the table and click on New Key.

7. Enter the name of the primary key, using the convention <Dimension Name>_P1 and select
Alternate Key as the type of key.

8. Click on the Columns tab and select the ROW_WID column.

Page 28 of 66
9. Click on the Control tab. Check the boxes for Defined in the Database and Active.

10. Click on the Flexfields tab. For the ODI Bitmap Index flexfield uncheck the Default checkbox and
update the value to N and press the Enter key.

11. Click on the Save icon to save changes.


12. Create another key, this time a unique key, using the convention <Dimension Name>_U1 and
select Alternate Key as the type of key. If this key already exists, skip to step 15.

Page 29 of 66
13. Select the columns INTEGRATION_ID, DATASOURCE_NUM_ID, EFFECTIVE_FROM_DT and
EFFECTIVE_TO_DT.

14. Click on the Control tab. Check the boxes for Defined in the Database and Active.

15. Click on the Flexfields tab. For the ODI Bitmap Index flexfield uncheck the Default checkbox and
update the value to N and press the Enter key.

Page 30 of 66
16. Save the changes.

Set Column Properties for


Slowly Changing Dimensions
1. Expand the tree for Columns underneath the table. Double-click on the ROW_WID column.

2. Click on the Description tab on the left in the column editor. Set the Slowly Changing
Dimension Behavior to Surrogate Key.

3. Similarly, set the Slowly Changing Dimension Behavior for the following standard columns:

Page 31 of 66
ROW_WID: Surrogate Key
INTEGRATION_ID: Natural Key
DATASOURCE_NUM_ID: Natural Key
CURRENT_FLG: Current Record Flag
EFFECTIVE_FROM_DT: Starting timestamp
EFFECTIVE_TO_DT: Ending timestamp

Note:
The properties for these columns must be set, and are unique to these columns.
Do not confuse SRC_EFF_FROM_DT, SRC_EFF_TO_DT and ACTIVE_FLG with the
EFFECTIVE_FROM_DT, EFFECTIVE_TO_DT and CURRENT_FLG.
SRC_EFF_FROM_DT, SRC_EFF_TO_DT and ACTIVE_FLG are used to identify when the record was
active in the source system.
The EFFECTIVE_FROM_DT, EFFECTIVE_TO_DT and CURRENT_FLG columns are managed by
OBIA. When one of the SCD columns has been changed in the current incremental load, the
previous record is end-dated (EFFECTIVE_TO_DT) and has its CURRENT_FLG set to N.

4. Set the remaining column types as described in the ETL Specifications to either Overwrite on
Change for non-SCD columns or Add Row on Change for SCD columns.
5. The other standard columns (SRC_EFF_TO_DT, SRC_EFF_FROM_DT, ACTIVE_FLG,
AUX1_CHANGED_ON_DT, SRC_EFF_FROM_DT, SRC_EFF_TO_DT etc.) are set to Overwrite on
Change.

Note that the Slowly Changing Dimension Behavior property must be set for all the columns
otherwise you may see errors in the load.

6. Save the changes.

Create a Sequence for the


Surrogate Key
1. Scroll down to Sequences under the BI Apps Project in the Designer window. Right-click on
Sequences and select New Sequence.

Page 32 of 66
2. Enter the name of the sequence using the naming convention <DimensionName>_SEQ.

Select the Native sequence option under Sequence configuration. Select the DW_BIAPPS11G
schema and use the same name for the Native sequence name.

Page 33 of 66
NOTE: If the sequence name exceeds 30 characters, change the native sequence name to fit.
3. Save the changes.

Create the Source


Independent Load (SIL)
Mapping
1. In Designer, go to the folder created for custom SIL mappings (Custom_SILOS). Right-click on it
and select New Sub-Folder. Enter the name of the SIL folder using the naming convention:
SIL_<TargetBusinessName>. In this example, SIL_CSUCitizenshipMiniDimension.

2. Expand the newly created subfolder and create a new interface. Enter the name of the interface
using the following convention: SIL_<TargetBusinessName>.<TargetPhysicalName>. In this
example, SIL_CSUCitizenshipMiniDimension.WC_CSU_CITIZENSHIP_MD.

3. Go to the Mapping tab and drag and drop the target dimension table from the BI
Applications/Dimension model to the target data store. Drag and drop the staging table from
the BI Applications/Dimension Stage model as the source. Use Automatic Mapping as needed
to map source columns from the staging table to the target dimension table.

Page 34 of 66
Dimension Mapping ETL
Development Notes
1. For the ROW_WID, enter the expression NEXTVAL(<Sequence name>) where <Sequence name>
is the name of the sequence created above. For this example:
NEXTVAL(WC_CSU_CITIZENSHIP_MD_SEQ)
2. Check the Key flag for the DATASOURCE_NUM_ID, INTEGRATION_ID and EFFECTIVE_FROM_DT
columns: Select the column, go to the Property Inspector, scroll down to Target Column
Properties and check the Key checkbox.

3. For the ETL_PROC_WID column, set the value to the variable #ETL_PROC_WID

Page 35 of 66
4. You can derive the EFFECTIVE_FROM_DT column using the SRC_EFF_FROM_DT of the staging
table, like so:
COALESCE(WC_CSU_CITIZENSHIP_MDS.SRC_EFF_FROM_DT, FLOOR_DATE())
5. Set the EFFECTIVE_TO_DT to CEILING_DATE().
6. Set W_INSERT_DT and W_UPDATE_DT to SESSSTARTTIME.
7. For the ROW_WID and W_INSERT_DT columns, uncheck the Update option.

8. Set CURRENT_FLG to the constant value ‘Y’ (with quotes).


9. Go to the Flow tab. Select the knowledge module IKM BIAPPS Oracle Slowly Changing
Dimension for the target if it is a slowly changing dimension, or IKM BIAPPS Incremental
Update if the target is a regular dimension. Set the property
OBI_INSERT_UNSPECIFIED_RECORD to true so that the “Unspecified” record is automatically
inserted.

Page 36 of 66
10. Click on the Save icon to save changes.

Create a Package for the SIL


Mapping
1. Create a package under the SIL folder for the dimension, using the same naming convention
SIL_<BusinessName>

2. Open the package, and click on the Diagram tab. Drag and drop the IS_INCREMENTAL variable
and set the type to Refresh Variable (default). Drag and drop the SIL interface and connect the
steps.

Page 37 of 66
3. Save the package.

Page 38 of 66
Custom Facts -- Source Independent Load

Reverse Engineer the Fact


Table
1. Import the fact table definitions. Navigate to the Oracle BI Applications model and double-click
on it. Select the option to change the value of LIST_OF_TABLES.

2. Click on OK and click on the Reverse Engineer button.


3. After reverse engineering is complete, move the table from the Other sub-model to the Fact
sub-model.

Page 39 of 66
4. Double-click on the fact table. In the Definition tab, set the OLAP Type to Fact Table.

5. Click on the Flexfields tab. Uncheck the Default box for the OBI Fact Group flexfield and set the
value to X_CUSTOM_FG and press the Enter key. This step is necessary for the custom
dimensions related to this fact table to be included in the load plan.

6. Expand the tree for the fact table. Right-click on Constraints underneath the fact table, and
select New Reference.

Page 40 of 66
7. Use the naming convention FK_<Fact Table>_<Dimension Table> for the name of the foreign
key. If there are multiple foreign keys between the fact and the dimension (i.e. multiple
dimension aliases or roles) then create separate foreign keys for each role, and number the
foreign keys (e.g. FK_WC_CSU_ERSS_F_WC_CSU_CITIZENSHIP_MD1,
FK_WC_CSU_ERSS_F_WC_CSU_CITIZENSHIP_MD2 etc.)

Select User Reference as the Type, and select the dimension table.
8. Click on the Columns tab. Click on the green plus button to add a new column. Using the drop-
down list, select the foreign key column (ends in _WID by convention) in the fact table
corresponding to the dimension for Columns (Foreign Table). Then select the surrogate key
(ROW_WID) column of the dimension table for Columns (Primary Table).

9. Save the changes.


10. Similarly create foreign keys for the remaining dimensions/dimension aliases in the star schema
for this fact. Note that these keys are not physically deployed on the database; they exist to
ensure that all dependent dimensions are accounted for in the load plan generated by ODI.

Page 41 of 66
11. Right-click on Constraints below the table and click on New Key.

12. Enter the name of the unique key, using the convention <Fact Name>_U1 and select Primary
Key as the type of key. If this key already exists, double-click on the key and skip to step 15 to
update its flexfield (Note that we still use the U1 suffix although this is a primary key to preserve
the naming convention. The P1 suffix is used for ROW_WID column, which is usually not defined
for fact tables).

13. Click on the Columns sub-tab. Select the columns INTEGRATION_ID and
DATASOURCE_NUM_ID.

14. Click on the Control tab. Check the boxes for Defined in the Database and Active.

Page 42 of 66
15. Click on the Flexfields tab. For the ODI Bitmap Index flexfield uncheck the Default checkbox and
update the value to N and press the Enter key.

16. Click on the Save icon to save changes.


17. If they do not already exist, create a bitmap index for each dimension key column. If they
already exist, skip to step 22 to set the flexfields for each of the bitmap indexes.
18. To create a bitmap index, right-click on Constraints and select New Key.

19. Enter the name of the index using the convention <FactName>_F<number>. For example,
WC_CSU_ERSS_F_F1, WC_CSU_ERSS_F_F2 etc. Set the Key or Index Type to Non Unique Key.

Page 43 of 66
20. Click on the Columns sub-tab. Select the columns WID column that corresponds to the foreign
key for the dimension (CSU_CITIZNSHP_MINI_WID in this example is the foreign key for the
Citizenship Mini-Dimension).

21. Click on the Control tab. Check the boxes for Defined in the Database and Active.

22. Click on the Flexfields tab. For the OBI Index Type (ETL/Query) flexfield, uncheck the box for
Default and set the value to Query. Ensure that the ODI Bitmap Index flexfield is set to the
value Y.

Page 44 of 66
23. Save the changes and repeat the steps for the bitmap indexes of the remaining key columns.

Create the Source


Independent Load (SIL)
Mapping
1. Create an SDE Mapping for the fact staging table (refer to the “Create the Source Dependent
Extract (SDE) mapping” section on page 18).
2. In Designer, go to the folder created for custom SIL mappings (Custom_SILOS). Right-click on it
and select New Sub-Folder. Enter the name of the SIL folder using the naming convention:
SIL_<TargetBusinessName>. In this example, SIL_CSUERSStudentFact.

3. Expand the newly created subfolder and create a new interface. Enter the name of the interface
using the following convention: SIL_<TargetBusinessName>.<TargetPhysicalName>. In this
example, SIL_CSUERSStudentFact.WC_CSU_ERSS_F.

Page 45 of 66
4. Go to the Mapping tab and drag and drop the target fact table from the BI Applications/Fact
model to the target data store. Drag and drop the staging table from the BI Applications/Fact
Stage model as the source. You may use Automatic Mapping to map source columns from the
staging table to the target fact table if applicable.

5. For Date WID columns, instead of the lookup use the following function to convert the date to
key value:
CALCULATE_DT_WID_DFLT(<TableName>.<DateColumnField>,0)
6. For surrogate key lookups, click on the lookup icon (the magnifying glass) on the top of the
mapping sheet.

7. In the Lookup Wizard, ensure that the Driving Table selected is the Fact Staging table. Search for
the name of the dimension under Lookup Table and select it. Specify a meaningful alias as
required. Click on Next >.

Page 46 of 66
8. In the next step of the wizard, select a source column and a target column required for the join
and click on the Join button. Then modify the Lookup condition to construct the
INTEGRATION_ID natural key from the fact staging table (tip: see the expression in the
dimension staging mapping for INTEGRATION_ID) to join with the INTEGRATION_ID of the
dimension table.

Also add the condition to match the DATASOURCE_NUM_ID of the fact staging table with the
DATASOURCE_NUM_ID of the dimension table and add the condition CURRENT_FLG = ‘Y’ to
select the latest SCD2 record from the dimension table. Click on Finish.

Page 47 of 66
9. In the mapping editor, drag and drop the ROW_WID column from the dimension lookup table to
the corresponding foreign key

10. Edit the expression to map unmatched records to the dimension’s “unassigned” record using
the COALESCE function e.g. COALESCE(WC_CSU_CITIZENSHIP_MD.ROW_WID, 0)

Page 48 of 66
11. Similarly add and map all the lookups for the remaining dimensions for the fact table.
12. Check the Key checkbox (in the Property Inspector of the mapping) for the INTEGRATION_ID and
DATASOURCE_NUM_ID fields.

13. Set the ETL_PROC_WID field to the variable #ETL_PROC_WID.


14. Set W_INSERT_DT and W_UPDATE_DT to SESSSTARTTIME.
15. Uncheck the Update option for the ROW_WID and W_INSERT_DT columns.

Page 49 of 66
16. Go to the Flow tab. Select the IKM BIAPPS Oracle Incremental Update using the IKM Selector.
Save the changes.

Page 50 of 66
Create a Package for the SIL
Mapping
1. Create a package under the SIL folder for the dimension, using the same naming convention
SIL_<BusinessName>

2. Open the package, and click on the Diagram tab. Drag and drop the IS_INCREMENTAL variable
and set the type to Refresh Variable (default). Drag and drop the SIL interface and connect the
steps.

3. Save the package.

Page 51 of 66
Generating Scenarios and Updating the Load Plan for Custom Facts and
Dimensions

Client Configuration
Important: Ensure that this property is set in any ODI client you use prior to generating scenarios.
1. Go to the in the main ODI menu and select User Parameters.

2. Set the 'Scenario Naming Convention' User Parameter to the value


%FOLDER_NAME(2)%_%OBJECT_NAME% and click on OK.

Page 52 of 66
Generate Scenarios – Custom
Facts and Dimensions
Note that the procedure listed here in this section is only for custom (WC) dimensions and facts, not for
extensions to the delivered OBIA facts and dimensions.
ODI Scenarios will have to be generated for all SDE and SIL packages for the custom dimensions and
facts. To generate the scenarios for multiple packages skip to the section “Generating Scenarios for
Multiple Packages”. For individual packages, follow the steps below.
1. To generate a scenario, navigate to the SDE package that we created for a custom dimension
(CSU Citizenship Mini Dimension in this example). Right-click and select Generate Scenario…

2. Retain the generated scenario name and version, and check the box to Generate scenario as if
all underlying objects are materialized. Click on OK.

Page 53 of 66
3. Select the option to Use All startup parameters and click on OK.

4. The generated scenario is now visible underneath the package in the tree.

NOTE: In the future if any changes are made to any of the interfaces or the package, the
package must be regenerated. To do this, right-click on the scenario and select Regenerate.

Page 54 of 66
5. Repeat the steps above to generate scenarios for the SDE and SIL packages of all the custom
facts and dimensions.

Generating Scenarios for Multiple Packages


1. All the scenarios for packages underneath a top-level folder can be generated by right-clicking
on the folder (e.g. Custom_SILOS) and selecting Generate all scenarios… However, this may not
be always preferable as some objects may still be under development.
2. In order to selectively generate the scenarios for multiple packages, add a marker for each
package: right-click on the package, select Add Marker… and add a marker. In this case, we
select the Smiley 1 marker.

3. Once all the required packages have been marked, right-click on the containing folder and select
Generate All Scenarios…

Page 55 of 66
4. Set the generation mode to Creation (you can use Re-generate to regenerate scenarios in the
future) and check the option to Generate scenario as if all underlying objects are materialized.
Only packages are to be generated and the filters set for the Group (Smileys in this example)
and Marker (Smiley 1). Click on OK.

Page 56 of 66
6. Wait for the scenarios to be generated. For each generated scenario, select the option to Use All
startup parameters and click on OK.

Adding Scenarios for Custom


Facts and Dimensions to the
Load Plan
Note that the procedure listed here in this section is only for custom (WC) dimensions and facts, not for
extensions to the delivered OBIA facts and dimensions.
OBIA has placeholders for custom SDE, SIL and PLP load plans. The following steps are to add the custom
SDE scenarios.
1. In the Designer pane, in the Load Plans and Scenarios sub-pane, navigate along the following
load plan folder path (use the relevant source folder): BIAPPS Load Plan > Load Plan Dev
Components > SDE > PSFT_9_0 > 3 SDE Dims X_CUSTOM_DIM PSFT_9_0.

Page 57 of 66
2. Double-click on the load plan to open it. In the load plan window, go to the Steps sub-tab.

3. In the Steps Hierarchy, click on the top level X_CUSTOM_DIM step and click on the green “+”
button on the top right and select Run Scenario Step.

4. Enter the Scenario Name and Step Name of an SDE dimension package, enter -1 for the version
and click on Finish.

Page 58 of 66
5. Set the Restart option to Restart from failed step.

6. Repeat the above steps for all the custom SDE dimension scenarios and save the load plan.
7. Similarly add the custom fact SDE scenarios to BIAPPS Load Plan > Load Plan Dev Components >
SDE > PSFT_9_0 > 3 SDE Fact X_CUSTOM_FG PSFT_9_0.
8. Also add the custom dimension SIL scenarios to BIAPPS Load Plan > Load Plan Dev Components
> SIL > 3 SIL Dims X_CUSTOM_DIM and the custom fact SIL scenarios to BIAPPS Load Plan >
Load Plan Dev Components > SIL > 3 SIL Fact X_CUSTOM_FG.
9. Create or Regenerate an execution plan for the custom fact group and/or all of SIA including the
custom fact group in the BI Applications Configuration Manager.

Page 59 of 66
Extending a Delivered OBIA Dimension or Fact with New Columns

Columns may be added to extend a dimension or fact delivered by OBIA. These columns are prefixed
with X_ in order to avoid potential conflicts with future OBIA upgrades.

If the source tables for your mappings do not already exist in the ODI model for your source, reverse
engineer them as specified in the “Import Source Tables” section on page 12.

Add Columns to the ODI


Metadata Model
We add new columns to the delivered tables in the metadata model in ODI manually instead of reverse
engineering the tables in order to preserve the properties (flexfields, indexes etc.) that have already
been set.
1. Navigate to the dimension or fact table in the Models pane in the Designer tab, under Oracle BI
Applications. Double-click on the table to open its definition.
2. Go to the Columns sub-tab and click on the green “+” button to add a new column.

3. Enter the name and specify the data type details of the new column.

Page 60 of 66
4. Continue to add columns as needed, and save the definition when done.

Modifying the Delivered ETL


1. We start with the SDE mapping. Navigate to the Task folder under the delivered SDE source
adaptor folder in the Projects pane in the Designer tab (BI Apps Project > Mappings >
SDE_PSFT_90_Adaptor).
2. Right click on the task folder (SDE_PSFT_SIAAcademicCareerDimension in this example) and
select Create Version…

Page 61 of 66
3. Enter a Description to identify this task folder as the original delivered version and click on OK.

Page 62 of 66
4. Copy and paste the folder to the Custom SDE folder (Custom_SDE_PSFT_90_Adaptor).

5. Edit the name of the newly copied folder and remove “Copy of “ from the folder name.

Page 63 of 66
6. Modify the mapping in the Custom SDE folder as per the ETL specifications to map data into the
new X_ fields. Note that you can use the X_CUSTOM column as a guide for mapping your new
column.

7. Save the changes.


8. Similarly create a copy of the SIL mapping into the Custom_SILOS folder and modify it as
needed.

Generate Scenarios
1. After making the necessary modifications to the mapping, go back to the original task folder in
the source adaptor folder (SDE_PSFT_90_Adaptor folder in this case) and expand Packages,
then expand the delivered package (SDE_PSFT_SIAAcademicCareerDimension in this example).
Expand Scenarios underneath the package, and double-click on the scenario.

2. Note the name of the scenario and its version (e.g. save the name into a text document). In this
example, SDE_PSFT_90_ADAPTOR_SDE_PSFT_SIAACADEMICCAREERDIMENSION is the name of
the scenario and its version 001.

Page 64 of 66
3. Delete the scenario from the folder. Click Yes to confirm.

4. Go back to the Custom SDE folder and select the package under the task folder of the extended
dimension. Right-click and select Generate Scenario…

5. In the New Scenario window, specify the name that you noted from step 2 above
(SDE_PSFT_90_ADAPTOR_SDE_PSFT_SIAACADEMICCAREERDIMENSION), check the option to
Generate scenario as if all underlying objects are materialized and click OK.

Page 65 of 66
6. When prompted, select the option to Use All scenario variables.

7. Repeat the above steps for the SIL scenario of the extended dimension.
8. All existing and new execution plans would now use the new scenarios generated from the
customized mappings.

Page 66 of 66

You might also like