GL Balance Tracking for Licensing Contracts Report
Tracks general-ledger balances for a revenue stream by cost center, selling method, and currency over time — a movement view that follows specific account combinations period over period.
Related A focused balance-tracking view; the General Ledger Trial Balance Monthly Movements Report applies the same movement logic across all accounts.
Run note · BIP run High-volume GL extracts can exceed BI Publisher's online output limit and time out. Run it as a scheduled process (ESS) with output bursted to file or email rather than online preview, and bound it by ledger and period.
Sample build of the GL Balance Tracking for Licensing Contracts Report — reconciled, and rendered tool-neutral so it runs in Power BI, ThoughtSpot, or Tableau.
| Account Combination | Cost Center | Selling Method | Currency | Period | Balance |
|---|---|---|---|---|---|
| 1000-2100-000 | $1,240,500.00 | Standard | USD | APR-26 | $1,240,500.00 |
| 1000-5400-000 | $842,150.75 | Corporate | USD | MAR-26 | $842,150.75 |
| 1000-1410-000 | $96,400.00 | Standard | USD | FEB-26 | $96,400.00 |
| 2000-2100-000 | $1,005,233.10 | Default | USD | JAN-26 | $1,005,233.10 |
| 1000-6300-000 | $58,720.40 | Standard | USD | DEC-25 | $58,720.40 |
| 1000-2100-000 | $1,240,500.00 | Standard | USD | APR-26 | $1,240,500.00 |
The report reads GL_BALANCES on the selected account combinations and trends them by cost center and selling method.
One cost center's balance swings sharply month to month — a reclassification churn that nets out but distorts any single-month read.
Trace the churn to a recurring reclass; if a manual reclass repeats every month, fix the original coding so the balance is right at source.
This is the report's BI Publisher data model — the SQL data set BI Publisher runs against Oracle tables to produce the output. The same SQL becomes a dbt model in your warehouse, so one definition drives both the formatted report and the analytics layer.
Data sources
- GL_BALANCES
- GL_CODE_COMBINATIONS
- GL_DAILY_RATES
- GL_LEDGERS
Show / hide SQL
<![CDATA[WITH CONVERSION_TBL AS
(
SELECT
DISTINCT
CONVERSION_RATE,
FROM_CURRENCY,
USER_CONVERSION_TYPE
FROM
(
SELECT DISTINCT
1 CONVERSION_RATE,
'USD' FROM_CURRENCY,
GL.NAME,
GDCT.USER_CONVERSION_TYPE
FROM
GL_LEDGERS GL,
GL_DAILY_CONVERSION_TYPES GDCT,
GL_DAILY_RATES GDR
WHERE
1=1
AND GDCT.CONVERSION_TYPE = GDR.CONVERSION_TYPE
AND GL.CURRENCY_CODE = GDR.FROM_CURRENCY
AND GL.CURRENCY_CODE = 'USD'
AND UPPER(GDCT.USER_CONVERSION_TYPE) IN ('STANDARD','CORPORATE')
AND (GL.name IN (:P_LEDGER)
OR 'All' IN (:P_LEDGER||'All'))
AND (GDCT.USER_CONVERSION_TYPE IN (:P_CONVERSION_TYPE)
OR 'All' IN (:P_CONVERSION_TYPE||'All'))
UNION
SELECT distinct
GDR.CONVERSION_RATE,
GDR.FROM_CURRENCY,
GL.NAME,
GDCT.USER_CONVERSION_TYPE
FROM
GL_DAILY_CONVERSION_TYPES GDCT,
GL_DAILY_RATES GDR,
GL_LEDGERS GL
WHERE
1=1
AND GDCT.CONVERSION_TYPE = GDR.CONVERSION_TYPE
AND GL.CURRENCY_CODE = GDR.FROM_CURRENCY
AND GDR.TO_CURRENCY = 'USD'
AND UPPER(GDCT.USER_CONVERSION_TYPE) IN ('STANDARD','CORPORATE')
AND GDR.CONVERSION_DATE = (:P_RATE_DATE)
AND (GL.name IN (:P_LEDGER)
OR 'All' IN (:P_LEDGER||'All'))
AND (GDCT.USER_CONVERSION_TYPE IN (:P_CONVERSION_TYPE)
OR 'All' IN (:P_CONVERSION_TYPE||'All'))
)
)
SELECT
LEDGER_NAME,
ACCOUNT_COMBINATION,
ENTITY,
SELLING_METHOD,
COST_CENTER,
ACCOUNT,
LOCATION,
BRAND,
INTERCOMPANY,
FUTURE1,
FUTURE2,
ENTERED_CURRENCY,
FUNCTIONAL_CURRENCY,
CONTRACT,
SUM(BEG_BAL_ENTERED) BEG_BAL_ENTERED,
SUM(RIGHTSLOGIC_ENTERED) RIGHTSLOGIC_ENTERED,
SUM(RECEIVABLES_ENTERED) RECEIVABLES_ENTERED,
SUM(MANUAL_ENTERED) MANUAL_ENTERED,
SUM((BEG_BAL_ENTERED+RIGHTSLOGIC_ENTERED+RECEIVABLES_ENTERED+MANUAL_ENTERED)) END_BAL_ENTERED,
SUM(BEG_BAL_ACCOUNTED) BEG_BAL_ACCOUNTED,
SUM(RIGHTSLOGIC_ACCOUNTED) RIGHTSLOGIC_ACCOUNTED,
SUM(RECEIVABLES_ACCOUNTED) RECEIVABLES_ACCOUNTED,
SUM(MANUAL_ACCOUNTED) MANUAL_ACCOUNTED,
SUM((BEG_BAL_ACCOUNTED+RIGHTSLOGIC_ACCOUNTED+RECEIVABLES_ACCOUNTED+MANUAL_ACCOUNTED)) END_BAL_ACCOUNTED,
ROUND(CONVERSION_RATE,2) CONVERSION_RATE,
USER_CONVERSION_TYPE rate_type,
SUM(ROUND((CASE WHEN FUNCTIONAL_CURRENCY = 'USD' THEN (1*BEG_BAL_ACCOUNTED)
ELSE
(CONVERSION_RATE*BEG_BAL_ACCOUNTED) END),2)) BEG_BAL_USD,
SUM(ROUND((CASE WHEN FUNCTIONAL_CURRENCY = 'USD' THEN (1*RIGHTSLOGIC_ACCOUNTED)
ELSE
(CONVERSION_RATE*RIGHTSLOGIC_ACCOUNTED) END),2)) RIGHTS_LOGIC_USD,
SUM(ROUND((CASE WHEN FUNCTIONAL_CURRENCY = 'USD' THEN (1*RECEIVABLES_ACCOUNTED)
ELSE
(CONVERSION_RATE*RECEIVABLES_ACCOUNTED) END),2)) RECEIVABLES_USD,
SUM(ROUND((CASE WHEN FUNCTIONAL_CURRENCY = 'USD' THEN (1*MANUAL_ACCOUNTED)
ELSE
(CONVERSION_RATE*MANUAL_ACCOUNTED) END),2)) MANUAL_USD,
SUM(ROUND((CASE WHEN FUNCTIONAL_CURRENCY = 'USD' THEN ((BEG_BAL_ACCOUNTED+RIGHTSLOGIC_ACCOUNTED+RECEIVABLES_ACCOUNTED+MANUAL_ACCOUNTED)*1)
ELSE ((BEG_BAL_ACCOUNTED+RIGHTSLOGIC_ACCOUNTED+RECEIVABLES_ACCOUNTED+MANUAL_ACCOUNTED)*CONVERSION_RATE) END ),2)) END_BAL_USD
FROM
(
SELECT
LEDGER_NAME,
ACCOUNT_COMBINATION,
ENTITY,
SELLING_METHOD,
COST_CENTER,
ACCOUNT,
LOCATION,
BRAND,
INTERCOMPANY,
FUTURE1,
FUTURE2,
ENTERED_CURRENCY,
FUNCTIONAL_CURRENCY,
CONTRACT,
SUM(NVL(BEG_BAL_ENTERED,0)) - SUM(NVL(BEG_BAL_ENTERED_RL,0)) - SUM(NVL(BEG_BAL_ENTERED_RI,0)) BEG_BAL_ENTERED,
SUM(NVL(RIGHTSLOGIC_ENTERED,0)) RIGHTSLOGIC_ENTERED,
SUM(NVL(RECEIVABLES_ENTERED,0)) RECEIVABLES_ENTERED,
SUM(NVL(MANUAL_ENTERED,0)) - SUM(NVL(RIGHTSLOGIC_ENTERED,0)) - SUM(NVL(RECEIVABLES_ENTERED,0)) MANUAL_ENTERED,
SUM(NVL(BEG_BAL_ACCOUNTED,0)) - SUM(NVL(BEG_BAL_ACCOUNTED_RL,0)) - SUM(NVL(BEG_BAL_ACCOUNTED_RI,0)) BEG_BAL_ACCOUNTED,
SUM(NVL(RIGHTSLOGIC_ACCOUNTED,0)) RIGHTSLOGIC_ACCOUNTED,
SUM(NVL(RECEIVABLES_ACCOUNTED,0)) RECEIVABLES_ACCOUNTED,
SUM(NVL(MANUAL_ACCOUNTED,0)) - SUM(NVL(RIGHTSLOGIC_ACCOUNTED,0)) - SUM(NVL(RECEIVABLES_ACCOUNTED,0)) MANUAL_ACCOUNTED,
CONVERSION_RATE,
USER_CONVERSION_TYPE
FROM
(
--Manual Source Code
SELECT /*+ PARALLEL(48) */
GL.NAME LEDGER_NAME,
GCC.SEGMENT1||'-'||GCC.SEGMENT2||'-'||GCC.SEGMENT3||'-'||GCC.SEGMENT4||'-'||GCC.SEGMENT5||'-'||GCC.SEGMENT6||'-'||GCC.SEGMENT7||'-'||GCC.SEGMENT8||'-'||GCC.SEGMENT9 ACCOUNT_COMBINATION,
GCC.SEGMENT1 ENTITY,
GCC.SEGMENT2 SELLING_METHOD,
GCC.SEGMENT3 COST_CENTER,
GCC.SEGMENT4 ACCOUNT,
GCC.SEGMENT5 LOCATION,
GCC.SEGMENT6 BRAND,
GCC.SEGMENT7 INTERCOMPANY,
GCC.SEGMENT8 FUTURE1,
GCC.SEGMENT9 FUTURE2,
GJH.CURRENCY_CODE ENTERED_CURRENCY,
GL.CURRENCY_CODE FUNCTIONAL_CURRENCY,
GJL.ATTRIBUTE1 CONTRACT,
SUM(NVL(GJL.ENTERED_DR,0) - NVL(GJL.ENTERED_CR,0)) MANUAL_ENTERED,
SUM(NVL(GJL.ACCOUNTED_DR,0) - NVL(GJL.ACCOUNTED_CR,0)) MANUAL_ACCOUNTED,
0 RIGHTSLOGIC_ENTERED,
0 RIGHTSLOGIC_ACCOUNTED,
0 RECEIVABLES_ENTERED,
0 RECEIVABLES_ACCOUNTED,
CT.CONVERSION_RATE,
CT.USER_CONVERSION_TYPE,
0 BEG_BAL_ENTERED,
0 BEG_BAL_ENTERED_RL,
0 BEG_BAL_ENTERED_RI,
0 BEG_BAL_ACCOUNTED,
0 BEG_BAL_ACCOUNTED_RL,
0 BEG_BAL_ACCOUNTED_RI,
GCC.CODE_COMBINATION_ID,
GL.LEDGER_ID
FROM
GL_LEDGERS GL,
GL_CODE_COMBINATIONS GCC,
GL_JE_HEADERS GJH,
GL_JE_LINES GJL,
GL_PERIODS GP,
CONVERSION_TBL CT
--SECURITY_TBL ST
WHERE
1=1
--AND ST.ledger_id = GL.LEDGER_ID
AND GJH.JE_HEADER_ID = GJL.JE_HEADER_ID
AND GJH.LEDGER_ID = GL.LEDGER_ID
AND GJL.CODE_COMBINATION_ID = GCC.CODE_COMBINATION_ID
--AND GJH.JE_SOURCE IN ('Manual','Spreadsheet','AutoCopy')
AND GJL.STATUS = 'P'
AND GJH.PERIOD_NAME = GP.PERIOD_NAME
AND GL.PERIOD_SET_NAME = GP.PERIOD_SET_NAME
AND GL.CURRENCY_CODE = CT.FROM_CURRENCY
AND (GL.name IN (:P_LEDGER)
OR 'All' IN (:P_LEDGER||'All'))
AND (GJH.CURRENCY_CODE IN (:P_ENTER_CURRENCY)
OR 'All' IN (:P_ENTER_CURRENCY||'All'))
AND GP.START_DATE >= (SELECT DISTINCT START_DATE FROM GL_PERIODS WHERE period_set_name = GL.PERIOD_SET_NAME AND PERIOD_NAME = :P_FROM_PERIOD)
AND GP.END_DATE <= (SELECT DISTINCT END_DATE FROM GL_PERIODS WHERE period_set_name = GL.PERIOD_SET_NAME AND PERIOD_NAME = :P_TO_PERIOD)
--AND GJL.ATTRIBUTE1 =NVL(:P_CONTRACT,GJL.ATTRIBUTE1)
AND (GJL.ATTRIBUTE1 IN (:P_CONTRACT)
OR 'All' IN (:P_CONTRACT||'All'))
GROUP BY
GL.NAME,
GCC.SEGMENT1,
GCC.SEGMENT2,
GCC.SEGMENT3,
GCC.SEGMENT4,
GCC.SEGMENT5,
GCC.SEGMENT6,
GCC.SEGMENT7,
GCC.SEGMENT8,
GCC.SEGMENT9,
GJH.CURRENCY_CODE,
GL.CURRENCY_CODE,
GJL.ATTRIBUTE1,
CT.CONVERSION_RATE,
GCC.CODE_COMBINATION_ID,
GL.LEDGER_ID,
CT.USER_CONVERSION_TYPE
UNION
--BEGINNING BALANCE FOR MANUAL SOURCE
SELECT /*+ PARALLEL(48) */
GL.NAME LEDGER_NAME,
GCC.SEGMENT1||'-'||GCC.SEGMENT2||'-'||GCC.SEGMENT3||'-'||GCC.SEGMENT4||'-'||GCC.SEGMENT5||'-'||GCC.SEGMENT6||'-'||GCC.SEGMENT7||'-'||GCC.SEGMENT8||'-'||GCC.SEGMENT9 ACCOUNT_COMBINATION,
GCC.SEGMENT1 ENTITY,
GCC.SEGMENT2 SELLING_METHOD,
GCC.SEGMENT3 COST_CENTER,
GCC.SEGMENT4 ACCOUNT,
GCC.SEGMENT5 LOCATION,
GCC.SEGMENT6 BRAND,
GCC.SEGMENT7 INTERCOMPANY,
GCC.SEGMENT8 FUTURE1,
GCC.SEGMENT9 FUTURE2,
GJH.CURRENCY_CODE ENTERED_CURRENCY,
GL.CURRENCY_CODE FUNCTIONAL_CURRENCY,
GJL.ATTRIBUTE1 CONTRACT,
0 MANUAL_ENTERED,
0 MANUAL_ACCOUNTED,
0 RIGHTSLOGIC_ENTERED,
0 RIGHTSLOGIC_ACCOUNTED,
0 RECEIVABLES_ENTERED,
0 RECEIVABLES_ACCOUNTED,
CT.CONVERSION_RATE,
CT.USER_CONVERSION_TYPE,
SUM(NVL(GJL.ENTERED_DR,0) - NVL(GJL.ENTERED_CR,0)) BEG_BAL_ENTERED,
0 BEG_BAL_ENTERED_RL,
0 BEG_BAL_ENTERED_RI,
SUM(NVL(GJL.ACCOUNTED_DR,0) - NVL(GJL.ACCOUNTED_CR,0)) BEG_BAL_ACCOUNTED,
0 BEG_BAL_ACCOUNTED_RL,
0 BEG_BAL_ACCOUNTED_RI,
GCC.CODE_COMBINATION_ID,
GL.LEDGER_ID
FROM
GL_LEDGERS GL,
GL_CODE_COMBINATIONS GCC,
GL_JE_HEADERS GJH,
GL_JE_LINES GJL,
GL_PERIODS GP,
CONVERSION_TBL CT
--SECURITY_TBL ST
WHERE
1=1
--AND ST.ledger_id = GL.LEDGER_ID
AND GJH.JE_HEADER_ID = GJL.JE_HEADER_ID
AND GJH.LEDGER_ID = GL.LEDGER_ID
AND GJL.CODE_COMBINATION_ID = GCC.CODE_COMBINATION_ID
--AND GJH.JE_SOURCE IN ('Manual','Spreadsheet','AutoCopy')
AND GJL.STATUS = 'P'
AND GJH.PERIOD_NAME = GP.PERIOD_NAME
AND GL.PERIOD_SET_NAME = GP.PERIOD_SET_NAME
AND GL.CURRENCY_CODE = CT.FROM_CURRENCY
AND (GL.name IN (:P_LEDGER)
OR 'All' IN (:P_LEDGER||'All'))
AND (GJH.CURRENCY_CODE IN (:P_ENTER_CURRENCY)
OR 'All' IN (:P_ENTER_CURRENCY||'All'))
AND GP.START_DATE < (SELECT DISTINCT START_DATE FROM GL_PERIODS WHERE period_set_name = GL.PERIOD_SET_NAME AND PERIOD_NAME = :P_FROM_PERIOD)
--AND GJL.ATTRIBUTE1=NVL(:P_CONTRACT,GJL.ATTRIBUTE1)
AND (GJL.ATTRIBUTE1 IN (:P_CONTRACT)
OR 'All' IN (:P_CONTRACT||'All'))
GROUP BY
GL.NAME,
GCC.SEGMENT1,
GCC.SEGMENT2,
GCC.SEGMENT3,
GCC.SEGMENT4,
GCC.SEGMENT5,
GCC.SEGMENT6,
GCC.SEGMENT7,
GCC.SEGMENT8,
GCC.SEGMENT9,
GJH.CURRENCY_CODE,
GL.CURRENCY_CODE,
GJL.ATTRIBUTE1,
CT.CONVERSION_RATE,
CT.USER_CONVERSION_TYPE,
GCC.CODE_COMBINATION_ID,
GL.LEDGER_ID
UNION
-- Rightslogic Source code
select /*+ PARALLEL(48) */
GL.NAME LEDGER_NAME,
GCC.SEGMENT1||'-'||GCC.SEGMENT2||'-'||GCC.SEGMENT3||'-'||GCC.SEGMENT4||'-'||GCC.SEGMENT5||'-'||GCC.SEGMENT6||'-'||GCC.SEGMENT7||'-'||GCC.SEGMENT8||'-'||GCC.SEGMENT9 ACCOUNT_COMBINATION,
GCC.SEGMENT1 ENTITY,
GCC.SEGMENT2 SELLING_METHOD,
GCC.SEGMENT3 COST_CENTER,
GCC.SEGMENT4 ACCOUNT,
GCC.SEGMENT5 LOCATION,
GCC.SEGMENT6 BRAND,
GCC.SEGMENT7 INTERCOMPANY,
GCC.SEGMENT8 FUTURE1,
GCC.SEGMENT9 FUTURE2,
XAL.CURRENCY_CODE ENTERED_CURRENCY,
GL.CURRENCY_CODE FUNCTIONAL_CURRENCY,
XAL.SR36 CONTRACT,
0 MANUAL_ENTERED,
0 MANUAL_ACCOUNTED,
SUM(NVL(XAL.ENTERED_DR,0) - NVL(XAL.ENTERED_CR,0)) RIGHTSLOGIC_ENTERED,
SUM(NVL(XAL.ACCOUNTED_DR,0) - NVL(XAL.ACCOUNTED_CR,0)) RIGHTSLOGIC_ACCOUNTED,
0 RECEIVABLES_ENTERED,
0 RECEIVABLES_ACCOUNTED,
CT.CONVERSION_RATE,
CT.USER_CONVERSION_TYPE,
0 BEG_BAL_ENTERED,
0 BEG_BAL_ENTERED_RL,
0 BEG_BAL_ENTERED_RI,
0 BEG_BAL_ACCOUNTED,
0 BEG_BAL_ACCOUNTED_RL,
0 BEG_BAL_ACCOUNTED_RI,
GCC.CODE_COMBINATION_ID,
GL.LEDGER_ID
FROM
GL_LEDGERS GL,
XLA_AE_HEADERS XAH,
XLA_AE_LINES XAL,
GL_CODE_COMBINATIONS GCC,
GL_PERIODS GP,
CONVERSION_TBL CT
where 1=1
AND GL.LEDGER_ID = XAH.LEDGER_ID
AND XAL.AE_HEADER_ID = XAH.AE_HEADER_ID
AND xal.application_id = xah.application_id
AND XAL.SR35 ='RIGHTSLOGIC'
AND XAL.CODE_COMBINATION_ID = GCC.CODE_COMBINATION_ID
AND GCC.CHART_OF_ACCOUNTS_ID=GL.CHART_OF_ACCOUNTS_ID
AND XAL.PERIOD_NAME = GP.PERIOD_NAME
AND GL.PERIOD_SET_NAME = GP.PERIOD_SET_NAME
AND GL.CURRENCY_CODE = CT.FROM_CURRENCY
AND (GL.name IN (:P_LEDGER)
OR 'All' IN (:P_LEDGER||'All'))
AND (XAL.CURRENCY_CODE IN (:P_ENTER_CURRENCY)
OR 'All' IN (:P_ENTER_CURRENCY||'All'))
AND GP.START_DATE >= (SELECT DISTINCT START_DATE FROM GL_PERIODS WHERE period_set_name = GL.PERIOD_SET_NAME AND PERIOD_NAME = :P_FROM_PERIOD)
AND GP.END_DATE <= (SELECT DISTINCT END_DATE FROM GL_PERIODS WHERE period_set_name = GL.PERIOD_SET_NAME AND PERIOD_NAME = :P_TO_PERIOD)
--AND XAL.SR36 =NVL(:P_CONTRACT,XAL.SR36)
AND (XAL.SR36 IN (:P_CONTRACT)
OR 'All' IN (:P_CONTRACT||'All'))
GROUP BY
GL.NAME,
GCC.SEGMENT1,
GCC.SEGMENT2,
GCC.SEGMENT3,
GCC.SEGMENT4,
GCC.SEGMENT5,
GCC.SEGMENT6,
GCC.SEGMENT7,
GCC.SEGMENT8,
GCC.SEGMENT9,
XAL.CURRENCY_CODE,
GL.CURRENCY_CODE,
XAL.SR36,
CT.CONVERSION_RATE,
GCC.CODE_COMBINATION_ID,
GL.LEDGER_ID,
CT.USER_CONVERSION_TYPE
UNION
--RIGHTSLOGIC BEGINNING BALANCE
SELECT /*+ PARALLEL(48) */
GL.NAME LEDGER_NAME,
GCC.SEGMENT1||'-'||GCC.SEGMENT2||'-'||GCC.SEGMENT3||'-'||GCC.SEGMENT4||'-'||GCC.SEGMENT5||'-'||GCC.SEGMENT6||'-'||GCC.SEGMENT7||'-'||GCC.SEGMENT8||'-'||GCC.SEGMENT9 ACCOUNT_COMBINATION,
GCC.SEGMENT1 ENTITY,
GCC.SEGMENT2 SELLING_METHOD,
GCC.SEGMENT3 COST_CENTER,
GCC.SEGMENT4 ACCOUNT,
GCC.SEGMENT5 LOCATION,
GCC.SEGMENT6 BRAND,
GCC.SEGMENT7 INTERCOMPANY,
GCC.SEGMENT8 FUTURE1,
GCC.SEGMENT9 FUTURE2,
XAL.CURRENCY_CODE ENTERED_CURRENCY,
GL.CURRENCY_CODE FUNCTIONAL_CURRENCY,
XAL.SR36 CONTRACT,
0 MANUAL_ENTERED,
0 MANUAL_ACCOUNTED,
0 RIGHTSLOGIC_ENTERED,
0 RIGHTSLOGIC_ACCOUNTED,
0 RECEIVABLES_ENTERED,
0 RECEIVABLES_ACCOUNTED,
CT.CONVERSION_RATE,
CT.USER_CONVERSION_TYPE,
0 BEG_BAL_ENTERED,
NVL(SUM(NVL(XAL.ENTERED_DR,0) - NVL(XAL.ENTERED_CR,0)),0) BEG_BAL_ENTERED_RL,
0 BEG_BAL_ENTERED_RI,
0 BEG_BAL_ACCOUNTED,
SUM(NVL(XAL.ACCOUNTED_DR,0) - NVL(XAL.ACCOUNTED_CR,0)) BEG_BAL_ACCOUNTED_RL,
0 BEG_BAL_ACCOUNTED_RI,
GCC.CODE_COMBINATION_ID,
GL.LEDGER_ID
FROM
GL_LEDGERS GL,
GL_CODE_COMBINATIONS GCC,
XLA_AE_HEADERS XAH,
XLA_AE_LINES XAL,
GL_PERIODS GP,
CONVERSION_TBL CT
--SECURITY_TBL ST
WHERE
1=1
AND GL.LEDGER_ID = XAH.LEDGER_ID
AND XAL.AE_HEADER_ID = XAH.AE_HEADER_ID
AND xal.application_id = xah.application_id
AND XAL.SR35 ='RIGHTSLOGIC'
AND XAL.CODE_COMBINATION_ID = GCC.CODE_COMBINATION_ID
AND GCC.CHART_OF_ACCOUNTS_ID=GL.CHART_OF_ACCOUNTS_ID
AND XAL.PERIOD_NAME = GP.PERIOD_NAME
AND GL.PERIOD_SET_NAME = GP.PERIOD_SET_NAME
AND GL.CURRENCY_CODE = CT.FROM_CURRENCY
AND (GL.name IN (:P_LEDGER)
OR 'All' IN (:P_LEDGER||'All'))
AND (XAL.CURRENCY_CODE IN (:P_ENTER_CURRENCY)
OR 'All' IN (:P_ENTER_CURRENCY||'All'))
AND GP.START_DATE < (SELECT DISTINCT START_DATE FROM GL_PERIODS WHERE period_set_name = GL.PERIOD_SET_NAME AND PERIOD_NAME = :P_FROM_PERIOD)
--AND XAL.SR36 =NVL(:P_CONTRACT,XAL.SR36)
AND (XAL.SR36 IN (:P_CONTRACT)
OR 'All' IN (:P_CONTRACT||'All'))
GROUP BY
GL.NAME,
GCC.SEGMENT1,
GCC.SEGMENT2,
GCC.SEGMENT3,
GCC.SEGMENT4,
GCC.SEGMENT5,
GCC.SEGMENT6,
GCC.SEGMENT7,
GCC.SEGMENT8,
GCC.SEGMENT9,
XAL.CURRENCY_CODE,
GL.CURRENCY_CODE,
XAL.SR36,
CT.CONVERSION_RATE,
GCC.CODE_COMBINATION_ID,
GL.LEDGER_ID,
CT.USER_CONVERSION_TYPE
UNION
-- RECEIVABLES Source code
SELECT
/*+ PARALLEL(48) */
GL.NAME LEDGER_NAME,
GCC.SEGMENT1||'-'||GCC.SEGMENT2||'-'||GCC.SEGMENT3||'-'||GCC.SEGMENT4||'-'||GCC.SEGMENT5||'-'||GCC.SEGMENT6||'-'||GCC.SEGMENT7||'-'||GCC.SEGMENT8||'-'||GCC.SEGMENT9 ACCOUNT_COMBINATION,
GCC.SEGMENT1 ENTITY,
GCC.SEGMENT2 SELLING_METHOD,
GCC.SEGMENT3 COST_CENTER,
GCC.SEGMENT4 ACCOUNT,
GCC.SEGMENT5 LOCATION,
GCC.SEGMENT6 BRAND,
GCC.SEGMENT7 INTERCOMPANY,
GCC.SEGMENT8 FUTURE1,
GCC.SEGMENT9 FUTURE2,
XAL.CURRENCY_CODE ENTERED_CURRENCY,
GL.CURRENCY_CODE FUNCTIONAL_CURRENCY,
XAL.SR34 CONTRACT,
0 MANUAL_ENTERED,
0 MANUAL_ACCOUNTED,
0 RIGHTSLOGIC_ENTERED,
0 RIGHTSLOGIC_ACCOUNTED,
SUM(NVL(XAL.ENTERED_DR,0) - NVL(XAL.ENTERED_CR,0)) RECEIVABLES_ENTERED,
SUM(NVL(XAL.ACCOUNTED_DR,0) - NVL(XAL.ACCOUNTED_CR,0)) RECEIVABLES_ACCOUNTED,
CT.CONVERSION_RATE,
CT.USER_CONVERSION_TYPE,
0 BEG_BAL_ENTERED,
0 BEG_BAL_ENTERED_RL,
0 BEG_BAL_ENTERED_RI,
0 BEG_BAL_ACCOUNTED,
0 BEG_BAL_ACCOUNTED_RL,
0 BEG_BAL_ACCOUNTED_RI,
GCC.CODE_COMBINATION_ID,
GL.LEDGER_ID
FROM
GL_LEDGERS GL,
GL_CODE_COMBINATIONS GCC,
XLA_AE_HEADERS XAH,
XLA_AE_LINES XAL,
GL_PERIODS GP,
CONVERSION_TBL CT
--SECURITY_TBL ST
WHERE
1=1
--AND ST.ledger_id = GL.LEDGER_ID
AND XAL.AE_HEADER_ID = XAH.AE_HEADER_ID
AND XAL.CODE_COMBINATION_ID = GCC.CODE_COMBINATION_ID
AND GL.LEDGER_ID = XAH.LEDGER_ID
AND XAL.APPLICATION_ID = 222
AND XAL.SR37 ='RIGHTSLOGIC INTERFACE'
AND XAH.PERIOD_NAME = GP.PERIOD_NAME
AND GL.PERIOD_SET_NAME = GP.PERIOD_SET_NAME
AND GL.CURRENCY_CODE = CT.FROM_CURRENCY
AND (GL.name IN (:P_LEDGER)
OR 'All' IN (:P_LEDGER||'All'))
AND (XAL.CURRENCY_CODE IN (:P_ENTER_CURRENCY)
OR 'All' IN (:P_ENTER_CURRENCY||'All'))
AND GP.START_DATE >= (SELECT DISTINCT START_DATE FROM GL_PERIODS WHERE period_set_name = GL.PERIOD_SET_NAME AND PERIOD_NAME = :P_FROM_PERIOD)
AND GP.END_DATE <= (SELECT DISTINCT END_DATE FROM GL_PERIODS WHERE period_set_name = GL.PERIOD_SET_NAME AND PERIOD_NAME = :P_TO_PERIOD)
--AND XAL.SR34 =NVL(:P_CONTRACT,XAL.SR34)
AND (XAL.SR34 IN (:P_CONTRACT)
OR 'All' IN (:P_CONTRACT||'All'))
GROUP BY
GL.NAME,
GCC.SEGMENT1,
GCC.SEGMENT2,
GCC.SEGMENT3,
GCC.SEGMENT4,
GCC.SEGMENT5,
GCC.SEGMENT6,
GCC.SEGMENT7,
GCC.SEGMENT8,
GCC.SEGMENT9,
XAL.CURRENCY_CODE,
GL.CURRENCY_CODE,
XAL.SR34,
CT.CONVERSION_RATE,
GCC.CODE_COMBINATION_ID,
GL.LEDGER_ID,
CT.USER_CONVERSION_TYPE
UNION
--RECEIVALES BEGINNING BALANCE
SELECT
/*+ PARALLEL(48) */
GL.NAME LEDGER_NAME,
GCC.SEGMENT1||'-'||GCC.SEGMENT2||'-'||GCC.SEGMENT3||'-'||GCC.SEGMENT4||'-'||GCC.SEGMENT5||'-'||GCC.SEGMENT6||'-'||GCC.SEGMENT7||'-'||GCC.SEGMENT8||'-'||GCC.SEGMENT9 ACCOUNT_COMBINATION,
GCC.SEGMENT1 ENTITY,
GCC.SEGMENT2 SELLING_METHOD,
GCC.SEGMENT3 COST_CENTER,
GCC.SEGMENT4 ACCOUNT,
GCC.SEGMENT5 LOCATION,
GCC.SEGMENT6 BRAND,
GCC.SEGMENT7 INTERCOMPANY,
GCC.SEGMENT8 FUTURE1,
GCC.SEGMENT9 FUTURE2,
XAL.CURRENCY_CODE ENTERED_CURRENCY,
GL.CURRENCY_CODE FUNCTIONAL_CURRENCY,
XAL.SR34 CONTRACT,
0 MANUAL_ENTERED,
0 MANUAL_ACCOUNTED,
0 RIGHTSLOGIC_ENTERED,
0 RIGHTSLOGIC_ACCOUNTED,
0 RECEIVABLES_ENTERED,
0 RECEIVABLES_ACCOUNTED,
CT.CONVERSION_RATE,
CT.USER_CONVERSION_TYPE,
0 BEG_BAL_ENTERED,
0 BEG_BAL_ENTERED_RL,
SUM(NVL(XAL.ENTERED_DR,0) - NVL(XAL.ENTERED_CR,0)) BEG_BAL_ENTERED_RI,
0 BEG_BAL_ACCOUNTED,
0 BEG_BAL_ACCOUNTED_RL,
SUM(NVL(XAL.ACCOUNTED_DR,0) - NVL(XAL.ACCOUNTED_CR,0)) BEG_BAL_ACCOUNTED_RI,
GCC.CODE_COMBINATION_ID,
GL.LEDGER_ID
FROM
GL_LEDGERS GL,
GL_CODE_COMBINATIONS GCC,
XLA_AE_HEADERS XAH,
XLA_AE_LINES XAL,
GL_PERIODS GP,
CONVERSION_TBL CT
--SECURITY_TBL ST
WHERE
1=1
--AND ST.ledger_id = GL.LEDGER_ID
AND XAL.AE_HEADER_ID = XAH.AE_HEADER_ID
AND XAL.CODE_COMBINATION_ID = GCC.CODE_COMBINATION_ID
AND GL.LEDGER_ID = XAH.LEDGER_ID
AND XAL.APPLICATION_ID = 222
AND XAL.SR37 ='RIGHTSLOGIC INTERFACE'
AND XAH.PERIOD_NAME = GP.PERIOD_NAME
AND GL.PERIOD_SET_NAME = GP.PERIOD_SET_NAME
AND GL.CURRENCY_CODE = CT.FROM_CURRENCY
AND (GL.name IN (:P_LEDGER))
AND (XAL.CURRENCY_CODE IN (:P_ENTER_CURRENCY)
OR 'All' IN (:P_ENTER_CURRENCY||'All'))
AND GP.START_DATE < (SELECT DISTINCT START_DATE FROM GL_PERIODS WHERE period_set_name = GL.PERIOD_SET_NAME AND PERIOD_NAME = :P_FROM_PERIOD)
AND (XAL.SR34 IN (:P_CONTRACT)
OR 'All' IN (:P_CONTRACT||'All'))
--AND XAL.SR34 =NVL(:P_CONTRACT,XAL.SR34)
GROUP BY
GL.NAME,
GCC.SEGMENT1,
GCC.SEGMENT2,
GCC.SEGMENT3,
GCC.SEGMENT4,
GCC.SEGMENT5,
GCC.SEGMENT6,
GCC.SEGMENT7,
GCC.SEGMENT8,
GCC.SEGMENT9,
XAL.CURRENCY_CODE,
GL.CURRENCY_CODE,
XAL.SR34,
CT.CONVERSION_RATE,
CT.USER_CONVERSION_TYPE,
GCC.CODE_COMBINATION_ID,
GL.LEDGER_ID
)
WHERE 1=1
AND (ENTITY ) BETWEEN (:P_ENTITY_FROM ) AND (:P_ENTITY_TO )
AND (SELLING_METHOD) BETWEEN (:P_SELL_METHOD_FROM ) AND (:P_SELL_METHOD_TO )
AND (COST_CENTER ) BETWEEN (:P_COST_CENTER_FROM ) AND (:P_COST_CENTER_TO )
AND (ACCOUNT) BETWEEN (:P_ACCOUNT_FROM ) AND (:P_ACCOUNT_TO )
AND (LOCATION ) BETWEEN (:P_LOCATION_FROM ) AND (:P_LOCATION_TO )
AND (BRAND) BETWEEN (:P_BRAND_FROM ) AND (:P_BRAND_TO )
AND (INTERCOMPANY ) BETWEEN (:P_INTERCO_FROM ) AND (:P_INTERCO_TO )
GROUP BY
LEDGER_NAME,
ACCOUNT_COMBINATION,
ENTITY,
SELLING_METHOD,
COST_CENTER,
ACCOUNT,
LOCATION,
BRAND,
INTERCOMPANY,
FUTURE1,
FUTURE2,
ENTERED_CURRENCY,
FUNCTIONAL_CURRENCY,
CONTRACT,
CONVERSION_RATE,
USER_CONVERSION_TYPE
)
WHERE 1=1
--AND (BEG_BAL_ACCOUNTED+RIGHTSLOGIC_ACCOUNTED+RECEIVABLES_ACCOUNTED+MANUAL_ACCOUNTED) <> 0
AND (:TEMPLATE_TYPE)='Summary'
GROUP BY
LEDGER_NAME,
ACCOUNT_COMBINATION,
ENTITY,
SELLING_METHOD,
COST_CENTER,
ACCOUNT,
LOCATION,
BRAND,
INTERCOMPANY,
FUTURE1,
FUTURE2,
ENTERED_CURRENCY,
FUNCTIONAL_CURRENCY,
CONTRACT,
CONVERSION_RATE,
USER_CONVERSION_TYPE]]>The data-warehouse model — one fact surrounded by conformed dimensions (what you slice by) and measures (what you aggregate), expressed as dbt so it migrates with you. Grain: one row per source transaction.
| Element | Type | Definition |
|---|---|---|
| GL_CODE_COMBINATIONS | dimension | dimension |
| GL_DAILY_RATES | dimension | dimension |
| GL_LEDGERS | dimension | dimension |
| Cost Center | measure | measure |
| Balance | measure | measure |
Every source object behind this report. Each linked table has its own page with full column descriptions, drawn from the Oracle BICC lineage and articulated for practitioners.
| Table | Reporting columns | Subject areas |
|---|---|---|
| GL_BALANCES | Setup / configuration table — joined for reference, not exposed for analytics | |
| GL_CODE_COMBINATIONS | 7 | 61 |
| GL_DAILY_RATES | 1 | 10 |
| GL_LEDGERS | 10 | 104 |