Home » Headline

The Financial Data Mart - Part 4

7 June 2009 5 Comments

In this short technical article, I will outline the data structures of the General Ledger module in Oracle eBusiness Suite that are relevant in building the Financial data mart. If you are currently engaged in building a data warehouse with Oracle eBusiness suite as the primary source of data, you may find this useful, particularly, if you are performing ETL tasks.

Refer to part 3 of this series for the broad design. Here are the sources in Oracle eBusiness suite for the different dimension and fact tables:

Dimensions:

Dimension Oracle eBS Table
Set of Books GL_SETS_OF_BOOKS
Chart of Accounts GL_CODE_COMBINATIONS
Account GL_CODE_COMBINATIONS, FND_FLEX_VALUES_B, FND_FLEX_VALUES_TL
Company
Cost Center
Fiscal Month GL_PERIOD_SETS, GL_PERIODS
Journal Categories GL_JE_CATEGORIES_TL
Journal Sources GL_JE_SOURCES_TL
Budgets GL_BUDGETS, GL_BUDGET_VERSIONS

Facts and Document Dimensions:

Dimension Oracle eBS Table
Fact GL Balances GL_BALANCES
Fact Journal Entries andJournal Entry Document GL_JE_BATCHES, GL_JE_HEADERS, GL_JE_LINES
Fact Budgets (may be combined with Fact GL Balances) GL_BALANCES
Budget Document GL_BUDGET ASSIGNMENTS

Source Data Structures:

The following diagram outlines the source table relationships for the facts above:

The Budget tables’ relationships are given below:

More detailed diagrams can be downloaded from Oracle Metalink.

The descriptions for the chart of account segments are stored in Flexfields within Oracle. The following query, for example, can be used to get the descriptions:

select gcc.segment1 company
, gcc.segment2 account
, gcc.segment3 cost_center
...
, fvc.description company_desc
, fva.description account_desc
, fvcc.description cost_center_desc
...
from gl_code_combinations gcc
,fnd_flex_values_vl fvc
,fnd_flex_values_vl fva
,fnd_flex_values_vl fvcc
where fvc.flex_value_set_id = (select flex_value_set_id from fnd_flex_value_sets where flex_value_set_name like '<YOUR_COMPANY_GL_AFF_COMPANY')
and fvc.flex_value_meaning = gcc.segment1
and fva.flex_value_set_id = (select flex_value_set_id from fnd_flex_value_sets where flex_value_set_name like ' YOUR_COMPANY_GL_AFF_ACCOUNT')
and fva.flex_value_meaning = gcc.segment2
and fvcc.flex_value_set_id = (select flex_value_set_id from fnd_flex_value_sets where flex_value_set_name like ' YOUR_COMPANY _GL_AFF_COST_CENTER')
and fvcc.flex_value_meaning = gcc.segment3
order by 1,2,3,...

ETL Tip:

Loading Fact GL Balances may be tricky if you are not aware that the source table stores balances for all types of amounts - budgets, actual amounts, encumbrances and statistical amounts. Also, it stores the translated amounts if the translation activity has been performed at the close of the fiscal month. As a result of this activity, you may have adjustments posted to certain accounts where you will have actual adjustment amounts posted in the translated currency even though the corresponding local currency amounts are zero.  If you are translating amounts in the Fact GL Balances table on the fly using the reporting tool, be aware of this issue. Although translations can easily be done dynamically, I have found it unwise to do so because of these issues and the complex business rules that often are applied to translations. It is safer to store actual translated values in the fact table itself.

This is the end of this series. I will write about building Sales Data Marts in the next series. Hope you enjoyed these - I am happy to answer any questions you may have or elaborate on anything I have stated in these posts.

Also read Part 1, Part 2 and Part 3 of this series.

5 Comments »

  • Eric said:

    Thank you! Looking forward to reading Sales Data Marts articles!

  • Mike said:

    For financial data marts I would argue there is an ‘Accounting’ dimension that you allude to here. For example, it might contain a hierarchy that shows Accounting Basis (e.g., GAAP, Tax, etc.)>Financial Statement>Business Segment>Financial Statement Line>Ledger>GL Account>GL Entry>Subledger>Subledger Entry>Subledger Entry Line Item, etc. The detailed postings fact and balances fact tables would be organized along this dimension along with Time Dim, Product Dim, and Portfolio Dim. Do you agree?

  • Greg said:

    Thanks for information. I have a question about the gl_code_combinations table in your diagram above. I see it used to construct the chart of accounts, account, company, and cost center dimensions, and wanted to know how if the gl_code_combinations.code_combination_id is used to keep the relationship between the fact and dimension tables, or does the the fact table get assigned new foreign keys to each dimension taking place of the code_combintion_id’s? I really enjoyed the post. Thanks.

  • Kiriti said:

    The best practice is to use dimension keys that are generated while loading the dimensions to the warehouse. However, you should also keep a column (call it source_record_id) that is mapped to the code_combination_id to keep the original reference to the source. Similarly, use generated dimension keys for company, accounts , cost center dimensions in the fact table, but keep the original flex_value_id in the dimension (load it to a source_record_id reference column). Make sense?

  • Siva said:

    very helpful,Thanks for the information Kiriti!!

Leave your response!

Add your comment below, or trackback from your own site. You can also subscribe to these comments via RSS.

Be nice. Keep it clean. Stay on topic. No spam.

You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

This is a Gravatar-enabled weblog. To get your own globally-recognized-avatar, please register at Gravatar.