1. Home
  2. S/4HANA
  3. 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

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

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

  1. Jul 1992SAP R/3Classic G/L: totals in GLT0, line items in BKPF and BSEG.
  2. Jun 2004mySAP ERP 2004 (ECC 5.0)The new G/L: document splitting, parallel ledgers, real-time integration with controlling.
  3. Jan 2013SAP Business Suite on SAP HANASAP ERP runs on SAP’s in-memory database; cluster tables are declustered.
  4. Feb 2014SAP Smart Financials 1.0First go-lives of the add-on that drops totals and index tables.
  5. Jun 2014Renamed SAP Simple FinanceAnnounced under the new name at SAPPHIRE NOW.
  6. Feb 2015SAP S/4HANA launchedPresented on 3 February 2015 in New York.
  7. Mar 2015SAP Simple Finance 1503The Universal Journal: ACDOCA, and cost elements as G/L accounts.
  8. Nov 2015SAP S/4HANA 1511Finance and logistics in one product, MATDOC for inventory, material ledger for everyone.
  9. Oct 2016SAP S/4HANA 1610Ten currencies per ledger, plan data in ACDOCP, actual costing in MLDOC.
  10. Sep 2017SAP S/4HANA 1709Document splitting can be introduced after go-live.
  11. Sep 2018SAP S/4HANA 1809Predictive accounting, commitments in ACDOCA, new currencies in a live system, group reporting on premise.
  12. Oct 2022SAP S/4HANA 2022Universal parallel accounting, for new installations.
  13. Oct 2025SAP S/4HANA 2025The current on-premise release, also sold as SAP Cloud ERP Private.
  14. 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.

Business transaction

SAP ECC 6.0 wrote

New G/L and classic profit center accounting active

13
  • 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

5
  • 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

3
  • 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

3
  • 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

9
  • 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

3
  • 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

3
  • 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

1
  • 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
