Manual Subledger Journals Report
Journals entered manually in Subledger Accounting rather than generated from transactions — the source, ledger, amount, and account of each — so controllers can review and justify accounting that bypassed the normal subledger flow.
Related Companion to the Subledger Period Close Exceptions Report — both surface accounting that needs a controller's eye before close.
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.
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 Manual Subledger Journals Report — reconciled, and rendered tool-neutral so it runs in Power BI, ThoughtSpot, or Tableau.
| Ledger | Subledger | Journal Source | Account | Entered Debit | Entered Credit | Accounting Date |
|---|---|---|---|---|---|---|
| US Primary | US Primary | Sample | 1000-2100-000 | $1,240,500.00 | $1,240,500.00 | 2026-04-30 |
| EU Primary | EU Primary | — | 1000-5400-000 | $842,150.75 | $842,150.75 | 2026-03-31 |
| US Primary | US Primary | Sample | 1000-1410-000 | $96,400.00 | $96,400.00 | 2026-02-28 |
| UK Primary | UK Primary | — | 2000-2100-000 | $1,005,233.10 | $1,005,233.10 | 2026-01-31 |
| US Primary | US Primary | Sample | 1000-6300-000 | $58,720.40 | $58,720.40 | 2025-12-31 |
| US Primary | US Primary | Sample | 1000-2100-000 | $1,240,500.00 | $1,240,500.00 | 2026-04-30 |
The report ties XLA_AE_LINES and XLA_AE_HEADERS to their GL import references, isolating lines whose source is manual rather than a transaction.
Seven manual subledger journals totaling $410K have no attachment or description — they will not survive audit, and manual SLA entries are what auditors sample first.
Require a reason and attachment on manual SLA journals; for the seven flagged, attach support now or reverse them before close.
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_IMPORT_REFERENCES
- GL_JE_LINES
- GL_JE_HEADERS
- GL_JE_BATCHES
- XLA_AE_HEADERS
- XLA_AE_LINES
- XLA_SUBLEDGERS_VL
- GL_LEDGERS
- XLA_TRANSACTION_ENTITIES
- XLE_ENTITY_PROFILES
- FND_LOOKUP_VALUES
- XLA_EVENT_TYPES_TL
Show / hide SQL
WITH batch_info AS (
SELECT
gir.GL_SL_LINK_ID,
gir.GL_SL_LINK_TABLE,
gjb.NAME AS accounting_batch_name,
gjb.RUNNING_TOTAL_DR AS batch_total_debit,
gjb.RUNNING_TOTAL_CR AS batch_total_credit
FROM GL_IMPORT_REFERENCES gir
JOIN GL_JE_LINES gjl ON gir.JE_HEADER_ID = gjl.JE_HEADER_ID AND gir.JE_LINE_NUM = gjl.JE_LINE_NUM
JOIN GL_JE_HEADERS gjh ON gjl.JE_HEADER_ID = gjh.JE_HEADER_ID
JOIN GL_JE_BATCHES gjb ON gjh.JE_BATCH_ID = gjb.JE_BATCH_ID
)
SELECT
xsv.APPLICATION_NAME,
gl.NAME AS ledger,
Initcap(xte.ENTITY_CODE) AS entity,
Initcap(xah.EVENT_TYPE_CODE) AS event_type,
xal.CURRENCY_CODE as currency,
TO_CHAR(xah.ACCOUNTING_DATE, 'DD Mon YYYY', 'NLS_DATE_LANGUAGE = ENGLISH') AS ACCOUNTING_DATE,
xah.GL_TRANSFER_STATUS_CODE AS GL_TRANSFER_STATUS,
TO_CHAR(xah.GL_TRANSFER_DATE, 'DD Mon YYYY', 'NLS_DATE_LANGUAGE = ENGLISH') AS GL_TRANSFER_DATE,
xah.JE_CATEGORY_NAME AS journal_entry_category,
xah.ACCOUNTING_ENTRY_STATUS_CODE AS accounting_entry_status,
bi.accounting_batch_name,
flv.MEANING AS balance_type,
xah.description,
TO_CHAR(xah.COMPLETED_DATE, 'DD Mon YYYY', 'NLS_DATE_LANGUAGE = ENGLISH') AS COMPLETED_DATE,
xah.PERIOD_NAME,
TO_CHAR(xah.CREATION_DATE, 'DD Mon YYYY', 'NLS_DATE_LANGUAGE = ENGLISH') AS CREATION_DATE,
xah.CREATED_BY,
TO_CHAR(xah.LAST_UPDATE_DATE, 'DD Mon YYYY', 'NLS_DATE_LANGUAGE = ENGLISH') AS LAST_UPDATE_DATE,
xah.LAST_UPDATED_BY,
xah.ACCRUAL_REVERSAL_OPTION_CODE,
gcc.SEGMENT1 || '.' || gcc.SEGMENT2 || '.' || gcc.SEGMENT3 || '.' || gcc.SEGMENT4 || '.' || gcc.SEGMENT5 || '.' || gcc.SEGMENT6 || '.' || gcc.SEGMENT7|| '.' || gcc.SEGMENT8|| '.' || gcc.SEGMENT9 AS account,
xal.ENTERED_DR AS line_entered_debit,
xal.ENTERED_CR AS line_entered_credit,
xal.ACCOUNTED_DR batch_total_debit,
xal.ACCOUNTED_CR batch_total_credit,
xep.NAME AS legal_entity_name,
xep.LEGAL_ENTITY_IDENTIFIER AS legal_entity_code
FROM XLA_AE_HEADERS xah
JOIN XLA_AE_LINES xal ON xah.AE_HEADER_ID = xal.AE_HEADER_ID
JOIN XLA_SUBLEDGERS_VL xsv ON xah.APPLICATION_ID = xsv.APPLICATION_ID
JOIN GL_LEDGERS gl ON xah.LEDGER_ID = gl.LEDGER_ID
LEFT JOIN XLA_TRANSACTION_ENTITIES xte ON xah.ENTITY_ID = xte.ENTITY_ID
LEFT JOIN XLE_ENTITY_PROFILES xep ON xte.LEGAL_ENTITY_ID = xep.LEGAL_ENTITY_ID
JOIN FND_LOOKUP_VALUES flv ON xah.BALANCE_TYPE_CODE = flv.LOOKUP_CODE
AND flv.LANGUAGE = 'US'
AND flv.LOOKUP_TYPE = 'XLA_BALANCE_TYPE'
JOIN XLA_EVENT_TYPES_TL xet ON xah.APPLICATION_ID = xet.APPLICATION_ID
AND xah.EVENT_TYPE_CODE = xet.EVENT_TYPE_CODE
AND xet.LANGUAGE = 'US'
AND UPPER(xet.NAME) = UPPER('Manual')
JOIN GL_CODE_COMBINATIONS gcc ON xal.CODE_COMBINATION_ID = gcc.CODE_COMBINATION_ID
LEFT JOIN batch_info bi ON xal.GL_SL_LINK_ID = bi.GL_SL_LINK_ID AND xal.GL_SL_LINK_TABLE = bi.GL_SL_LINK_TABLE
WHERE
xah.ACCOUNTING_DATE >= :p_from_date
AND xah.ACCOUNTING_DATE <= :p_to_date
AND xsv.APPLICATION_NAME IN (:p_application_name)
AND gl.NAME IN (:p_ledger_name)
ORDER BY
bi.accounting_batch_nameThe 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_JE_LINES | dimension | dimension |
| GL_JE_HEADERS | dimension | dimension |
| GL_JE_BATCHES | dimension | dimension |
| XLA_AE_HEADERS | 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 |
|---|---|---|
| GL_IMPORT_REFERENCES | Setup / configuration table — joined for reference, not exposed for analytics | |
| GL_JE_LINES | 26 | 2 |
| GL_JE_HEADERS | 34 | 2 |
| GL_JE_BATCHES | 14 | 2 |
| XLA_AE_HEADERS | 16 | 19 |
| XLA_AE_LINES | 23 | 17 |
| XLA_SUBLEDGERS_VL | 1 | 1 |
| GL_LEDGERS | 10 | 104 |
| XLA_TRANSACTION_ENTITIES | 2 | 3 |
| XLE_ENTITY_PROFILES | 73 | 161 |
| FND_LOOKUP_VALUES | Setup / configuration table — joined for reference, not exposed for analytics | |
| XLA_EVENT_TYPES_TL | 3 | 6 |