The Financial Data Mart - Part 4
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.









Thank you! Looking forward to reading Sales Data Marts articles!
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?
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.
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?
very helpful,Thanks for the information Kiriti!!
Leave your response!
Call us at (617) 869-8860
Categories
External Resources
Pages
Most Commented
Recent Posts