Professional Documents
Culture Documents
Dashboard
For Oracle EBS (12.1.x)
Contents
1.
Introduction....................................................................................................................... 2
2.
Data Flow.......................................................................................................................... 3
3.
5.
6.
Views................................................................................................................................. 9
7.
Tables to be created........................................................................................................ 10
8.
QVC Components............................................................................................................ 11
9.
Folder Structure.............................................................................................................. 12
10.
QVD Generator............................................................................................................ 12
11.
Presentation File........................................................................................................... 14
12.
Dashboard Tabs........................................................................................................... 18
14.
15.
16.
Acknowledgments....................................................................................................... 26
By Ishaq Baig
ishaqbaig@yahoo.com, ibaig@savola.com
1
1. Introduction
The General Ledger (GL) is at the heart of the Accounting system of Oracle eBS. The Oracle
General Ledger is the central repository of accounting information. The main purpose of GL
is to record financial activity of the company and to produce financial and management
reports. The GL consolidates financial information from all other transactional modules or
sub-ledgers and maintains summary level information. For example, it stores the accounting
information for a Receivables invoice or an invoice payable to a vendor. It stores accounting
entries for expense for depreciation of an asset or an inventory transfer. It also has
accounting entries made within itself using journal entries.
For more information on Oracle General Ledger, or any other Financial module, refer to the
latest User Guide or the Oracle E-Business Suite Financials Handbook, a handy reference
that is recommend for a thorough understanding of the functional concepts of the financial
modules of Oracle EBusiness Suite.
The following diagram is a high level overview of how some of the core modules interact
with each other within Oracle Financials
2. Data Flow
Oracle EBS
Incremental
QVD Generator
Which reads
data from the
underlying
Create Views
and Packages
In Oracle
Schema on
QVW
Presentation
File Created on
TOP of the
Header Name
PL01
Gross Sales
PL02
PL03
Discounts
PLT1
Net Sales
PL04
Direct Materials
PL05
(2,040)
PL06
Direct Labor
(1,162)
PL07
Manufacturing
(1,322)
PL08
Depreciation Expense
PLT2
PLT3
Perio
d
Jan-14
116,722
0
(29,072)
87,649
(76,050)
(89)
(80,664)
Gross Profit
6,986
PL04+PL05+PL06+PL07+PL08
PLT1+PLT2 OR
(PL01+PL02+PL03+PL04+PL05+PL06+PL07
+PL08)
To calculate the Header/Row of the Financial Statement. Two methodologist can be adopted.
Method 1 (GL Segment have Numeric Value)
If your GL Segments are having Numeric values ONLY. Then IntervalMatch function is used to
generate the Header of the statement of Account from the GL Balances Table. Headers are
being generated on the fly at the reporting / presentation level.
The mapping for the segments is stored in xls File (GL Report Header Mapping3.xls)
Below Tables show the mapping Example
Interval Match for Segment2
HEADER_ID
FROM_SEGMENT2
TO_SEGMENT2
PL01
001
ZZZ
PL02
001
ZZZ
PL03
001
ZZZ
PL04
001
ZZZ
PL05
001
ZZZ
PL06
001
399
PL07
001
399
PL08
001
399
FROM_SEGMENT3
TO_SEGMENT
3
PL01
5100
5370
PL01
5500
5570
PL01
5950
5950
PL02
5650
5670
PL03
5400
5430
PL03
5600
5630
PL04
6000
6499
PL05
6500
6599
PL06
7100
7599
PL07
6600
6699
PL07
7600
8999
PL07
9100
9199
PL07
9200
9599
PL07
9610
9610
PL08
6700
6799
FROM_SEGMENT2
TO_SEGMENT2
PL01
001
ZZZ
HEADER_I
D
FROM_SEGMENT3
TO_SEGMENT
3
PL01
5100
5370
PL01
5500
5570
PL01
5950
5950
Header Name
Jan-14
PL01
Gross Sales
116,722
PL02
PL03
Discounts
(29,072)
PLT1
Net Sales
87,649
PL04
Direct Materials
PL05
(2,040)
PL06
Direct Labor
(1,162)
PL07
Manufacturing
(1,322)
PL08
Depreciation Expense
(76,050)
(89)
Using this method the Where clause associated with each Header is being applied on the
GL Balances Table and a new row is being inserted into another table which stores the
Financial statements rows.
There are two Methods based on which two sets of .qvw files have been created (GL Generator and
GL Presentation file)
GL Company
Grouping.xls
x
GL Generator
QVW (Using
InterVal Match
Technique)
GL Report
Header
Mapping3.xls
x (File having
Intervals for
segment2,
segment3)
GL Generator
QVW (Using
Where Clause
Technique)
GL Time
Series
Measure
Types.xlsx
GL Analysis
Using
IntervalMatch
GL Analysis
Based on
Header created
by the GL
Oracle Views
For Fact and
Dimensions
Method1
GL Report
Header
Mapping4.xls
x (File having
Where clause
for each
header of the
Financial
statement
Method2
Diagram shows the two techniques used and their respective Files
Header Name
PL01
Jan-14
116,722
PL02
Gross Sales
Trade Deals &
Promotions
PL03
Discounts
(29,072)
PLT1
HEADER_TYP
E
1
Net Sales
HEADER_ID_GR
P
PL01
1
1
1
1
1
PL02
PL03
PL01
PL02
PL03
HEADER_NAME_GR
P
Gross Sales
Trade Deals &
Promotions
Discounts
Net Sales
Net Sales
Net Sales
REP_ROW_TYP
E
CALCULATED
CALCULATED
CALCULATED
REP_ROW_NUMBE
R
1
2
3
4
4
4
87,649
REP_HEADER_I
D
PL01
PL02
PL03
PLT1
PLT1
PLT1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
PL04
PL05
PL06
PL07
PL08
PL04
PL05
PL06
PL07
PL08
PL01
PL02
PL03
PL04
PL05
PL06
PL07
PL08
Direct Materials
Freight & Handling
Direct Labor
Manufacturing
Depreciation Expense
Total Cost of Sales
Total Cost of Sales
Total Cost of Sales
Total Cost of Sales
Total Cost of Sales
Gross Profit
Gross Profit
Gross Profit
Gross Profit
Gross Profit
Gross Profit
Gross Profit
Gross Profit
CALCULATED
CALCULATED
CALCULATED
CALCULATED
CALCULATED
CALCULATED
CALCULATED
CALCULATED
CALCULATED
CALCULATED
CALCULATED
CALCULATED
CALCULATED
5
6
7
8
9
10
10
10
10
10
11
11
11
11
11
11
11
11
PL04
PL05
PL06
PL07
PL08
PLT2
PLT2
PLT2
PLT2
PLT2
PLT3
PLT3
PLT3
PLT3
PLT3
PLT3
PLT3
PLT3
Dimensions:
Dimensions Loaded from Oracle
tables
Ledgers
Chart of Accounts
Company
SEGMENT1
Cost Center SEGMENT2
Account
SEGMENT3
Sub-Account SEGMENT4
Project
SEGMENT5
Region
SEGMENT6
Fiscal Month
Budgets
SEGMENT1_HIERARCHY
GL_LEDGERS
GL_CODE_COMBINATIONS
GL_CODE_COMBINATIONS, FND_FLEX_VALUES_B,
FND_FLEX_VALUES_TL
GL_PERIOD_SETS, GL_PERIODS
GL_BUDGETS, GL_BUDGET_VERSIONS
XX_SEGMENT1_HIERARCHY (Hierarchy of
Companies)
User Defined Table which stores the company
hierarchy
Report Names
Loaded from
GL Report Header Mapping4.xlsx
(Sheet Header_Types)
GL Currency Rates By
Period.xlsx
Facts:
Fact
TIME_ANALYSIS
TIME_PERIO
D
CURRENT
PTD
Y-1
LYPTD
P-1
LMPTD
YTD
YTD
YTD-1
LYYTD
QTD
QTD
QTD-1
LYQTD
MVTOT3
3MPTD
MVTOT3Y-1
MVTOT12
MVTOT12Y1
12MPTD
LY3MPTD
LY12MPTD
2. GL Company Grouping.xlsx File stores the company groups information. (users can
skip this file if no external grouping is required)
3. GL Report Header Mapping3.xlsx This excel file has all the header info and the
interval of segments. Each Work Sheet is being explained in detail.
HEADER_NAME
PL01
Gross Sales
PL02
Headers_GRP The Total rows are repeated. Which are grouped to get the totals in the
Financial statements.
HEADER_TYP
E
HEADER_ID_GR
P
HEADER_NAME_GR
P
REP_ROW_TYP
E
REP_ROW_NUMBE
R
REP_HEADER_I
D
PL01
PL01
PL02
Gross Sales
Trade Deals &
Promotions
PL02
PL03
Discounts
PL03
PL01
Net Sales
CALCULATED
PLT1
PL02
Net Sales
CALCULATED
PLT1
PL03
Net Sales
CALCULATED
PLT1
Header_Types The different Report names of the Financial statement is stored here.
HEADER_TYPE
HEADER_TYPE_NAME
Balance Sheet
Cash Flow
FROM_SEGMENT2
TO_SEGMENT2
PL01
001
ZZZ
PL02
001
ZZZ
PL03
001
ZZZ
PL04
001
ZZZ
PL05
001
ZZZ
PL06
001
399
PL07
001
399
PL08
001
399
FROM_SEGMENT3
TO_SEGMENT
3
PL01
5100
5370
PL01
5500
5570
PL01
5950
5950
PL02
5650
5670
PL03
5400
5430
PL03
5600
5630
PL04
6000
6499
PL05
6500
6599
PL06
7100
7599
Note Interval range for Total Rows of the financial statements is not stored in
the xls file.
Header_Segments_For_Zeros Segment2 and segment3 which are candidates for the
zeros are saved here.
HEADER_
ID
SEGME
NT2
SEGME
NT3
SEGMENT2_FOR_BUD_FOR
ECAST
SEGMENT3_FOR_BUD_FOR
ECAST
PL01
053
5110
000
5001
What this row means -> A dummy record is inserted into the fact with zero value for the
given segment2, segment3 values, A dummy record is inserted into GL Balances with given
values
Segment3_For_Budget_Forecast Dummy Segment3 (Accounts)
SEGMENT3_KEY
SEGMENT3
SEGMENT3_DESCRIPTION
101-1001
1001
101-1002
1002
FROM_SEGMENT3
TO_SEGMENT3
PL01
5001
5001
4. GL Report Header Mapping4.xlsx This excel file has all the header info and the
WHERE CLAUSE to generate the headers. All the Worksheets are similar to the sheets
described above Except the Headers Worksheet which has the WHERE CLAUSE used to
generate the calculated rows.
APPS_GL_UTIL_API
APPS_FIN_UTIL_API
FUNCTION XX_Str2Tbl (String
to Table)
Function Reads a string and
converts into rows
Ex
'30','80','5F
90
'
Is Converted to 3 Rows
30
80
5F
USER Defined Data Type
xx_MYTABLE
6. Views
Views created in Oracle
View Name in Oracle
XX_GL_LEDGERS
XX_GL_SEGMENT1
XX_GL_SEGMENT2
XX_GL_SEGMENT3
10
Table Name
GL_LEDGERS
GL_CODE_COMBINATIONS
, FND_FLEX_VALUES_TL,
FND_FLEX_VALUES
GL_CODE_COMBINATIONS
, FND_FLEX_VALUES_TL,
FND_FLEX_VALUES
GL_CODE_COMBINATIONS
, FND_FLEX_VALUES_TL,
FND_FLEX_VALUES
GL_CODE_COMBINATIONS
, FND_FLEX_VALUES_TL,
FND_FLEX_VALUES
GL_CODE_COMBINATIONS
, FND_FLEX_VALUES_TL,
FND_FLEX_VALUES
GL_CODE_COMBINATIONS
, FND_FLEX_VALUES_TL,
FND_FLEX_VALUES
GL_CODE_COMBINATIONS
, FND_FLEX_VALUES_TL,
FND_FLEX_VALUES
GL_CODE_COMBINATIONS
, FND_FLEX_VALUES_TL,
FND_FLEX_VALUES
XX_GL_SEGMENT4
XX_GL_SEGMENT5
XX_GL_SEGMENT6
XX_GL_SEGMENT7
XX_GL_SEGMENT8
XX_GL_PERIODS
XX_GL_CODE_COMBINATIONS
XX_GL_BALANCES
GL_CODE_COMBINATIONS
GL_BALANCES
XX_GL_JE_HEADER
XX_GL_JE_LINE_DETAILS
GL_JE_HEADERS
GL_JE_LINES
XX_COMPORG
SEGMENT1_HIERARCHY
Segment1 Hierarchy
based on rows in
xx_cons_3 table
Type 1 Dimension
Type 1 Dimension
Type 1 Dimension
Type 1 Dimension
Type 1 Dimension
Type 1 Dimension
CCID
GL_BALANCES_KEY
(Concatenated Key)
JE_HEADER_ID
JE_LINE_ID
(Concatenation of
je_header_id and
je_line_num)
CREATE VIEW xx_COMPORG
(CONS_COMP, COMP,
CONS_COMP_DESC, COMP_DESC ) AS
SELECT consolidated_comp cons_comp,
COMP,
(SELECT SEGMENT1_DESCRIPTION
FROM XX_GL_SEGMENT1
WHERE SEGMENT1 =
consolidated_comp AND rownum = 1 )
CONS_COMP_DESC,
(SELECT SEGMENT1_DESCRIPTION
FROM XX_GL_SEGMENT1
WHERE SEGMENT1 = comp AND
rownum = 1) COMP_DESC
FROM ( SELECT t.consolidated_comp,
t2.COLUMN_VALUE COMP
FROM xx_cons_3 t,
TABLE (
CAST (xx_str2tbl (REPLACE
(t.comp_in, CHR (39))) AS xx_mytable))
t2
ORDER BY 1, 2)
UNION
SELECT NULL cons_comp,
'02' comp,
NULL CONS_COMP_DESC,
'Savola Group Consolidated'
COMP_DESC
FROM DUAL;
CREATE VIEW SEGMENT1_HIERARCHY
(NODEID, PARENTID, NODENAME,
PARENTNODENAME)
AS
SELECT comp NodeID,
cons_comp ParentID,
comp_desc NodeName,
cons_comp_desc
ParentNodeName
FROM xx_comporg
CONNECT BY PRIOR comp = cons_comp
START WITH cons_comp IS NULL;
7. Tables to be created
CREATE TABLE
XX_GL_COMPANY_USER_ACCESS
( USER_ACCESS_ORG_ID
VARCHAR2(100),
USERID
VARCHAR2(30),
11
DISPLAY_NAME
VARCHAR2(50),
BOOKMARK_NAME
VARCHAR2(50),
EMAIL_ADDRESS
VARCHAR2(50)
)
COMPAN
Y
USERI
D
02
hqsagl
30
user30
90
user90
3A
ibaig
DISPLAY_NAME
GL For Company
02
GL For Company
30
GL For Company
90
GL For Company
3A
BOOKMARK_NA
ME
EMAIL_ADDRE
SS
Group
hqsagl@.com
Sub Grp 30
hqsagl@.com
Sub Grp 90
hqsagl@.com
Sub Grp 3A
hqsagl@.com
30
3C
80
3G
3A
8C
84
3B
8F
82
8D
CREATE TABLE
DEVELOP.XX_GL_PERIOD_LIST
(
PERIOD_NAME VARCHAR2(6
BYTE)
)
CREATE TABLE XX_CONS_3
(
CONSOLIDATED_COMP
VARCHAR2(5 BYTE),
COMP_IN
VARCHAR2(255
BYTE)
)
12
Company_L
ist
'3A','3B'
'82','8D'
'84','8F'
'8C'
'3g','3C'
'30','80','5F
'
'90'
8. QVC Components
Qvc Components for Qlikview were used for incremental load of tables. To incrementally
load data from Oracle Views into the QVD Files.
https://github.com/RobWunderlich/Qlikview-Components
http://code.google.com/p/qlikview-components/downloads/list
Following was the change done in the qvc.qvs script File
Changed the Variable to ORACLE instead of SQLSERVER
SET Qvc.Loader.v.Database = ORACLE;
9. Folder Structure
The below Folders can be on any drive (C: or D: )
//'D:\QlikView\QVDs\';
//'C:\QLIKVIEW\SOURCEDOCS\';
There is no Difference between two Generator files Except the seconds one has two extra
tabs (Rep Header Generator, Zero Value Records)
GL Generator For InterValMatch.qvw (First File)
GL Generator For WhereClause.qvw (Second File)
13
LOAD all rows based on the Dynamic Where and Insert into GL_ACTUAL_REP_HEADER.
SECOND LOAD
Get the distinct period from XX_GL_BALANCES_CHANGED_RECS.QVD
Delete the records from GL_ACTUAL_REP_HEADER for the distinct periods
Regenerate the records for these periods and place into GL_ACTUAL_REP_HEADER
Plan and Forecast Loads the Plan and Forecast of the Headers. The grain of Plan and
Forecast is at Header, Company (Segment1), Period. The Company hierarchy is maintained
externally (not in the ERP). In our ERP instance budget is recorded only for specific
segments in the ERP. Budget for PnL and Balance sheet headers is saved separately in XLS
and bought into oracle and named as Plan.
Zero Value Records Insert zero value records into GL_ACTUAL_REP_HEADER table.
Security Security Tab loads the security Tables. NOTE :- If a user has access to a Parent
Company he automatically views the data of the childs associated with the parent. Below
Diagram shows the Company hierarchy.
02
90
5F
30
3C
80
3G
3A
3B
8C
84
8F
82
8D
Cons_Comp
any
Company_
List
3Z
'3A','3B'
8F
'82','8D'
8C
'84','8F'
80
'8C'
30
'3g','3C'
90
'30','80','5F'
02
'90'
Loads the data from the QVD files stored in (C:\Qliview\QVDs Folder) into Qlikview Tables.
(Diagram on next page specifies the relationship/joins among the tables and their fields)
16
17
18
19
20
21
KPIs
Tab show the commonly used KPI and their trend for a particular company. The data fetched
in this TAB is based on the GL_Act_Rep_Header_Aggr table which is generated using
GL_Actual_Balance or GL_Act_Rep_Header tables. (This Tab takes a little time to refresh
based on the amount of data)
KPIs
22
Balance Sheet
Tab shows Balances sheet for the select company. User can also see the details of a
particular header/row. Balance sheet is shown by POSITION. Meaning (Opening Balance of
year + Monthly movement)
23
Cost Center
This tab shows the Actual and Budget or last year values for the COST CENTER report. The
cost center report is a report using a set of cost centers. The Budget of the cost centers
comes from the oracle ERP.
Cost Center
24
GL Balance Analysis
GL Actual and Budget Balances for a particular segment can be viewed via this tab.
Cash Flow
Cash Flow details can be viewed via this tab.
The Technique used to create the cashflow report is in the Headers_GRP worksheet of GL
Report Header Mapping4.xlsx file. All the headers /rows of the cash flow report are already
calculated via the PnL and Balance Sheet headers. But for the sign the REP_ROW_SIGN
field is used.
HEADER_T
YPE
3
3
3
25
HEADER_ID_
GRP
PL05
PL06
PL07
HEADER_NAME
_GRP
REP_ROW_T
YPE
REP_ROW_FOR
MULA
REP_ROW_NU
MBER
Net Profit
Lines
Net Profit
Lines
Net Profit
Lines
REP_ROW_S
IGN
REP_HEADE
R_ID
CF01
CF01
CF01
CF02
CF021
Depreciation
Deferred Expense
Write Off
Lines
Lines
CF02
CF021
The sign is being used in the expression on the presentation layer file to multiple the value
with a (minus) sign also note the field HEADER_ID_GRP is used Instead of REP_HEADER_ID
Expression used for Cash Flow Measure
=Sum({<[TIME_PERIOD]={"PTD"}, [HEADER_TYPE]={3}>}
IF(WILDMATCH(HEADER_ID_GRP,'AS*'), ACT_PTD, ACT_PTD*-1) * IF(REP_ROW_SIGN='-',-1,1) *
XRATE_$(vCurrency))/1000
GL Journals
GL Journal Entered can be viewed using this tab.
26
GL Trial Balance
Tab shows the Trial Balance Report.
All the Tab use common Time Dimensions. For More info on Time Analysis please refer
to the below link
For SET Analysis http://community.qlik.com/docs/DOC-4951
For Time Analysis http://community.qlik.com/docs/DOC-4821
For Hierarchy http://community.qlik.com/docs/DOC-5334
IntervalMatch for two different ranges http://community.qlik.com/thread/139796
For Any Measures used in the presentation file use the SET ANALYSIS to filter based
on the TIME_PERIOD={"PTD"} (PTD,YTD, Other Values). Otherwise wrong values
are shown
Table_Scripts.sql
Packages_Scripts.sql
Function_Scripts.sql
Type_Scripts.sql
Create
Create
Create
Create
Create
the
the
the
the
the
View_Scripts.sql
28
16. Acknowledgments
The dashboard is a team effort. Sincere thanks to my manager Saiyid Tahir for giving me
ideas and Brother Mohammed Nabeel for creating the presentation layer.
Thanks to Qlik community from where ideas were gathered.
29