SAP ERP finance tables and what happened to them in SAP S/4HANA
TableWhat it held in SAP ERPWhat happenedIn SAP S/4HANA
GLT0Classic G/LTotals per account, business area and currency, with periods 01 to 16 as columnsNow a viewView GLT0 (DDL source GLT0_DDL): balances added up from ACDOCA when read. Pre-conversion data in GLT0_BCK.
BSISG/LIndex of open items and line items of G/L accountsNow a viewView on BSEG and BKPF, not on ACDOCA. Pre-conversion data in BSIS_BCK.
BSASG/LIndex of cleared G/L itemsNow a viewView on BSEG and BKPF. Pre-conversion data in BSAS_BCK.
BSIDReceivablesCustomer open itemsNow a viewView on BSEG and BKPF. Pre-conversion data in BSID_BCK.
BSADReceivablesCustomer cleared itemsNow a viewView on BSEG and BKPF. Pre-conversion data in BSAD_BCK.
BSIKPayablesSupplier open itemsNow a viewView on BSEG and BKPF. Pre-conversion data in BSIK_BCK.
BSAKPayablesSupplier cleared itemsNow a viewView on BSEG and BKPF. Pre-conversion data in BSAK_BCK.
KNC1 · KNC3ReceivablesCustomer totals per period, and special G/L totalsNow a viewViews (DDL sources KNC1_DDL, KNC3_DDL): totals calculated when read. Pre-conversion data in the _BCK tables.
LFC1 · LFC3PayablesSupplier totals per period, and special G/L totalsNow a viewViews (DDL sources LFC1_DDL, LFC3_DDL): totals calculated when read. Pre-conversion data in the _BCK tables.
FAGLFLEXTNew G/LTotals per ledger, with profit center, segment and moreNow a viewView (DDL source V_FAGLFLEXT_DDL) adding up ACDOCA. Pre-conversion data in FAGLFLEXT_BCK.
FAGLFLEXANew G/LLine items per ledgerNow a viewView FGLV_FAGLFLEXA on ACDOCA. It cannot be extended any more; the original data is in V_FAGLFLEXA_ORI.
FAGLBSIS · FAGLBSASNew G/LOpen and cleared item index per ledgerNow a viewViews (DDL sources _DDL). Pre-conversion data in FAGLBSIS_BCK and FAGLBSAS_BCK.
JVGLFLEXA · JVGLFLEXTJoint ventureJoint venture accounting ledger: line items and totalsNow a viewViews FGLV_JVGLFLEXA and FGLV_JVGLFLEXT; the data is in ACDOCA.
FMGLFLEXA · FMGLFLEXTFunds managementFunds management ledger: line items and totalsNow a viewViews FGLV_FMGLFLEXA and FGLV_FMGLFLEXT; the data is in ACDOCA.
PSGLFLEXA · PSGLFLEXTPublic sectorPublic sector ledger: line items and totalsNow a viewViews FGLV_PSGLFLEXA and FGLV_PSGLFLEXT; the data is in ACDOCA.
ANEKAssetsAsset document headerNow a viewView FAAV_ANEK; the header data is now in BKPF and ACDOCA.
ANEPAssetsAsset line itemsNow a viewView FAAV_ANEP; actual values in ACDOCA, statistical items in FAAT_DOC_IT.
ANEAAssetsProportional values on asset line itemsNow a viewView FAAV_ANEA; the values are in ACDOCA.
ANLPAssetsPosted depreciation per asset and periodNow a viewView FAAV_ANLP; the values are in ACDOCA.
ANLCAssetsAsset values per fiscal year and depreciation areaNow a viewView FAAV_ANLC; actual values from ACDOCA, planned values from FAAT_PLAN_VALUES.
MLHD · MLIT · MLPP · MLCR · MLCDMaterial ledgerMaterial ledger documents and period recordsNow a viewViews 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 ledgerIndex of accounting documents for materialsNow a viewView V_CKMI1; the data is in ACDOCA.
BSIMMaterialsIndex of accounting documents per materialNow a viewView V_BSIM (DDL source BSIM_DDL); the data is in ACDOCA.
T012K · T012TBanksHouse bank accounts and their textsNow a viewViews V_T012K_BAM and V_T012T_BAM: the accounts moved to Bank Account Management, not to ACDOCA.
COEPControllingLine items of all value typesPartly a viewActuals (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.
COSPControllingTotals, primary costsPartly a viewActuals added up from ACDOCA, other value types from COSP_BAK, through view V_COSP_DDL. For actuals, read ACDOCA (SAP Note 2185026).
COSSControllingTotals, secondary costsPartly a viewActuals added up from ACDOCA, other value types from COSS_BAK, through view V_COSS_DDL.
MBEW · EBEW · QBEW · OBEWValuationMaterial valuation: price control, prices, stock quantity and valuePartly a viewMaster 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.
BKPFHeaderAccounting document headerStill a tableHeader of almost every journal entry, controlling postings included. Only the balance carryforward has none.
BSEGLine itemsLine items, a cluster table in SAP ERPStill a tableTransparent table and the entry view: lines as entered, once, where open items are managed. Still up to 999 lines per document.
BSETTaxTax data per documentStill a tableWritten as before.
BSECOne-time accountsName and address of one-time customers and suppliersStill a tableWritten as before.
BSEDBills of exchangeBill of exchange fieldsStill a tableWritten as before.
BSIPDuplicate checkIndex for the duplicate invoice checkStill a tableWritten as before.
FAGL_SPLINFO · FAGL_SPLINFO_VALDocument splittingSplit information and split values of open itemsStill a tableWritten as before; document splitting still needs them.
BSEG_ADDAdditional ledgersEntry view of accounting documents for additional ledgersStill a tableA table beside BSEG.
COBKControllingControlling document headerStill a tableWritten as before for controlling postings.
GLPCA · GLPCTProfit centersClassic profit center accounting: line items and totalsNot mergedNot 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 · CE4xxxxProfitabilityCosting-based CO-PA: line items, plan items, segment level and segment tableNot mergedNot 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 ledgerSpecial purpose ledgers with their own totals and line item tablesNot mergedNot 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 JournalDid not existNew in S/4HANAActual line items of the G/L, controlling, assets, material ledger and margin analysis, one line per item and ledger.
ACDOCPPlanDid not existNew in S/4HANAPlan line items with the structure of ACDOCA, since SAP S/4HANA 1610.
ACDOCUConsolidationDid not existNew in S/4HANAConsolidation journal entries of SAP S/4HANA Finance for group reporting.
ACDOCA_M_EXTRACTInventoryDid not existNew in S/4HANASmall extract of ACDOCA for inventory valuation, compacted at the period shift (MMPV): one closing record per material, year 9999, period 999.
MLDOC · MLDOCCCSActual costingDid not existNew in S/4HANAMaterial ledger documents and their cost component split, since SAP S/4HANA 1610.
FAAT_DOC_IT · FAAT_PLAN_VALUESAssetsDid not existNew in S/4HANAStatistical asset line items, and planned depreciation values.
  • 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, COSP and COSS keep part of it, plan and other non-actual values, and the material valuation tables such as MBEW keep their master data. BKPF and BSEG were 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.

BSEG, the entry view, compared with ACDOCA, the ledger view
TopicBSEG entry viewACDOCA ledger view
LinesAs entered, once per documentOne set per ledger, with split and clearing lines
Line numberBUZEI, 3 digits: up to 999DOCLN, 6 digits: up to 999,999
CurrenciesUp to three local currenciesUp to ten per ledger
Open itemsManaged and cleared hereCarries the clearing data
Custom fieldsCoding block fieldsCoding block fields plus fields from Custom Fields and Logic
SAP GUIFBL3H FB03FAGLL03H FB03 › General Ledger View
SAP FioriF2218 Display Line Item EntryF2217 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.
  • F5727

    The 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.

  • OBCYX

    ACDOCA 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 · BSIP

    The 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.

Table to read
  1. 1 · Your programSELECT * FROM BSIK

    A report, a query or SE16N, written for SAP ERP.

  2. 2 · RedirectedBSIK_DDL · BSIK_VIEW

    A compatibility view with BSIK’s old structure; the name depends on the release.

  3. 3 · ReadsBSEG + BKPF

    Supplier lines that are still open, taken from the entry view.

  4. 4 · You getOpen supplier items, old layout

    No ledger field: open items belong to the entry view.

Worth knowing. The open item views BSIS, BSAS, BSID, BSAD, BSIK and BSAK are the exception: they read BSEG, not ACDOCA. Open item management is one of the reasons BSEG still exists.
  1. 1 · Your programSELECT * FROM GLT0

    A report, a query or SE16N, written for SAP ERP.

  2. 2 · RedirectedGLT0 · GLT0_DDL

    A view with the old totals structure, periods as columns.

  3. 3 · ReadsACDOCA

    Line items added up by account, period and currency at read time.

  4. 4 · You getBalances in 16 period columns

    Exactly as classic G/L programs expect them.

Worth knowing. Nothing is stored, so nothing can be out of sync: the old balance table is now a formula over the journal. SAP Note 2221298 covers the GLT0 and FAGLFLEXT views in custom programs.
  1. 1 · Your programSELECT * FROM COSS

    A report, a query or SE16N, written for SAP ERP.

  2. 2 · RedirectedV_COSS_DDL

    One view over two sources, so reports still see one table.

  3. 3 · ReadsACDOCA + COSS_BAK

    Actual values from ACDOCA; plan and other value types from the old table, renamed.

  4. 4 · You getSecondary cost totals, all value types

    Plan and actual side by side, as in SAP ERP.

Worth knowing. For actuals, value types 04 and 11, read ACDOCA directly: SAP Note 2185026 explains how to use the controlling views without hurting performance.
  1. 1 · Your programSELECT * FROM FAGLFLEXA

    A report, a query or SE16N, written for SAP ERP.

  2. 2 · RedirectedFGLV_FAGLFLEXA

    The runtime object that answers for the old new G/L line item table.

  3. 3 · ReadsACDOCA

    One line per item and ledger: the same rows FAGLFLEXA used to hold.

  4. 4 · You getNew G/L line items

    With ledger, profit center and segment.

Worth knowing. This view cannot be extended with new fields; add them to ACDOCA instead (KBA 2403232). The data from before the conversion stays readable in V_FAGLFLEXA_ORI.
  • 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.

Transactions and SAP Fiori apps and the view they read
Transaction or appWhat it showsReads
FAGLL03HG/L line item browser. Ledger view: asks for a ledger. Carryforward and migration lines are not listed.ACDOCA
FBL3HG/L line items, entry view. Journal entries without BSEG lines never appear here.BSEG
FB03Display a journal entry. Opens in the entry view; General Ledger View switches to the leading ledger, Other Ledger to any other.Both
FAGLB03G/L account balances. Period by period, per ledger, carryforward included.ACDOCA
F2217Display Line Items in General Ledger. The Fiori ledger view, with every ACDOCA field.ACDOCA
F2218Display Line Item Entry. The Fiori entry view, from BSEG with header fields from BKPF.BSEG
F0707Display G/L Account Balances. Balances by period with drill-down to the line items.ACDOCA
F0708Display Financial Statement. Balance sheet and P&L along a financial statement version.ACDOCA
F3664Display Journal Entries – In T-Account View. A journal entry drawn as T-accounts, ledger by ledger.ACDOCA
F1596Carry Forward Balances. The app version of FAGLGVTR; writes the period 000 lines.ACDOCA
  1. 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.

  2. 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).

  3. 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.

  4. 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.

  5. 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.

  6. 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_JournalEntryItem

    Read 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 C

    Leave 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).

  • API

    The 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 fields

    Where 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_CHANGE

    Changing 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 ledger

    Extension 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 · 1809

    Change 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.

  • UPA

    Universal 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).

  • OK17

    Reconciliation 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 rows

    Plan 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 BSEG
  • GNew G/L line, possibly with controlling data
  • MMaterial ledger
  • AAsset accounting
  • S·UCorrections at balance level
  • RDocument-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. 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. 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. 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. 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.

  1. BSEG was removed in SAP S/4HANA.

    Right.Not quite. Myth. BSEG is now a transparent table and the entry view of every journal entry that has one. Open items are managed there.

  2. SELECT * FROM BSIK still works in custom code.

    Right.Not quite. Fact. BSIK is a compatibility view on BSEG and BKPF. Reading works; writing does not.

  3. Every journal entry in SAP S/4HANA has lines in BSEG.

    Right.Not quite. Myth. Allocations, settlements, depreciation runs since 1809 and foreign currency valuation are posted in the general ledger only.

  4. Cost elements no longer exist.

    Right.Not quite. Myth. They are G/L accounts of type Primary Costs or Revenue, or Secondary Costs, with a cost element category. Cost element groups remain.

  5. BSIK reads the Universal Journal.

    Right.Not quite. Myth. The open item views read BSEG and BKPF, the entry view. GLT0 and FAGLFLEXT, by contrast, are built from ACDOCA.

  6. You can keep classic G/L when you move to SAP S/4HANA.

    Right.Not quite. Myth. The conversion turns ledger 00 into leading ledger 0L. SAP S/4HANA knows only the new G/L.

  7. Costing-based CO-PA moved into ACDOCA.

    Right.Not quite. Myth. Its CE1 to CE4 tables stay. Margin analysis, the account-based form, is what lives in ACDOCA.

  8. GLT0 still stores account balances.

    Right.Not quite. Myth. GLT0 is a view: the balances are added up from ACDOCA every time you read it.

  9. ACDOCA can hold more lines for one document than BSEG.

    Right.Not quite. Fact. DOCLN has six digits against BUZEI’s three, and BSEG may be summarized while ACDOCA keeps the detail.

Pick Fact or Myth on each card.Your score: right out of answered, 9 statements in all.

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.

References

Checked in October 2026. Knowledge base articles need an SAP for Me login.