Global SLA Account Analysis
An account-by-account analysis built from Subledger Accounting rather than GL — every accounted line behind a balance, across all subledgers and ledgers — so finance can drill any GL figure straight to the subledger entry that created it, worldwide.
Run note · Performance The subledger (XLA) join — especially Projects-to-XLA — is a known BI Publisher performance trap on large ledgers. Pre-join it in the warehouse, or apply tight ledger, period, and source filters before running online.
Sample build of the Global SLA Account Analysis — reconciled, and rendered tool-neutral so it runs in Power BI, ThoughtSpot, or Tableau.
| Ledger | Account | Subledger | Event Type | Entered Debit | Entered Credit | Accounting Date |
|---|---|---|---|---|---|---|
| US Primary | 1000-2100-000 | US Primary | Standard | $1,240,500.00 | $1,240,500.00 | 2026-04-30 |
| EU Primary | 1000-5400-000 | EU Primary | Corporate | $842,150.75 | $842,150.75 | 2026-03-31 |
| US Primary | 1000-1410-000 | US Primary | Standard | $96,400.00 | $96,400.00 | 2026-02-28 |
| UK Primary | 2000-2100-000 | UK Primary | Default | $1,005,233.10 | $1,005,233.10 | 2026-01-31 |
| US Primary | 1000-6300-000 | US Primary | Standard | $58,720.40 | $58,720.40 | 2025-12-31 |
| US Primary | 1000-2100-000 | US Primary | Standard | $1,240,500.00 | $1,240,500.00 | 2026-04-30 |
The report reads XLA_AE_LINES across every subledger, tying each accounted line to its account and source event so a GL balance resolves to its underlying transactions.
A handful of accounts carry SLA lines with no GL transfer date — accounted in the subledger but not yet in GL, which is why a subledger-side total can briefly exceed the GL balance.
Those lines clear on the next Transfer to GL; if they persist, a ledger's transfer is failing and the subledger-to-GL gap will keep widening.
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
Show / hide SQL
&p_with_clause
&P_FLEX_WITH_CLAUSE
&p_period_with_clause
SELECT /*+ OPT_PARAM('_optimizer_join_factorization' 'false') */
TABLE1.GL_DATE GL_DATE
,TABLE1.CREATED_BY CREATED_BY
,TABLE1.CREATION_DATE CREATION_DATE
,TABLE1.LAST_UPDATE_DATE LAST_UPDATE_DATE
,TABLE1.GL_TRANSFER_DATE GL_TRANSFER_DATE
,TABLE1.REFERENCE_DATE REFERENCE_DATE
,TABLE1.COMPLETED_DATE COMPLETED_DATE
,TABLE1.TRANSACTION_NUMBER TRANSACTION_NUMBER
,TABLE1.TRANSACTION_DATE TRANSACTION_DATE
,TABLE1.ACCOUNTING_SEQUENCE_NAME ACCOUNTING_SEQUENCE_NAME
,TABLE1.ACCOUNTING_SEQUENCE_VERSION ACCOUNTING_SEQUENCE_VERSION
,TABLE1.ACCOUNTING_SEQUENCE_NUMBER ACCOUNTING_SEQUENCE_NUMBER
,TABLE1.REPORTING_SEQUENCE_NAME REPORTING_SEQUENCE_NAME
,TABLE1.REPORTING_SEQUENCE_VERSION REPORTING_SEQUENCE_VERSION
,TABLE1.REPORTING_SEQUENCE_NUMBER REPORTING_SEQUENCE_NUMBER
,TABLE1.DOCUMENT_CATEGORY DOCUMENT_CATEGORY
,TABLE1.DOCUMENT_SEQUENCE_NAME DOCUMENT_SEQUENCE_NAME
,TABLE1.DOCUMENT_SEQUENCE_NUMBER DOCUMENT_SEQUENCE_NUMBER
,TABLE1.GL_DOCUMENT_SEQUENCE_NAME GL_DOCUMENT_SEQUENCE_NAME -- added bug 10038642
,TABLE1.GL_DOCUMENT_SEQUENCE_NUMBER GL_DOCUMENT_SEQUENCE_NUMBER -- added bug 10038642
,TABLE1.APPLICATION_ID APPLICATION_ID
,TABLE1.APPLICATION_NAME APPLICATION_NAME
,TABLE1.HEADER_ID HEADER_ID
,TABLE1.HEADER_DESCRIPTION HEADER_DESCRIPTION
,TABLE1.FUND_STATUS FUND_STATUS
,TABLE1.JE_CATEGORY_NAME JE_CATEGORY_NAME
,TABLE1.JE_SOURCE_NAME JE_SOURCE_NAME
,TABLE1.EVENT_ID EVENT_ID
,TABLE1.EVENT_DATE EVENT_DATE
,TABLE1.EVENT_NUMBER EVENT_NUMBER
,TABLE1.EVENT_CLASS_CODE EVENT_CLASS_CODE
,TABLE1.EVENT_CLASS_NAME EVENT_CLASS_NAME
,TABLE1.EVENT_TYPE_CODE EVENT_TYPE_CODE
,TABLE1.EVENT_TYPE_NAME EVENT_TYPE_NAME
,TABLE1.GL_BATCH_NAME GL_BATCH_NAME
,TABLE1.POSTED_DATE POSTED_DATE
,TABLE1.GL_JE_NAME GL_JE_NAME
,TABLE1.GL_LINE_NUMBER GL_LINE_NUMBER
,TABLE1.LINE_NUMBER LINE_NUMBER
,TABLE1.ORIG_LINE_NUMBER ORIG_LINE_NUMBER
,TABLE1.ACCOUNTING_CLASS_CODE ACCOUNTING_CLASS_CODE
,TABLE1.ACCOUNTING_CLASS_NAME ACCOUNTING_CLASS_NAME
,TABLE1.LINE_DESCRIPTION LINE_DESCRIPTION
,TABLE1.ENTERED_CURRENCY ENTERED_CURRENCY
,TABLE1.CONVERSION_RATE CONVERSION_RATE
,TABLE1.CONVERSION_RATE_DATE CONVERSION_RATE_DATE
,TABLE1.CONVERSION_RATE_TYPE_CODE CONVERSION_RATE_TYPE_CODE
,TABLE1.CONVERSION_RATE_TYPE CONVERSION_RATE_TYPE
,TABLE1.ENTERED_DR ENTERED_DR
,TABLE1.ENTERED_CR ENTERED_CR
,TABLE1.UNROUNDED_ACCOUNTED_DR UNROUNDED_ACCOUNTED_DR
,TABLE1.UNROUNDED_ACCOUNTED_CR UNROUNDED_ACCOUNTED_CR
,TABLE1.ACCOUNTED_DR ACCOUNTED_DR
,TABLE1.ACCOUNTED_CR ACCOUNTED_CR
,TABLE1.STATISTICAL_AMOUNT STATISTICAL_AMOUNT
,TABLE1.RECONCILIATION_REFERENCE RECONCILIATION_REFERENCE
,TABLE1.JGZZ_RECON_REF JGZZ_RECON_REF
,TABLE1.JGZZ_RECON_DATE JGZZ_RECON_DATE
,TABLE1.JGZZ_RECON_ID JGZZ_RECON_ID
,TABLE1.JGZZ_RECON_STATUS JGZZ_RECON_STATUS
,TABLE1.RECON_STATUS RECON_STATUS
,TABLE1.ATTRIBUTE_CATEGORY ATTRIBUTE_CATEGORY
,TABLE1.ATTRIBUTE1 ATTRIBUTE1
,TABLE1.ATTRIBUTE2 ATTRIBUTE2
,TABLE1.ATTRIBUTE3 ATTRIBUTE3
,TABLE1.ATTRIBUTE4 ATTRIBUTE4
,TABLE1.ATTRIBUTE5 ATTRIBUTE5
,TABLE1.ATTRIBUTE6 ATTRIBUTE6
,TABLE1.ATTRIBUTE7 ATTRIBUTE7
,TABLE1.ATTRIBUTE8 ATTRIBUTE8
,TABLE1.ATTRIBUTE9 ATTRIBUTE9
,TABLE1.ATTRIBUTE10 ATTRIBUTE10
,TABLE1.PARTY_TYPE_CODE PARTY_TYPE_CODE
,TABLE1.PARTY_TYPE PARTY_TYPE
,substr(PARTY_INFO,1,instr(PARTY_INFO,'|',1,1)-1 ) PARTY_NUMBER
,substr(PARTY_INFO,instr(PARTY_INFO,'|',1,1)+1,(instr(PARTY_INFO,'|',1,2)-1-instr(PARTY_INFO,'|',1,1))) PARTY_NAME
,substr(PARTY_INFO,instr(PARTY_INFO,'|',1,2)+1,(instr(PARTY_INFO,'|',1,3)-1-instr(PARTY_INFO,'|',1,2))) PARTY_TYPE_TAXPAYER_ID
,substr(PARTY_INFO,instr(PARTY_INFO,'|',1,3)+1,(instr(PARTY_INFO,'|',1,4)-1-instr(PARTY_INFO,'|',1,3))) PARTY_TAX_REGISTRATION_NUMBER
,substr(PARTY_INFO,instr(PARTY_INFO,'|',1,4)+1,(instr(PARTY_INFO,'|',1,5)-1-instr(PARTY_INFO,'|',1,4))) PARTY_SITE_NUMBER
,substr(PARTY_INFO,instr(PARTY_INFO,'|',1,5)+1,(instr(PARTY_INFO,'|',1,6)-1-instr(PARTY_INFO,'|',1,5))) PARTY_SITE_NAME
,substr(PARTY_INFO,instr(PARTY_INFO,'|',1,6)+1,(length(PARTY_INFO)- instr(PARTY_INFO,'|',1,6))) PARTY_SITE_TAX_RGSTN_NUMBER
,substr(USERIDS,1,instr(USERIDS,'|',1,1)-1) USER_TRX_IDENTIFIER_NAME_1
,substr(USERIDS,instr(USERIDS,'|',1,1)+1,(instr(USERIDS,'|',1,2)-1-instr(USERIDS,'|',1,1))) USER_TRX_IDENTIFIER_VALUE_1
,substr(USERIDS,instr(USERIDS,'|',1,2)+1,(instr(USERIDS,'|',1,3)-1-instr(USERIDS,'|',1,2))) USER_TRX_IDENTIFIER_NAME_2
,substr(USERIDS,instr(USERIDS,'|',1,3)+1,(instr(USERIDS,'|',1,4)-1-instr(USERIDS,'|',1,3))) USER_TRX_IDENTIFIER_VALUE_2
,substr(USERIDS,instr(USERIDS,'|',1,4)+1,(instr(USERIDS,'|',1,5)-1-instr(USERIDS,'|',1,4))) USER_TRX_IDENTIFIER_NAME_3
,substr(USERIDS,instr(USERIDS,'|',1,5)+1,(instr(USERIDS,'|',1,6)-1-instr(USERIDS,'|',1,5))) USER_TRX_IDENTIFIER_VALUE_3
,substr(USERIDS,instr(USERIDS,'|',1,6)+1,(instr(USERIDS,'|',1,7)-1-instr(USERIDS,'|',1,6))) USER_TRX_IDENTIFIER_NAME_4
,substr(USERIDS,instr(USERIDS,'|',1,7)+1,(instr(USERIDS,'|',1,8)-1-instr(USERIDS,'|',1,7))) USER_TRX_IDENTIFIER_VALUE_4
,substr(USERIDS,instr(USERIDS,'|',1,8)+1,(instr(USERIDS,'|',1,9)-1-instr(USERIDS,'|',1,8))) USER_TRX_IDENTIFIER_NAME_5
,substr(USERIDS,instr(USERIDS,'|',1,9)+1,(instr(USERIDS,'|',1,10)-1-instr(USERIDS,'|',1,9))) USER_TRX_IDENTIFIER_VALUE_5
,substr(USERIDS,instr(USERIDS,'|',1,10)+1,(instr(USERIDS,'|',1,11)-1-instr(USERIDS,'|',1,10))) USER_TRX_IDENTIFIER_NAME_6
,substr(USERIDS,instr(USERIDS,'|',1,11)+1,(instr(USERIDS,'|',1,12)-1-instr(USERIDS,'|',1,11))) USER_TRX_IDENTIFIER_VALUE_6
,substr(USERIDS,instr(USERIDS,'|',1,12)+1,(instr(USERIDS,'|',1,13)-1-instr(USERIDS,'|',1,12))) USER_TRX_IDENTIFIER_NAME_7
,substr(USERIDS,instr(USERIDS,'|',1,13)+1,(instr(USERIDS,'|',1,14)-1-instr(USERIDS,'|',1,13))) USER_TRX_IDENTIFIER_VALUE_7
,substr(USERIDS,instr(USERIDS,'|',1,14)+1,(instr(USERIDS,'|',1,15)-1-instr(USERIDS,'|',1,14))) USER_TRX_IDENTIFIER_NAME_8
,substr(USERIDS,instr(USERIDS,'|',1,15)+1,(instr(USERIDS,'|',1,16)-1-instr(USERIDS,'|',1,15))) USER_TRX_IDENTIFIER_VALUE_8
,substr(USERIDS,instr(USERIDS,'|',1,16)+1,(instr(USERIDS,'|',1,17)-1-instr(USERIDS,'|',1,16))) USER_TRX_IDENTIFIER_NAME_9
,substr(USERIDS,instr(USERIDS,'|',1,17)+1,(instr(USERIDS,'|',1,18)-1-instr(USERIDS,'|',1,17))) USER_TRX_IDENTIFIER_VALUE_9
,substr(USERIDS,instr(USERIDS,'|',1,18)+1,(instr(USERIDS,'|',1,19)-1-instr(USERIDS,'|',1,18))) USER_TRX_IDENTIFIER_NAME_10
,substr(USERIDS,instr(USERIDS,'|',1,19)+1,(length(USERIDS)-instr(USERIDS,'|',1,19))) USER_TRX_IDENTIFIER_VALUE_10
,TABLE1.LEDGER_ID LEDGER_ID
,TABLE1.LEDGER_SHORT_NAME LEDGER_SHORT_NAME
,TABLE1.LEDGER_DESCRIPTION LEDGER_DESCRIPTION
,TABLE1.LEDGER_NAME LEDGER_NAME
,TABLE1.LEDGER_CURRENCY LEDGER_CURRENCY
,TABLE1.PERIOD_YEAR PERIOD_YEAR
,TABLE1.PERIOD_NUMBER PERIOD_NUMBER
,TABLE1.PERIOD_NAME PERIOD_NAME
,TABLE1.PERIOD_START_DATE PERIOD_START_DATE
,TABLE1.PERIOD_END_DATE PERIOD_END_DATE
,TABLE1.BALANCE_TYPE_CODE BALANCE_TYPE_CODE
,TABLE1.BALANCE_TYPE BALANCE_TYPE
,TABLE1.BUDGET_NAME BUDGET_NAME
,TABLE1.ENCUMBRANCE_TYPE ENCUMBRANCE_TYPE
,TABLE1.BEGIN_BALANCE_DR BEGIN_BALANCE_DR
,TABLE1.BEGIN_BALANCE_CR BEGIN_BALANCE_CR
,TABLE1.PERIOD_NET_DR PERIOD_NET_DR
,TABLE1.PERIOD_NET_CR PERIOD_NET_CR
,TABLE1.CODE_COMBINATION_ID CODE_COMBINATION_ID
,TABLE1.ACCOUNTING_CODE_COMBINATION ACCOUNTING_CODE_COMBINATION
,&P_ACCT_DESC_SEL CODE_COMBINATION_DESCRIPTION
,TABLE1.CONTROL_ACCOUNT_FLAG CONTROL_ACCOUNT_FLAG
,TABLE1.CONTROL_ACCOUNT CONTROL_ACCOUNT
,TABLE1.BALANCING_SEGMENT BALANCING_SEGMENT
,TABLE1.NATURAL_ACCOUNT_SEGMENT NATURAL_ACCOUNT_SEGMENT
,TABLE1.COST_CENTER_SEGMENT COST_CENTER_SEGMENT
,TABLE1.MANAGEMENT_SEGMENT MANAGEMENT_SEGMENT
,TABLE1.INTERCOMPANY_SEGMENT INTERCOMPANY_SEGMENT
,&P_BALANCING_SEG_DESC BALANCING_SEGMENT_DESC
,&P_ACCOUNT_SEG_DESC NATURAL_ACCOUNT_DESC
,&P_COST_CENTER_SEG_DESC COST_CENTER_DESC
,&P_MANAGEMENT_SEG_DESC MANAGEMENT_SEGMENT_DESC
,&P_INTERCOMPANY_SEG_DESC INTERCOMPANY_SEGMENT_DESC
,TABLE1.SEGMENT1 SEGMENT1
,TABLE1.SEGMENT2 SEGMENT2
,TABLE1.SEGMENT3 SEGMENT3
,TABLE1.SEGMENT4 SEGMENT4
,TABLE1.SEGMENT5 SEGMENT5
,TABLE1.SEGMENT6 SEGMENT6
,TABLE1.SEGMENT7 SEGMENT7
,TABLE1.SEGMENT8 SEGMENT8
,TABLE1.SEGMENT9 SEGMENT9
,TABLE1.SEGMENT10 SEGMENT10
,TABLE1.SEGMENT11 SEGMENT11
,TABLE1.SEGMENT12 SEGMENT12
,TABLE1.SEGMENT13 SEGMENT13
,TABLE1.SEGMENT14 SEGMENT14
,TABLE1.SEGMENT15 SEGMENT15
,TABLE1.SEGMENT16 SEGMENT16
,TABLE1.SEGMENT17 SEGMENT17
,TABLE1.SEGMENT18 SEGMENT18
,TABLE1.SEGMENT19 SEGMENT19
,TABLE1.SEGMENT20 SEGMENT20
,TABLE1.SEGMENT21 SEGMENT21
,TABLE1.SEGMENT22 SEGMENT22
,TABLE1.SEGMENT23 SEGMENT23
,TABLE1.SEGMENT24 SEGMENT24
,TABLE1.SEGMENT25 SEGMENT25
,TABLE1.SEGMENT26 SEGMENT26
,TABLE1.SEGMENT27 SEGMENT27
,TABLE1.SEGMENT28 SEGMENT28
,TABLE1.SEGMENT29 SEGMENT29
,TABLE1.SEGMENT30 SEGMENT30
,TABLE1.BEGIN_RUNNING_TOTAL_CR BEGIN_RUNNING_TOTAL_CR
,TABLE1.BEGIN_RUNNING_TOTAL_DR BEGIN_RUNNING_TOTAL_DR
,TABLE1.END_RUNNING_TOTAL_CR END_RUNNING_TOTAL_CR
,TABLE1.END_RUNNING_TOTAL_DR END_RUNNING_TOTAL_DR
,TABLE1.LEGAL_ENTITY_ID LEGAL_ENTITY_ID
,TABLE1.LEGAL_ENTITY_NAME LEGAL_ENTITY_NAME
,TABLE1.LE_ADDRESS_LINE_1 LE_ADDRESS_LINE_1
,TABLE1.LE_ADDRESS_LINE_2 LE_ADDRESS_LINE_2
,TABLE1.LE_ADDRESS_LINE_3 LE_ADDRESS_LINE_3
,TABLE1.LE_CITY LE_CITY
,TABLE1.LE_REGION_1 LE_REGION_1
,TABLE1.LE_REGION_2 LE_REGION_2
,TABLE1.LE_REGION_3 LE_REGION_3
,TABLE1.LE_POSTAL_CODE LE_POSTAL_CODE
,TABLE1.LE_COUNTRY LE_COUNTRY
,TABLE1.LE_REGISTRATION_NUMBER LE_REGISTRATION_NUMBER
,TABLE1.LE_REGISTRATION_EFFECTIVE_FROM LE_REGISTRATION_EFFECTIVE_FROM
,TABLE1.LE_BR_DAILY_INSCRIPTION_NUMBER LE_BR_DAILY_INSCRIPTION_NUMBER
,TABLE1.LE_BR_DAILY_INSCRIPTION_DATE LE_BR_DAILY_INSCRIPTION_DATE
,TABLE1.LE_BR_DAILY_ENTITY LE_BR_DAILY_ENTITY
,TABLE1.LE_BR_DAILY_LOCATION LE_BR_DAILY_LOCATION
,TABLE1.LE_BR_DIRECTOR_NUMBER LE_BR_DIRECTOR_NUMBER
,TABLE1.LE_BR_ACCOUNTANT_NUMBER LE_BR_ACCOUNTANT_NUMBER
,TABLE1.LE_BR_ACCOUNTANT_NAME LE_BR_ACCOUNTANT_NAME
&p_je_source_period
,TABLE1.SR31 SR31
,TABLE1.SR32 SR32
,TABLE1.SR33 SR33
,TABLE1.SR34 SR34
,TABLE1.SR35 SR35
,TABLE1.SR36 SR36
,TABLE1.SR37 SR37
,TABLE1.SR38 SR38
,TABLE1.SR39 SR39
,TABLE1.SR40 SR40
,TABLE1.SR41 SR41
,TABLE1.SR42 SR42
,TABLE1.SR43 SR43
,TABLE1.SR44 SR44
,TABLE1.SR45 SR45
,TABLE1.SR46 SR46
,TABLE1.SR47 SR47
,TABLE1.SR48 SR48
,TABLE1.SR49 SR49
,TABLE1.SR50 SR50
,TABLE1.SR51 SR51
,TABLE1.SR52 SR52
,TABLE1.SR53 SR53
,TABLE1.SR54 SR54
,TABLE1.SR55 SR55
,TABLE1.SR56 SR56
,TABLE1.SR57 SR57
,TABLE1.SR58 SR58
,TABLE1.SR59 SR59
,TABLE1.SR60 SR60
FROM
(
&P_FINAL_TRNSF_COLS_QUERY
&p_party_columns PARTY_INFO
&p_trx_identifiers USERIDS
&P_FINAL_TRNSF_FROM_QUERY
&p_table_name
&P_FINAL_TRNSF_WHERE_QUERY
&p_ledger_filters
&p_period_date_join1
&p_sla_other_filter
&P_MANUAL_JRNL_COLS_QUERY
&P_MANUAL_JRNL_FROM_QUERY
&p_table_name1
&P_MANUAL_JRNL_WHERE_QUERY
&p_period_date_join2
&p_gl_other_filter
&p_check_mig_stat_query
&p_begin_balance_union_all
)TABLE1
&P_FLEX_FROM_CLAUSE
&P_SEG_FROM_CLAUSE
WHERE
&P_SEG_WHERE_CLAUSE
&P_FLEX_WHERE_CLAUSE
&P_FLEX_SEC_WHERE
&P_ORDER_BY_CLAUSEThe 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 |
|---|---|---|
| XLA_AE_LINES | dimension | dimension |
| XLA_TRANSACTION_ENTITIES | dimension | dimension |
| GL_CODE_COMBINATIONS | dimension | dimension |
| GL_LEDGERS | dimension | dimension |
| Entered Debit | measure | measure |
| Entered Credit | 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 |
|---|---|---|
| XLA_AE_HEADERS | 16 | 19 |
| XLA_AE_LINES | 23 | 17 |
| XLA_TRANSACTION_ENTITIES | 2 | 3 |
| GL_CODE_COMBINATIONS | 7 | 61 |
| GL_LEDGERS | 10 | 104 |