Overview of Calendars in Oracle BI Applications
Oracle Business Intelligence Applications Version 7.9.6 supports different calendar formats:
-
Enterprise (Global) - cross functional reporting calendar, which can be fiscal or gregorian.
-
Fiscal - accounting or financial calendar.
-
Gregorian - regular calendar that starts on January 1st and ends on December 31st.
-
13 Period - a calendar is which each year is comprised of 13 periods.
-
4-4-5 - each year is composed of twelve periods of either four weeks of 28 days or five weeks of 35 days.
Calendar Categories
Calendars are categorized into two types:
OLTP sourced (also known as Source Calendars) - OLTP sourced calendars are calendars that are defined in ERP sources and brought into the warehouse via ETL maps and standard DAC loads.
Warehouse generated (also known as Generated Calendars) - Generated calendars are fiscal calendars generated in the warehouse based on configuration files.
Both source calendars and generated calendars are stored in the Multiple Fiscal Calendar (known as MCAL) tables. MCAL tables have the prefix W_MCAL.
Calendar Tables in Oracle Business Analytics Warehouse
The tables used for Time Dimension calendars can be categorized based on the calendar types as below -
Gregorian Calendar Tables
-
W_WEEK_D
-
W_MONTH_D
-
W_QTR_D
-
W_YEAR_D
-
W_DAY_D
Fiscal Calendar Tables
-
W_MCAL_WEEK_D
-
W_MCAL_PERIOD_D
-
W_MCAL_QTR_D
-
W_MCAL_YEAR_D
Enterprise Calendar Tables
-
W_ENT_WEEK_D
-
W_ENT_PERIOD_D
-
W_ENT_QTR_D
-
W_ENT_YEAR_D
W_DAY_D is the base table that represents the time dimension in the Oracle Business Analytics Warehouse. This table needs to be populated as a prerequisite for the multiple fiscal calendar tables. If W_DAY_D is not populated, then the fiscal calendar tables will not be populated.
There are two parameters $$START_DATE and $$END_DATE for the task SIL_DayDimension that need to be setup to load the calendar data in W_DAY_D. The SIL mappings use standard time functions to create records for each calendar day falling within the boundary defined by these two parameters. Once the records are created in W_DAY_D, the aggregate calendar tables are loaded by their respective SIL mapping. Then the fiscal calendar tables (known as MCAL tables) are populated.
Configuring Enterprise Calendars
An Enterprise calendar (or reporting calendar) enables cross subject area analysis. Enterprise calendar tables have W_ENT prefix. Enterprise calendars can be set to one of the OLTP sourced fiscal calendars or to one of the warehouse generated calendars. This can be done by setting the following source system parameters at the DAC container level:
-
$$GBL_CALENDAR_ID
-
$$GBL_DATSOURCE_NUM_ID
Scenario 1 Using an Oracle EBS fiscal calendar as the Enterprise calendar
Source System DAC Parameters for Oracle EBS Enterprise Calendars:
-
GBL_CALENDAR_ID: This parameter is used to select the Enterprise Calendar. It should be the MCAL_CAL_NAME~MCAL_PERIOD_TYPE for Non-Generated Calendars. For example GBL_CALENDAR_ID will be 'Accounting~41', if the Enterprise Calendar id='Accounting' and the calendar period_type='41'.
-
GBL_DATASOURCE_NUM_ID: If Enterprise Calendar is not a Generated Calendar: It should be the DATASOURCE_NUM_ID of the source system from where the Calendar definition is taken. For example, if you have two data sources as PeopleSoft and Oracle, and the Global Calendar is from an Oracle data source, then this parameter value should specify an Oracle data source.
Scenario 2 Using a warehouse generated calendar as the Enterprise calendar
Source System DAC Parameters for Generated Enterprise Calendars:
-
GBL_CALENDAR_ID: Should be the CALENDAR_ID of the Generated Calendar (4-4-5 or 13 period type of Calendars). By default the 4-4-5 calendar has a CALENDAR_ID of '10000' and the 13-period calendar has a CALENDAR_ID of '10001'.
-
GBL_DATASOURCE_NUM_ID: If Global Calendar is Generated Calendar: It should be the DATASOURCE_NUM_ID value of the OLAP (Data warehouse)
Scenario 3 Using a fiscal calendar loaded via the Universal Adapter as the Enterprise calendar
Source System DAC Parameters for Universal Enterprise Calendars:
-
GBL_CALENDAR_ID: Should be the INTEGRATION_ID from the file_mcal_cal_d.csv file of the particular calendar which is defined as the Global Calendar.
-
GBL_DATASOURCE_NUM_ID: If Global Calendar is not a Generated Calendars, then it should be the DATASOURCE_NUM_ID of the source system from where the Calendar definition is taken. If it is defined in the file_mcal_period_ds.csv file, then that value should be taken, or else as defined in the DAC for Universal adapter.
Generated Calendars
The following Task Level DAC Parameters are needed for Generated Calendars.
$$13P_CALENDAR_ID - Task: SIL_TimeDimension_MCalWeek13Period. Required if you want to populate the 13 period type of calendar in your Data Warehouse. The value should be the CALENDAR_ID as defined in the W_MCAL_CONFIG_G table for the 13 period type of calendar.
$$445P_CALENDAR_ID - Task: SIL_TimeDimension_MCalWeek445. Required if you want to populate the 445 period type of calendar in your Data Warehouse. The value should be the CALENDAR_ID as defined in the W_MCAL_CONFIG_G table for the 445 period type of calendar.
If there is a week (starting on a Sunday and ending on a Saturday) that falls across two calendar years, the week is counted in both years. For example, the week that starts on 12/30/2007 will be counted in both 2007 and 2008. In 2007, the week start date will 12/30/2007 and the end date will be 12/31/2007. In 2008, this will be the first week with start date as 01/01/2008 and end date as 01/05/2008.
W_DAY_D stores 31 records for each month regardless of whether the month actually has 31 days. If the month has a fewer number of days, there will be records with null values in the Calendar Date and Day Date columns. These extra records are loaded for the calculation of Period Ago metrics in the Oracle BI Repository and will not affect the ETL or reporting.
There are some attributes on the W_DAY_D table that are not mapped in the Physical layer of the Oracle BI Repository. Therefore, before creating any new attribute in the repository, check whether the attribute is already available in the Physical layer and if it can be mapped directly.
If your fiscal calendar contains more than 12 months, the extra months will be assigned a value of 0 for the fiscal quarter. The same holds for the fiscal trimester and fiscal half values.
How to Include and Exclude Multiple Calendar Support for Subject Areas in DAC
The Multi-Calendar tasks are included in the TASK_GROUP_Load_DayDimension in the DAC.
When the TASK_GROUP_Load_DayDimension task group is added to any Subject Area, the Multi-Calendar tasks are not extracted by default. You need to add a Configuration tag to the Subject area before you run the ETL process to pull these tasks into the ETL process, as described in the following steps.
To include and exclude Multiple Calendar support for Subject Areas:
-
In DAC, display the Design view, and select the appropriate container.
-
Display the Subject Area tab in the upper pane and select the Subject Area to which you want to add Multi-calendar tasks.
-
Display the Configuration Tags tab in the lower pane.
-
Click Add/Remove to display the Choose Subject Area Configuration Tags dialog.
-
Select the configuration tag named 'Multiple Calendar Support' in the left pane and click Add, then OK.
-
In the upper pane, click Assemble.
-
Display the Execute view.
-
Display the Execution Plans tab.
-
Select the Execution Plan that includes the Subject Area to which you added the configuration tag named 'Multiple Calendar Support'.
-
Run this Execution Plan.
How to set up a 13 Period calendar
To set up a 13 Period calendar:
-
In the DAC, display the Design tab, and select an appropriate adapter.
-
Display the Source System Parameters tab.
-
Set the value of $$GBL_CALENDAR_ID and $$GBL_DATSOURCE_NUM_ID as follows:
-
GBL_CALENDAR_ID: Should be the CALENDAR_ID of the Generated Calendar (4-4-5 or 13 period type of Calendars). By default the 4-4-5 calendar has a CALENDAR_ID of '10000' and the 13-period calendar has a CALENDAR_ID of '10001'.
-
GBL_DATASOURCE_NUM_ID: If Global Calendar is Generated Calendar: Should be the DATASOURCE_NUM_ID value of the OLAP (Data warehouse).
-
-
Using a text editor, edit the values in file_mmcal_config_g.csv.
-
In DAC, set the value of 13P_CALENDAR_ID to 10001.
Note: The task SIL_TimeDImension_McalWeek13Period will run as part of the execution plan for your subject area. Please note that is no separate subject are for common dimensions. They are included in the core subject areas.
How to set up a 4-4-5 calendar
To set up a 4-4-5 calendar:
-
In the DAC, display the Design tab, and select an appropriate adapter.
-
Display the Source System Parameters tab.
-
Set the value of $$GBL_CALENDAR_ID and $$GBL_DATSOURCE_NUM_ID as follows:
-
GBL_CALENDAR_ID: Should be the CALENDAR_ID of the Generated Calendar (4-4-5 or 13 period type of Calendars). By default the 4-4-5 calendar has a CALENDAR_ID of '10000' and the 13-period calendar has a CALENDAR_ID of '10001'.
-
GBL_DATASOURCE_NUM_ID: If Global Calendar is Generated Calendar: Should be the DATASOURCE_NUM_ID value of the OLAP (Data warehouse)
-
-
Using a text editor, edit the values in file_mcal_config_g.csv.
-
In DAC, set the value of 445P_CALENDAR_ID to 10000.
Note: The task SIL_TimeDimension_McalWeek445 will run as part of the execution plan for your subject area. Please note that is no separate subject are for common dimensions. They are included in the core subject areas.
While running the inital ETL (7.9.6) with eBS R12, I saw that W_DAY_D loaded, but W_MCAL_DAY_D had only one row... the W_MCAL... tables are used for the Fiscal calendar, that I am using. Any ideas? If this table is not populated, the SQL queries for Financial dashboards will not return any data.
ReplyDeleteYes this table will need to be populated. Did you check the informatica session logs or workflow logs for this table? Also what about the enterprise table you may not have data even in these tables right?
ReplyDeleteI am having the same problem. I'm not able to get the W_MCAL_ Tables loaded at all. The 7.9.6 Documentations doesn't provided a proper solution to getting the fscl calendar loaded. Any suggestion on getting this to run?
ReplyDeleteDan, the DAC task for W_Mcal should have further details. If not then you can debug the individual Informatica workflow log for that task by running it in debug mode and checking if the rows are getting inserted into the table or not.
ReplyDeleteI check in the Log for the workflow, but there's not much information which makes it a little difficult and confusing. Maybe i'm misconfiguring the Parameters? In the Oracle EBS, I wanted to used the 4-4-5 generated calendar. In the Parameter, I'm setting the "$$GBL_CALENDAR_ID = 10000" $$GBL_DATSOURCE_NUM_ID = "999" and setting up the "445P_CALENDAR_ID = 10000" for the 4-4-5 task. My understanding is that is all i need to setup?
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeletehi Brijesh Rao
ReplyDeleteI think this blog is very helpful for intial begginers
Ranga
Thanks for your information, it was really very helpful: Danilo
ReplyDelete