- Home
- S/4HANA
- Universal Journal
The SAP Universal Journal: from classic G/L to ACDOCA
How SAP’s general ledger went from a dozen tables per posting to one, in four steps. Which tables were merged, which are still tables, which became views, and the facts key users and consultants rarely hear.
- Classic G/L
- New G/L
- Simple Finance
- ACDOCA
- BKPF and BSEG
- Compatibility views
BSEG · entry view2 lines
| BUZEI | Account | Cost ctr | Amount |
|---|---|---|---|
| 001 | Supplier 100025 | −1,000.00 | |
| 002 | 61001000 | 1010 | 1,000.00 |
ACDOCA · ledger view4 lines
| RLDNR | DOCLN | RACCT | RCNTR | HSL |
|---|---|---|---|---|
| 0L | 000001 | 21100000 | −1,000.00 | |
| 0L | 000002 | 61001000 | 1010 | 1,000.00 |
| 2L | 000001 | 21100000 | −1,000.00 | |
| 2L | 000002 | 61001000 | 1010 | 1,000.00 |
Illustrative. BSEG keeps what was entered, once; ACDOCA keeps one set of lines per ledger, here the leading ledger 0L and a parallel ledger 2L, with the cost center on the same line as the G/L account.
What is the Universal Journal?
The Universal Journal is the single line item table of SAP S/4HANA accounting. Every actual posting of the general ledger, controlling, asset accounting, the material ledger and margin analysis lands in one table, ACDOCA, one line per item and per ledger, with the G/L account, the cost center, the profit center, the segment and the market segment on the same row.
It is the end of a 25-year road. SAP R/3 wrote one posting to a dozen tables: line items, index tables, totals tables and a separate world for controlling. The new G/L of 2004 cleaned up the ledger but kept controlling apart. SAP HANA made totals unnecessary, and in 2015 SAP Simple Finance 1503 merged everything into ACDOCA.
For the deep dive into ACDOCA’s fields, codes and queries, see ACDOCA, ACDOCP and ACDOCU. This page tells how SAP got there and what it means for the tables you knew.
The Universal Journal in four numbers
- 13 → 5
tables written by one vendor invoice to a cost center: thirteen in SAP ECC with new G/L and profit center accounting, five in SAP S/4HANA.
- 999
entry lines is still the limit per document, because BSEG counts lines in three digits. ACDOCA counts in six, so it can hold more detail than BSEG, never less.
- 10
currencies per ledger: company code, global and eight freely defined. SAP ERP had three in FI, two in controlling and three in the material ledger.
- 000
is the period of the balance carryforward: lines in ACDOCA with no BKPF header and no BSEG behind them, so FB03 cannot open them.
Evolution
From classic G/L to the Universal Journal in four steps
Each step fixed what hurt in the one before. Pick a step to see where a posting was written, what it solved and what was still painful.
Step 1 · SAP R/3, July 1992
Classic general ledger
The general ledger of SAP R/3, kept in SAP ERP for customers who never moved on. One totals table, GLT0, holds the balance of every account by company code, business area and currency. Line items sit in BKPF and BSEG, with index tables for open and cleared items, and controlling keeps its own documents and totals.
Where a posting was written
- BKPF
- BSEG
- BSIS
- BSAS
- BSID
- BSAD
- BSIK
- BSAK
- GLT0
- KNC1
- LFC1
- COEP
- COSP
- COSS
- GLPCA
- GLPCT
- ANEP
- ANLC
What it solved
- One integrated G/L: customers, suppliers, assets and stock post to it document by document
- Fast open item lists and clearing through index tables
- Controlling in real time, with its own documents and totals
What still hurt
- Profit center and segment views lived in side ledgers: profit center accounting (EC-PCA) and the special ledger
- Month-end transfers: 1KEK moved payables, receivables and stock to profit centers; SAPF180 built business area balance sheets
- Controlling postings across company codes reached FI only through the reconciliation ledger, run at period end
Did you know? GLT0 stores periods as columns, not rows: TSL01 to TSL16 in transaction currency, HSL01 to HSL16 in local currency and KSL01 to KSL16 in group currency. Twelve periods and four special periods sit in every record.
Step 2 · mySAP ERP 2004 (ECC 5.0), June 2004
New general ledger
A new G/L delivered with mySAP ERP 2004 and the default for new installations from then on. Its totals table FAGLFLEXT carries profit center, segment, functional area and customer fields, and its line items FAGLFLEXA are written once per ledger.
Where a posting was written
- BKPF
- BSEG
- FAGLFLEXA
- FAGLFLEXT
- BSIS
- BSAS
- FAGLBSIS
- FAGLBSAS
- BSID
- BSAD
- BSIK
- BSAK
- KNC1
- LFC1
- COEP
- COSP
- COSS
- ANEP
- ANLC
What it solved
- Document splitting: a full balance sheet per profit center or segment
- Parallel ledgers: leading ledger 0L plus non-leading ledgers for other accounting principles
- Real-time integration of controlling into FI, replacing the reconciliation ledger
- A faster close: no 1KEK transfer, no SAPF180 adjustment run
What still hurt
- FI and controlling still kept separate line items, FAGLFLEXA and COEP, with separate totals to reconcile
- Every posting still filled index and totals tables as well as line items
- Moving from classic to new G/L was a project of its own, run with SAP’s General Ledger Migration service and its eight scenarios
Did you know? Classic G/L stayed available in SAP ERP for upgraded systems, but a new customer who wanted it after 2004 had to ask SAP for permission through a support message before go-live.
Step 3 · SAP Simple Finance add-on 1.0, 2014
SAP Simple Finance
An add-on for SAP Business Suite on SAP HANA. It first shipped in early 2014 as SAP Smart Financials 1.0. SAP HANA adds up line items fast enough to drop the totals and index tables: GLT0, FAGLFLEXT, KNC1, LFC1, COSP, COSS, BSIS, BSIK and their siblings became views with the same names.
Where a posting was written
- BKPF
- BSEG
- FAGLFLEXA
- COEP
- ANEP
- ANLC
- MLIT
What it solved
- No totals or index tables to update, reconcile or archive
- Reports read line items directly, at any level of detail
- Existing programs kept working: their SELECTs were answered by the views
What still hurt
- FI and controlling were still two line item tables, linked by a logical document
- Asset accounting and the material ledger kept their own tables
Did you know? The first name did not last. SAP renamed Smart Financials to Simple Finance within months, and the story told at SAP’s own training events is that calling the new product smart made the old one sound dumb. SAP Note 1976487 still carries the original name.
Step 4 · SAP Simple Finance 1503, 2015, then every SAP S/4HANA release
Universal Journal
SAP Simple Finance, on-premise edition 1503, put the actual line items of the G/L, controlling, asset accounting, the material ledger and account-based profitability analysis into one table, ACDOCA. Cost elements became G/L accounts. Since SAP S/4HANA 1511 it is the accounting core of every SAP S/4HANA system.
Where a posting was written
- BKPF
- BSEG
- ACDOCA
What it solved
- FI and controlling cannot drift apart: they are the same line
- No reconciliation between the G/L and controlling, assets or inventory
- Every report, from trial balance to margin analysis, reads the same table
What to watch
- Custom code that writes to replaced tables must be rewritten
- Costing-based CO-PA, special ledgers and classic profit center accounting stay outside
- ACDOCA grows fast: plan archiving and partitioning early
Did you know? ACDOCA is wide: depending on the release and your operating concern it has several hundred fields, with one column for every margin analysis characteristic.
- BKPF still a table today
- GLT0 replaced in a later step
- ACDOCA the Universal Journal
Milestones
- Jul 1992SAP R/3Classic G/L: totals in GLT0, line items in BKPF and BSEG.
- Jun 2004mySAP ERP 2004 (ECC 5.0)The new G/L: document splitting, parallel ledgers, real-time integration with controlling.
- Jan 2013SAP Business Suite on SAP HANASAP ERP runs on SAP’s in-memory database; cluster tables are declustered.
- Feb 2014SAP Smart Financials 1.0First go-lives of the add-on that drops totals and index tables.
- Jun 2014Renamed SAP Simple FinanceAnnounced under the new name at SAPPHIRE NOW.
- Feb 2015SAP S/4HANA launchedPresented on 3 February 2015 in New York.
- Mar 2015SAP Simple Finance 1503The Universal Journal: ACDOCA, and cost elements as G/L accounts.
- Nov 2015SAP S/4HANA 1511Finance and logistics in one product, MATDOC for inventory, material ledger for everyone.
- Oct 2016SAP S/4HANA 1610Ten currencies per ledger, plan data in ACDOCP, actual costing in MLDOC.
- Sep 2017SAP S/4HANA 1709Document splitting can be introduced after go-live.
- Sep 2018SAP S/4HANA 1809Predictive accounting, commitments in ACDOCA, new currencies in a live system, group reporting on premise.
- Oct 2022SAP S/4HANA 2022Universal parallel accounting, for new installations.
- Oct 2025SAP S/4HANA 2025The current on-premise release, also sold as SAP Cloud ERP Private.
- Dec 2027End of mainstream maintenance for SAP ERP 6.0Optional extended maintenance runs to the end of 2030.
Then and now
One posting, then and now
The fastest way to see what the Universal Journal changed: follow one business transaction and count the tables it writes. Pick a transaction.
SAP ECC 6.0 wrote
New G/L and classic profit center accounting active
- BKPFDocument header
- BSEGLine items, then a cluster table
- BSETTax data
- BSIKSupplier open item index
- LFC1Supplier totals per period
- BSISG/L line item index for the expense and tax accounts
- FAGLFLEXANew G/L line items, per ledger
- FAGLFLEXTNew G/L totals
- COBKControlling document header
- COEPControlling line item on the cost center
- COSPControlling totals, primary costs
- GLPCAProfit center line item
- GLPCTProfit center totals
SAP S/4HANA writes
Same invoice, any number of ledgers
- BKPFHeader
- BSEGEntry view: the supplier open item lives here
- BSETTax data
- ACDOCALedger view: every line, per ledger, with cost center and profit center
- COBKControlling document header
What changed. Supplier balances, G/L balances, cost center reports and profit center reports all read the same ACDOCA lines. Nothing to reconcile, and nothing to transfer to profit centers at month end.
SAP ECC 6.0 wrote
Inside one company code and profit center; across them, real-time integration also wrote an FI document
- COBKControlling document header
- COEPSender and receiver lines on a secondary cost element
- COSSControlling totals, secondary costs
SAP S/4HANA writes
Every allocation is a journal entry
- BKPFHeader, with its own journal entry number
- ACDOCASender and receiver lines on a G/L account of type Secondary Costs
- COBKControlling document header
What changed. Same count, new meaning: the allocation is now a journal entry on G/L accounts, seen at once by the G/L, profit center and segment reports. It has no BSEG lines, so FBL3H does not show it; FAGLL03H does.
SAP ECC 6.0 wrote
Depreciation posted to cost centers, new G/L
- BKPFDocument header
- BSEGLine items, summarized per account and cost center
- FAGLFLEXANew G/L line items
- FAGLFLEXTNew G/L totals
- ANLPPosted depreciation per asset and period
- ANLCAsset values per year, posted depreciation updated
- COBKControlling document header
- COEPControlling line item on the cost center
- COSPControlling totals, primary costs
SAP S/4HANA writes
SAP S/4HANA 1809 or later
- BKPFHeader, status U: posted in the general ledger only
- ACDOCADepreciation per asset, per ledger, with the cost center
- COBKControlling document header
What changed. Since 1809 the depreciation run writes no BSEG lines at all. The posted depreciation per asset, which ANLP used to hold, is now an ACDOCA line with the asset number on it.
SAP ECC 6.0 wrote
FAGLGVTR in the new G/L, customers and suppliers included
- FAGLFLEXTCarryforward balance in the new year’s totals record
- KNC1Customer carryforward balance
- LFC1Supplier carryforward balance
SAP S/4HANA writes
FAGLGVTR or the app Carry Forward Balances
- ACDOCALines in period 000 with status C and transaction type RFBC; no BKPF, no BSEG
What changed. The carryforward is the only stored balance left. It has no document behind it, so FB03 cannot open it, and later postings to the old year correct it automatically.
Typical tables, not an exhaustive trace: the exact list depends on configuration, for example tax, document splitting, the number of ledgers and whether classic profit center accounting is active.
Table map
The table map: what happened to each table
The finance tables of SAP ERP and where their data lives in SAP S/4HANA. Most kept their name as a compatibility view, so old reports still read them; a few are still real tables; some were never merged.
- Now a view35kept their name; every read is answered by a compatibility view
- Partly a view7actuals come from ACDOCA, the rest stays in the table
- Still a table10written as before, beside ACDOCA
- Not merged7outside the Universal Journal
- New in S/4HANA8tables SAP ERP did not have
67 tables
| Table | What it held in SAP ERP | What happened | In SAP S/4HANA |
|---|---|---|---|
GLT0Classic G/L | Totals per account, business area and currency, with periods 01 to 16 as columns | Now a view | View GLT0 (DDL source GLT0_DDL): balances added up from ACDOCA when read. Pre-conversion data in GLT0_BCK. |
BSISG/L | Index of open items and line items of G/L accounts | Now a view | View on BSEG and BKPF, not on ACDOCA. Pre-conversion data in BSIS_BCK. |
BSASG/L | Index of cleared G/L items | Now a view | View on BSEG and BKPF. Pre-conversion data in BSAS_BCK. |
BSIDReceivables | Customer open items | Now a view | View on BSEG and BKPF. Pre-conversion data in BSID_BCK. |
BSADReceivables | Customer cleared items | Now a view | View on BSEG and BKPF. Pre-conversion data in BSAD_BCK. |
BSIKPayables | Supplier open items | Now a view | View on BSEG and BKPF. Pre-conversion data in BSIK_BCK. |
BSAKPayables | Supplier cleared items | Now a view | View on BSEG and BKPF. Pre-conversion data in BSAK_BCK. |
KNC1 · KNC3Receivables | Customer totals per period, and special G/L totals | Now a view | Views (DDL sources KNC1_DDL, KNC3_DDL): totals calculated when read. Pre-conversion data in the _BCK tables. |
LFC1 · LFC3Payables | Supplier totals per period, and special G/L totals | Now a view | Views (DDL sources LFC1_DDL, LFC3_DDL): totals calculated when read. Pre-conversion data in the _BCK tables. |
FAGLFLEXTNew G/L | Totals per ledger, with profit center, segment and more | Now a view | View (DDL source V_FAGLFLEXT_DDL) adding up ACDOCA. Pre-conversion data in FAGLFLEXT_BCK. |
FAGLFLEXANew G/L | Line items per ledger | Now a view | View FGLV_FAGLFLEXA on ACDOCA. It cannot be extended any more; the original data is in V_FAGLFLEXA_ORI. |
FAGLBSIS · FAGLBSASNew G/L | Open and cleared item index per ledger | Now a view | Views (DDL sources _DDL). Pre-conversion data in FAGLBSIS_BCK and FAGLBSAS_BCK. |
JVGLFLEXA · JVGLFLEXTJoint venture | Joint venture accounting ledger: line items and totals | Now a view | Views FGLV_JVGLFLEXA and FGLV_JVGLFLEXT; the data is in ACDOCA. |
FMGLFLEXA · FMGLFLEXTFunds management | Funds management ledger: line items and totals | Now a view | Views FGLV_FMGLFLEXA and FGLV_FMGLFLEXT; the data is in ACDOCA. |
PSGLFLEXA · PSGLFLEXTPublic sector | Public sector ledger: line items and totals | Now a view | Views FGLV_PSGLFLEXA and FGLV_PSGLFLEXT; the data is in ACDOCA. |
ANEKAssets | Asset document header | Now a view | View FAAV_ANEK; the header data is now in BKPF and ACDOCA. |
ANEPAssets | Asset line items | Now a view | View FAAV_ANEP; actual values in ACDOCA, statistical items in FAAT_DOC_IT. |
ANEAAssets | Proportional values on asset line items | Now a view | View FAAV_ANEA; the values are in ACDOCA. |
ANLPAssets | Posted depreciation per asset and period | Now a view | View FAAV_ANLP; the values are in ACDOCA. |
ANLCAssets | Asset values per fiscal year and depreciation area | Now a view | View FAAV_ANLC; actual values from ACDOCA, planned values from FAAT_PLAN_VALUES. |
MLHD · MLIT · MLPP · MLCR · MLCDMaterial ledger | Material ledger documents and period records | Now a view | Views V_MLHD, V_MLIT and so on; inventory values are in ACDOCA. Since 1610 actual costing writes MLDOC and MLDOCCCS, with no table-level compatibility view. |
CKMI1Material ledger | Index of accounting documents for materials | Now a view | View V_CKMI1; the data is in ACDOCA. |
BSIMMaterials | Index of accounting documents per material | Now a view | View V_BSIM (DDL source BSIM_DDL); the data is in ACDOCA. |
T012K · T012TBanks | House bank accounts and their texts | Now a view | Views V_T012K_BAM and V_T012T_BAM: the accounts moved to Bank Account Management, not to ACDOCA. |
COEPControlling | Line items of all value types | Partly a view | Actuals (value type 04) only in ACDOCA; statistical actuals (11) in both; plan and other value types stay in COEP. Reads go through V_COEP_VIEW (V_COEP in early releases); original data in V_COEP_ORI. |
COSPControlling | Totals, primary costs | Partly a view | Actuals added up from ACDOCA, other value types from COSP_BAK, through view V_COSP_DDL. For actuals, read ACDOCA (SAP Note 2185026). |
COSSControlling | Totals, secondary costs | Partly a view | Actuals added up from ACDOCA, other value types from COSS_BAK, through view V_COSS_DDL. |
MBEW · EBEW · QBEW · OBEWValuation | Material valuation: price control, prices, stock quantity and value | Partly a view | Master data such as prices stays in the table; stock quantity and value are read through view MBV_MBEW from ACDOCA and ACDOCA_M_EXTRACT. The history tables (MBEWH and others) work the same way. |
BKPFHeader | Accounting document header | Still a table | Header of almost every journal entry, controlling postings included. Only the balance carryforward has none. |
BSEGLine items | Line items, a cluster table in SAP ERP | Still a table | Transparent table and the entry view: lines as entered, once, where open items are managed. Still up to 999 lines per document. |
BSETTax | Tax data per document | Still a table | Written as before. |
BSECOne-time accounts | Name and address of one-time customers and suppliers | Still a table | Written as before. |
BSEDBills of exchange | Bill of exchange fields | Still a table | Written as before. |
BSIPDuplicate check | Index for the duplicate invoice check | Still a table | Written as before. |
FAGL_SPLINFO · FAGL_SPLINFO_VALDocument splitting | Split information and split values of open items | Still a table | Written as before; document splitting still needs them. |
BSEG_ADDAdditional ledgers | Entry view of accounting documents for additional ledgers | Still a table | A table beside BSEG. |
COBKControlling | Controlling document header | Still a table | Written as before for controlling postings. |
GLPCA · GLPCTProfit centers | Classic profit center accounting: line items and totals | Not merged | Not merged. Profit center is a field of ACDOCA; classic PCA can still run but is not the target, and switching it off needs no data migration (SAP Note 2425255). |
CE1xxxx · CE2xxxx · CE3xxxx · CE4xxxxProfitability | Costing-based CO-PA: line items, plan items, segment level and segment table | Not merged | Not merged. Costing-based CO-PA keeps its own tables; margin analysis, the account-based form, is in ACDOCA with one column per characteristic. |
FI-SL tablesSpecial ledger | Special purpose ledgers with their own totals and line item tables | Not merged | Not merged: special ledgers keep their own tables. Most reasons to use one, such as parallel ledgers and extra fields, are now covered by ACDOCA. |
ACDOCAUniversal Journal | Did not exist | New in S/4HANA | Actual line items of the G/L, controlling, assets, material ledger and margin analysis, one line per item and ledger. |
ACDOCPPlan | Did not exist | New in S/4HANA | Plan line items with the structure of ACDOCA, since SAP S/4HANA 1610. |
ACDOCUConsolidation | Did not exist | New in S/4HANA | Consolidation journal entries of SAP S/4HANA Finance for group reporting. |
ACDOCA_M_EXTRACTInventory | Did not exist | New in S/4HANA | Small extract of ACDOCA for inventory valuation, compacted at the period shift (MMPV): one closing record per material, year 9999, period 999. |
MLDOC · MLDOCCCSActual costing | Did not exist | New in S/4HANA | Material ledger documents and their cost component split, since SAP S/4HANA 1610. |
FAAT_DOC_IT · FAAT_PLAN_VALUESAssets | Did not exist | New in S/4HANA | Statistical asset line items, and planned depreciation values. |
No table matches. Try a shorter word, or pick All.
So, how many merged tables are still tables?
None of the index and totals tables. Of the tables whose data went into the Universal Journal, only the controlling tables
COEP,COSPandCOSSkeep part of it, plan and other non-actual values, and the material valuation tables such asMBEWkeep their master data.BKPFandBSEGwere never merged; they live beside ACDOCA.Check names in your own release
View names changed between releases: BSIS was answered by BSIS_DDL in Simple Finance, and SAP S/4HANA 1909 and later also have CDS views such as BSIS_VIEW. In SE11, open the table and choose Extras › Proxy Object (Replacement Object in some releases) to see what really answers.
Entry view and ledger view
BKPF and BSEG are still here, with a new job
BKPF stays the header of almost every journal entry. BSEG became the entry view: the lines as they were entered, once, ledger-independent, where open items are managed. ACDOCA is the ledger view: one set of lines per ledger, including split lines and lines that exist only in the general ledger.
| Topic | BSEG entry view | ACDOCA ledger view |
|---|---|---|
| Lines | As entered, once per document | One set per ledger, with split and clearing lines |
| Line number | BUZEI, 3 digits: up to 999 | DOCLN, 6 digits: up to 999,999 |
| Currencies | Up to three local currencies | Up to ten per ledger |
| Open items | Managed and cleared here | Carries the clearing data |
| Custom fields | Coding block fields | Coding block fields plus fields from Custom Fields and Logic |
| SAP GUI | FBL3H FB03 | FAGLL03H FB03 › General Ledger View |
| SAP Fiori | F2218 Display Line Item Entry | F2217 Display Line Items in General Ledger |
Journal entries with no BSEG lines
They exist only in the ledger view, so FBL3N and FBL3H never show them. In BKPF, status U means posted in the general ledger only.
- Allocations, reposting and settlementControlling postings write BKPF and ACDOCA only.
- Depreciation runSince SAP S/4HANA 1809, the depreciation documents go to ACDOCA only.
- Foreign currency valuationA header and general ledger lines, with no entry view.
- Balance carryforwardNo BKPF either: lines in period 000 with status C.
- Migration correction linesCreated by the conversion and marked with status C.
F5727The 999-line wall is still there
A document with more than 999 entry lines fails with message F5727, by design and in every channel, APIs included. Summarizing BSEG helps for G/L lines, but supplier, GR/IR and tax lines are never summarized.
OBCYXACDOCA can be finer, never coarser
BSEG summarization is set in OBCYX, and ACDOCA may keep more detail than BSEG but never less (message FINS_ACDOC_CUST 233). One SD tax line in BSEG can become several tax lines in ACDOCA.
BSET · BSEC · BSIPThe rest of the FI family stayed
Tax data (BSET), one-time account data (BSEC), bill of exchange fields (BSED), the duplicate invoice index (BSIP) and the document splitting tables (FAGL_SPLINFO) are not in SAP’s list of replaced tables: they are written as before.
Compatibility views
Compatibility views: how old reports kept working
SAP did not delete GLT0 or BSIK. It gave each replaced table a view that answers every SELECT in the old layout, built when you read it. Follow one SELECT to see where the data really comes from.
- 1 · Your program
SELECT * FROM BSIKA report, a query or SE16N, written for SAP ERP.
- 2 · Redirected
BSIK_DDL · BSIK_VIEWA compatibility view with BSIK’s old structure; the name depends on the release.
- 3 · Reads
BSEG + BKPFSupplier lines that are still open, taken from the entry view.
- 4 · You getOpen supplier items, old layout
No ledger field: open items belong to the entry view.
- 1 · Your program
SELECT * FROM GLT0A report, a query or SE16N, written for SAP ERP.
- 2 · Redirected
GLT0 · GLT0_DDLA view with the old totals structure, periods as columns.
- 3 · Reads
ACDOCALine items added up by account, period and currency at read time.
- 4 · You getBalances in 16 period columns
Exactly as classic G/L programs expect them.
- 1 · Your program
SELECT * FROM COSSA report, a query or SE16N, written for SAP ERP.
- 2 · Redirected
V_COSS_DDLOne view over two sources, so reports still see one table.
- 3 · Reads
ACDOCA + COSS_BAKActual values from ACDOCA; plan and other value types from the old table, renamed.
- 4 · You getSecondary cost totals, all value types
Plan and actual side by side, as in SAP ERP.
- 1 · Your program
SELECT * FROM FAGLFLEXAA report, a query or SE16N, written for SAP ERP.
- 2 · Redirected
FGLV_FAGLFLEXAThe runtime object that answers for the old new G/L line item table.
- 3 · Reads
ACDOCAOne line per item and ledger: the same rows FAGLFLEXA used to hold.
- 4 · You getNew G/L line items
With ledger, profit center and segment.
Reading works, writing does not
Only SELECTs are redirected. INSERT, UPDATE or MODIFY on a replaced table must go from custom code (SAP Note 1976487); the S4HANA_READINESS checks in ATC find them.
List every redirected table
Table DD02L shows the redirect in field VIEWREF: select where it is not empty and you get every table with a proxy object in your system. The view logic itself shows in ABAP Development Tools.
The pre-conversion data is kept
The original contents stay readable: backup tables such as BSIS_BCK, FAGLFLEXT_BCK or COSP_BAK, and views such as V_COEP_ORI or V_FAGLFLEXA_ORI. Useful to prove a migration matched.
SE16N on a view can be slow
A view adds up lines on every read. SE16N on COSP, COSS or COEP across a big controlling area can run out of memory (SAP Notes 3127377 and 2793263): restrict it, or read ACDOCA.
For key users
For key users: where to look, and why numbers differ
Most surprises come from mixing the entry view and the ledger view. Know which one a report reads and the “missing” document usually turns up.
| Transaction or app | What it shows | Reads |
|---|---|---|
FAGLL03H | G/L line item browser. Ledger view: asks for a ledger. Carryforward and migration lines are not listed. | ACDOCA |
FBL3H | G/L line items, entry view. Journal entries without BSEG lines never appear here. | BSEG |
FB03 | Display a journal entry. Opens in the entry view; General Ledger View switches to the leading ledger, Other Ledger to any other. | Both |
FAGLB03 | G/L account balances. Period by period, per ledger, carryforward included. | ACDOCA |
F2217 | Display Line Items in General Ledger. The Fiori ledger view, with every ACDOCA field. | ACDOCA |
F2218 | Display Line Item Entry. The Fiori entry view, from BSEG with header fields from BKPF. | BSEG |
F0707 | Display G/L Account Balances. Balances by period with drill-down to the line items. | ACDOCA |
F0708 | Display Financial Statement. Balance sheet and P&L along a financial statement version. | ACDOCA |
F3664 | Display Journal Entries – In T-Account View. A journal entry drawn as T-accounts, ledger by ledger. | ACDOCA |
F1596 | Carry Forward Balances. The app version of FAGLGVTR; writes the period 000 lines. | ACDOCA |
A document is missing in FBL3N or FBL3H
It may exist only in the ledger view: allocations, depreciation runs since 1809, foreign currency valuation. Look in FAGLL03H or F2217, or open it in FB03 and press General Ledger View.
Two apps, two balances
F2217 includes valuation lines that exist only in the general ledger; F2218 does not. SAP calls this standard behavior, not an error (KBA 3045502).
Pick the ledger before you add up
ACDOCA repeats every line for each ledger. A sum without a ledger filter counts the same invoice twice, or more.
Period 000 is not a document
The carryforward has no header, so FB03 cannot open it and line item lists skip it. Balances and the trial balance still include it.
Cost elements became G/L accounts
KA01, KA02 and KA03 lead to FS00. Cost elements are G/L accounts of type Primary Costs or Revenue, or Secondary Costs, with a cost element category per controlling area. Cost element groups remain.
Journal entry is the new word
SAP Fiori and SAP documentation call an accounting document a journal entry, as in the app Manage Journal Entries. Same thing, same number.
For consultants
For consultants: things few people know
Details that save hours in custom code, reconciliations and design workshops.
I_JournalEntryItemRead ACDOCA, not the old names
Compatibility views rebuild old layouts on every read. In custom code read ACDOCA or the released CDS view I_JournalEntryItem; for controlling value types 04 and 11, SAP recommends ACDOCA directly (SAP Notes 2185026 and 2602107).
POPER 000 · BSTAT CLeave out carryforward and migration lines
CDS views such as I_GLAccountLineItem can return carryforward lines. Filter out period 000 or status C when you want movements only (KBA 3016757).
APIThe read API depends on the view
The API Accounting Document – Read returns the entry view only. For the ledger view use the journal entry item API, A_JournalEntryItemBasic (KBA 2821106).
Custom fieldsWhere extension fields land
Coding block fields go to both BSEG and ACDOCA. Fields added with Custom Fields and Logic go to ACDOCA only, so they appear in the ledger view only (KBA 2829788).
FI_DOCUMENT_CHANGEChanging documents in code
This function module updates BSEG but not ACDOCA (KBA 2713775). Use the standard change transactions or released APIs, or the two tables drift apart.
Extension ledgerExtension ledgers hold deltas only
An extension ledger stores only the adjustments on top of its underlying ledger. It cannot post to open item or reconciliation accounts, and types P and S use technical document numbers.
1610 · 1709 · 1809Change the ledger design after go-live
An additional accounting principle and ledger since 1610, from the next fiscal year and with the source ledger’s currencies; subsequent document splitting since 1709; new currencies in a live system since 1809.
UPAUniversal parallel accounting
Ledger-specific values in controlling, assets and actual costing. In SAP S/4HANA 2022 it came for new installations; an existing system moves with business function FINS_UPA_MIGRATION, needs SAP’s approval and cannot go back (SAP Note 3327778).
OK17Reconciliation ledger and real-time integration are history
With FI and controlling on the same line, there is nothing to integrate: the CO-to-FI account determination of OK17 is obsolete, and the conversion pre-checks say so.
2 billion rowsPlan the size of ACDOCA
One SAP HANA table partition holds about two billion rows. If ACDOCA will pass that, partition it as part of the conversion, not after the first incident.
MIG_SOURCE: where a migrated line came from
After a conversion, ACDOCA field MIG_SOURCE tells which old world a line was built from. Lines posted after go-live leave it empty. Values as documented by SAP for the conversion; check the domain values in SE11 for your release.
FG/L line migrated from BSEGGNew G/L line, possibly with controlling dataMMaterial ledgerAAsset accountingS·UCorrections at balance levelRDocument-level correction reversing duplicated amounts–Empty: posted after the conversion
Conversion
Getting there: what a conversion does to your ledger
In a system conversion from SAP ERP, the old tables are read once and rebuilt as the Universal Journal. Four phases, each with its own checks. Step names and order vary by release: follow the finance conversion guide attached to SAP Note 2332030 for yours.
- 1
Prepare and reconcile in SAP ERP
- Run the simplification item checks for finance
- Reconcile the ledgers: new G/L with TFC_COMPARE_VZ, classic G/L with SAPF190
- Check FI indexes with RFINDEX, assets against the G/L with RAABST02, stock with MB5L
- Close the period and stop postings
/SDF/RC_START_CHECKTFC_COMPARE_VZRAABST02 - 2
Adapt customizing
- Cost elements become G/L accounts
- Ledgers, accounting principles and currencies
- Document types for controlling postings, with a mapping variant
- Customizing consistency check before any data moves
FS00FINS_CUST_CONS_CHK_P - 3
Migrate the data
- Analyze, reconcile and enrich the line items (steps R20, R21, ENR)
- Migrate line items into ACDOCA (MUJ) and check them
- Migrate balances (DLT) and calculate initial depreciation values (AFA)
- Material ledger and house bank accounts, then set the migration to completed: there is no way back
FINS_MIG_STATUS - 4
Check and correct after
- Reconcile the G/L and display differences
- Reconcile asset accounting
- Track open corrections in the correction monitor
- Compare with the backup tables and _ORI views before sign-off
FIN_CORR_RECONCILEFIN_AA_CORR_RECONFINS_CORR_MONITOR
Still on classic G/L? You can convert directly: ledger 00 becomes leading ledger 0L, assigned to an accounting principle beforehand. Document splitting cannot be switched on during the conversion; SAP S/4HANA 1709 and later can introduce it afterwards.
Quiz
Myth or fact?
Nine statements heard in every SAP S/4HANA project. Test yourself before the next workshop.
Same pattern
The same idea, beyond the ledger
Once SAP had one journal for accounting, it used the same pattern elsewhere: one wide line item table, no stored totals, and a small extract where speed matters.
- MATDOC
The universal journal of inventory
Since SAP S/4HANA 1511 one table holds the material documents. MKPF and MSEG remain only for compatibility, and stock levels such as MARD are calculated on the fly.
- ACDOCA_M_EXTRACT
A small extract for speed
Every ACDOCA line that matters for inventory valuation is also written here, and the period shift compacts it to one closing record per material. MATDOC_EXTRACT does the same for stock quantities.
- ACDOCP
Plan, in the same shape
Plan line items with ACDOCA’s structure, so plan and actual compare field by field. Introduced with SAP S/4HANA 1610.
- ACDOCU
The consolidation journal
Consolidation postings of SAP S/4HANA Finance for group reporting, first released on premise in 1809. They are read from ACDOCA and kept in their own table.
Frequently asked questions
What is the SAP Universal Journal?
The single line item table for actual postings in SAP S/4HANA accounting. General ledger, controlling, asset accounting, the material ledger and margin analysis write to the same table, ACDOCA, so financial and management accounting can no longer drift apart.
Is the Universal Journal the same as ACDOCA?
In everyday use, yes: ACDOCA is the table behind it. Strictly, a journal entry is BKPF for the header, BSEG for the entry view where there is one, and ACDOCA for the ledger view. Plan data uses the same structure in ACDOCP, and consolidation postings live in ACDOCU.
When was the Universal Journal introduced?
With SAP Simple Finance, on-premise edition 1503, in 2015. It has been part of every SAP S/4HANA system since release 1511, and SAP has extended it in almost every release since: ten currencies, predictive accounting, commitments and universal parallel accounting among others.
What is the difference between classic G/L and new G/L?
Classic G/L (totals table GLT0) knew accounts, company codes and business areas; profit center, segment and parallel accounting needed side ledgers. The new G/L of 2004 (FAGLFLEXT and FAGLFLEXA) added profit center, segment and functional area, document splitting, parallel ledgers and real-time integration with controlling. SAP S/4HANA supports only the new G/L, in the form of the Universal Journal.
Do BKPF and BSEG still exist in SAP S/4HANA?
Yes, both are real tables. BKPF is the header of almost every journal entry, and BSEG is the entry view, where open items are managed. Some journal entries have no BSEG lines at all, such as controlling allocations, depreciation runs since 1809 and foreign currency valuation.
Are BSIK, BSAK, BSID and BSAD still tables?
No. They are compatibility views that read BSEG and BKPF, so reports and SE16N still work with them, but nothing can be written to them. The same applies to BSIS and BSAS. The data they held before the conversion is kept in backup tables such as BSIK_BCK.
Can I keep classic G/L in SAP S/4HANA?
No, but you do not need a new G/L migration first. The conversion turns classic ledger 00 into leading ledger 0L. Document splitting, an additional accounting principle or new currencies can be added later with the tools SAP has delivered since releases 1610 to 1809.
Where are the totals now?
Nowhere: SAP S/4HANA calculates every balance from ACDOCA when it is read. The only stored balances are the carryforward lines of FAGLGVTR, in period 000 with status C, which have no BKPF and no BSEG behind them.
Related pages
References
Checked in October 2026. Knowledge base articles need an SAP for Me login.
- Knowledge base article 2699769Ledger view and entry view apps · SAP for Me
- Knowledge base article 2886122Documents missing in FBL3N and FBL3H · SAP for Me
- Knowledge base article 3045502Different balances in F2217 and F2218 · SAP for Me
- Knowledge base article 2926952Balance carryforward without BKPF and BSEG · SAP for Me
- Knowledge base article 3016757Balance carryforward lines in ACDOCA · SAP for Me
- Knowledge base article 2856765Depreciation postings without BSEG · SAP for Me
- Knowledge base article 3776760The 999-line limit of BSEG · SAP for Me
- Knowledge base article 3170581BSIS_VIEW and the open item views · SAP for Me
- Document status BKPF-BSTATSAP Community, 2022
- S/4HANA ACDOCA conversion line itemsSAP Community, 2017
- How to analyze S/4HANA tables with proxy objectsSAP Community
- SAP Simple Finance roadmap webcast, part 1SAP Community, 2015
- The convergence of the G/L account and the cost elementSAP Community, 2015
- Reduce reconciliations with real-time FI-CO integrationMastering SAP, 2008
- Get your SAP general ledger terminology rightSAPinsider, 2009
- SAP ECC classic G/L to SAP S/4HANA: direct conversionSAPinsider, 2023
- Subsequent implementation of the parallel ledgerSAPinsider
- Material ledger actual costing in SAP S/4HANA 1610SAPinsider
- Conversion to SAP S/4HANA: consistency checks in financeSAP Community, 2018
- SAP S/4HANA extension ledger use casesSAP Community, 2020
- What is SAP’s Universal Journal?SAP PRESS
- SAP S/4HANA maintenance until 2040SAP News, 2020