1. Home
  2. DevOps
  3. SAP tables
  4. ACDOCA

ACDOCA, ACDOCP and ACDOCU: the Universal Journal tables

Actuals, plan and consolidation in SAP S/4HANA live in three line-item tables that share one set of dimensions. What each one holds, how data moves between them, their keys and currencies, and the ECC tables they replaced.

  • ACDOCA
  • ACDOCP
  • ACDOCU
  • Universal Journal
  • Group reporting

Three tables, one coding block

In SAP ECC, actuals were spread over the FI, CO, asset accounting, material ledger and CO-PA tables, plan data sat in the CO totals tables, and consolidation had a data model of its own. Every period end began with reconciling them.

SAP S/4HANA keeps each kind of data in one line-item table: ACDOCA for actuals, ACDOCP for plan and ACDOCU for consolidation. Totals are no longer stored; SAP HANA adds up the lines when you ask.

The three share the same dimensions: G/L account, cost center, profit center, segment, market segment and your custom fields. So plan sits next to actual, and group figures next to local books, without mapping one data model onto another. A custom field for the coding block can be added to all three tables.

The three tables side by side

Same dimensions, different jobs. The field that separates the data inside each table is the one to filter first.

ACDOCAACDOCPACDOCU
HoldsActual journal entry line items, one line per ledgerPlan data line itemsConsolidation journal entries: released data and consolidation postings
Primary keyRCLNT, RLDNR, RBUKRS, GJAHR, BELNR, DOCLNRCLNT, REQTSN, DATAPAKID, RECORD (technical only)RCLNT, RLDNR, RDIMEN, RYEAR, DOCNR, DOCLN
Separates data byLedger RLDNR: leading ledger 0L, other standard ledgers, extension ledgersPlan category CATEGORY, check table FCOMC_CATEGORYConsolidation version RVERS, and posting level
Written byEvery posting: FI, CO, asset accounting, material ledger, and logistics through the accounting interfaceSAP Analytics Cloud export, the Import Financial Plan Data app, the planning API, order and project plan costsRelease from ACDOCA and ACDOCP, data collection and uploads, and the consolidation tasks
Read withFB03, FAGLL03H, financial statements, G/L and journal entry appsPlan/actual reports and planning appsGroup reporting apps and reports
AreaGeneral ledger (Universal Journal)Financial planning, package FINS_ACDOC_PLANNINGGroup reporting (FIN-CS)

How data flows between them

Postings fill ACDOCA, planning fills ACDOCP, and group reporting releases both into ACDOCU, where the consolidation postings are added.

Accounting postings

FI documents, CO allocations and settlements, asset postings, the material ledger, goods movements and billing through the accounting interface.

ACDOCA

One line per ledger. The preparation ledger also fills consolidation unit, FS item and partner unit at posting.

Release Universal Journal

A data monitor task copies the period's actuals into ACDOCU, once the period is open and the company is a consolidation unit.

Planning

SAP Analytics Cloud export, the Import Financial Plan Data app, the planning API, production and process orders, project cost planning.

ACDOCP

Plan lines with the same granularity as the general ledger, by plan category.

Plan release

The release task can also read plan categories from ACDOCP (SAP Note 2940122). The plan category becomes a consolidation version.

ACDOCU

Released data, plus data from other systems through data collection or upload, plus the consolidation postings: currency translation, eliminations and consolidation of investments, each with its own posting level.

Group reports

Consolidated financial statements, group reporting apps, and SAP Analytics Cloud for group planning.

ACDOCA: the Universal Journal

The single source of truth for actuals in SAP S/4HANA: general ledger, controlling, asset accounting, material ledger and margin analysis in one table of several hundred fields, one line per journal entry item and ledger.

Header, entry view and ledger view

  1. HeaderBKPFOne row per document: document type, dates, user, and the reference to the source document.
  2. Entry viewBSEGOne row per FI line item, as entered. Still written in SAP S/4HANA, now as a transparent table, with the open-item and clearing fields.
  3. Ledger viewACDOCAOne row per item per ledger. BUZEI points back to the BSEG line; DOCLN is its own six-character line number. It has more lines than BSEG: one per ledger, plus lines written only by controlling or the material ledger.

A posting made only in a non-leading ledger gets status L and its own number in DOCNR_LD, the ledger-specific document number.

Key and first fields in SE11

FieldKeyData elementShort descriptionCheck tableTypeLength
RCLNTKeyMANDTClientT000CLNT3
RLDNRKeyFINS_LEDGERLedger in General Ledger AccountingFINSC_LEDGERCHAR2
RBUKRSKeyBUKRSCompany CodeT001CHAR4
GJAHRKeyGJAHRFiscal Year (of the document)—NUMC4
BELNRKeyBELNR_DAccounting Document Number—CHAR10
DOCLNKeyDOCLN6Six-Character Posting Item for Ledger—CHAR6
RYEARGJAHR_POSGeneral Ledger Fiscal Year (for balances)—NUMC4
DOCNR_LDFINS_DOCNR_LDLedger-specific Accounting Document Number—CHAR10
RRCTYRRCTYRecord Type (fixed values)—CHAR1
.INCLUDEACDOC_SI_00Universal Journal Entry: Transaction, Currencies, Units—STRU—
RMVCTRMVCTTransaction Type (consolidation)T856CHAR3
VORGNVORGNTransaction Type for General Ledger—CHAR4

GJAHR is the fiscal year of the document and belongs to the key; RYEAR is the fiscal year the line counts in for balances. For balances and periods use RYEAR and POPER.

Field groups

ACDOCA is built from includes, one per subledger. They are a quick way to see which fields belong to which area.

  • ACDOC_SI_00Transaction, currencies, units
  • ACDOC_SI_GENFields for several subledgers
  • ACDOC_SI_FIFI subledgers: customer, supplier, clearing
  • ACDOC_SI_GL_ACCASG/L additional account assignments
  • ACDOC_SI_FAAAsset accounting
  • ACDOC_SI_COPAMargin analysis: market segment
  • ACDOC_SI_LOGLogistics
  • ACDOC_SI_JVAJoint venture accounting
  • ACDOC_SI_EXTExtension fields: your custom fields

Fields you will filter on

  • Document

    • BLART
    • BUDAT
    • BLDAT
    • POPER
    • BSTAT
    • AWTYP
    • AWREF
    • AWORG
  • Accounts

    • RACCT
    • KOART
    • KUNNR
    • LIFNR
    • ANLN1
    • MATNR
  • Organization

    • RBUKRS
    • PRCTR
    • SEGMENT
    • RFAREA
    • RBUSA
    • WERKS
    • RASSC
  • Controlling and clearing

    • KOKRS
    • RCNTR
    • AUFNR
    • PS_PSP_PNR
    • OBJNR
    • AUGBL
    • AUGDT

Codes worth knowing

Status BSTAT
ValueMeaning in ACDOCA
blankNormal posting
LPosted only in a non-leading ledger
CBalance carryforward and balances from migration

Parked, noted, sample and recurring documents (V, S, M, D) are not journal entries; look for them in BKPF and BSEG.

Period POPER
ValueMeaning
000Balance carryforward
001–012Normal posting periods (for a 12-period fiscal year variant)
013–016Special periods for closing postings
Reference transaction AWTYP (table TTYP)
AWTYPSource documentFunction in TTYP
BKPFFI document entered in FI—
BKPFFFI document posted through an interface—
RMRPSupplier invoice (MIRO)—
MKPFMaterial document (MIGO)—
VBRKBilling document—
AMBUAsset transactionAMFI_SHOW_AM_DOCUMENT
AMDPDepreciation postingAC_DOCUMENT_RECORD
AIBUAssets under construction settlementAMFI_SHOW_AM_DOCUMENT
AUAKSettlement documentK_SETTLEMENT_DOC_DISPLAY
AFRUConfirmation (reporting document)AC_DOCUMENT_AFRU_DISPLAY
ACEAccrual engineACEPS_DOCUMENT_SENDER
AS91Legacy asset data transfer—

AWREF and AWORG identify the source document itself. How they join to it is on the relationships page.

Business transaction type BTTYPE (examples)
CodeText
ABGAAsset retirement
ABAKLast retirement on group asset
ABAWNew revaluation
AUFWRevaluation
ANZADown payment
AUABRetirement of investment measure AuC
AUUAAuC: transfer retirement to asset
AFABLegacy data transfer: posted values
AS91Legacy data transfer: cumulative values
ACEAACE accruals postings
ACPAOne allocation plan assessment
ACPDOne allocation plan distribution

Together with VRGNG, the CO business transaction (KOAO actual settlement, RKU1 repost costs), it tells you which process wrote the line.

Amounts and currencies

Every line carries its amount in several currencies at once, each in its own column with its own currency key. Beyond the company code and global currencies, a ledger can carry up to eight freely defined currencies.

Which currency type sits in each freely defined column is set per ledger and company code in Customizing, under Define Settings for Ledgers and Currency Types (FINSC_LEDGER).

Sum one amount column at a time and keep its currency key in the grouping: HSL with RHCUR, KSL with RKCUR. Transaction currencies (TSL, WSL) only add up per currency.

AmountCurrency keyMeaning
TSLRTCURAmount in balance transaction currency
WSLRWCURAmount in transaction (document) currency
HSLRHCURAmount in company code currency (currency type 10)
KSLRKCURAmount in global currency (currency type 30)
OSLROCURAmount in freely defined currency 1
VSLRVCURAmount in freely defined currency 2
BSL … GSLRBCUR … RGCURFreely defined currencies 3 to 8
CO_OSLRCO_OCURAmount in the object currency of controlling
MSLRUNITQuantity, with its unit of measure

What ACDOCA replaced

The old tables did not disappear: most became compatibility views with the same name, which calculate the old structures from ACDOCA when they are read.

AreaSAP ECC tablesIn SAP S/4HANA
G/L totals and line itemsGLT0, FAGLFLEXT, FAGLFLEXARead from ACDOCA through compatibility views
Open item indexesBSIS, BSAS, BSID, BSAD, BSIK, BSAK, FAGLBSIS, FAGLBSASCompatibility views
Customer and supplier totalsKNC1, KNC3, LFC1, LFC3Compatibility views
Controlling actualsCOEP, COSP, COSS (value types 04 and 11)ACDOCA, read through V_COEP and the totals views. Other value types, such as plan and commitments, are still stored in COEP, COSP_BAK and COSS_BAK.
Asset accountingANEP, ANEA, ANLP, ANLC, ANEKValues in ACDOCA; the ANEK header data goes to BKPF and ACDOCA
Material ledger and inventory valuesMLIT and other ML tables, value fields of MBEW, MBEWHACDOCA and ACDOCA_M_EXTRACT; actual costing uses MLDOC
Profitability analysisAccount-based CO-PA line itemsMargin analysis fields in ACDOCA. Costing-based CO-PA keeps its CE1xxxx to CE4xxxx tables.
Profit center accountingGLPCA, GLPCTProfit center is a field of ACDOCA; no data migration needed when classic PCA is switched off (SAP Note 2425255)
Still physical tablesBKPF, BSEG, COBKWritten as before: header, entry view and CO document header
  • Reading works, writing does not

    SELECTs on a compatibility view still run; INSERT, UPDATE and DELETE must be removed from custom code. For value types 04 and 11, read ACDOCA directly: it is faster (SAP Note 2185026).

  • The old data is still there

    The content of the original tables from before the conversion can be read through V_<table>_ORI, for example V_COEP_ORI or V_FAGLFLEXA_ORI (SAP Note 1976487).

ACDOCP: plan data line items

ACDOCP is ACDOCA's counterpart for plan data, with the same granularity as the general ledger. Plan and actual share their fields, so they can be read side by side or in one UNION.

Where ERP planning kept versions in the CO totals tables, ACDOCP separates plan data by plan category (field CATEGORY). Categories are set up under Controlling › General Controlling › Planning › Maintain Category for Planning, which also decides whether a category can be uploaded, copied or deleted. Once a category is in use it cannot be changed or deleted.

Its key is purely technical (REQTSN, DATAPAKID, RECORD), because the table stores a multidimensional view. Always restrict by plan category, ledger, company code and fiscal year.

Plan categories you will meet

PLN
A general plan category, often the default
PLANORD01
Plan costs of production and process orders, written when the order is saved
BUDGET01–03
Budget categories, with a budget consistency check

Locks: Writes lock by plan category, controlling area, company code and fiscal year. Two loads into the same category can block each other; loads into different categories never do.

Ways to fill ACDOCP

  • SAP Analytics Cloud

    SAC keeps its own plan data and exports it to ACDOCP through the OData service API_PLPACDOCPDATA_SRV. Only public versions can be exported.

  • Import Financial Plan Data

    Fiori app F1711 loads plan data from files. Its partner app deletes plan data again.

  • Planning API

    FINPLAN_API_POSTDATA posts plan data from programs, with a BAdI under Access to Table ACDOCP Using API.

  • SAP BPC for S/4HANA

    Writes plan results straight into ACDOCP since SAP S/4HANA 1610, through the VirtualProvider /ERP/SFIN_V20.

  • Orders and projects

    Production and process orders save plan costs in PLANORD01. From SAP S/4HANA 2022, easy cost planning for projects can write to ACDOCP too.

  • Transfer reports

    R_FINS_PLAN_TRANS_CO_ERP_2_S4H copies CO plan data into ACDOCP; R_FINS_PLAN_TRANS_CO_S4H_2_ERP copies it back for classic reports such as S_ALR_87013611.

ACDOCU: consolidation journal entries

ACDOCU is the journal of SAP S/4HANA Finance for group reporting. It holds the reported data, released from accounting or collected from other systems, and every consolidation posting made on top of it. Values are stored per period.

The posting level tells you where a record came from: blank for released or reported data, 00 for corrections to it, 20 for two-sided eliminations, 30 for consolidation of investments.

  1. Preparation ledger: consolidation unit, partner unit, FS item and subitem are derived in ACDOCA when the G/L posting is made.
  2. Release task: Release Universal Journal in the data monitor copies the actuals into ACDOCU.
  3. Plan release: plan categories from ACDOCP can be released into a consolidation version (SAP Note 2940122).
  4. Other sources: flexible upload and group reporting data collection bring in units outside SAP S/4HANA.
  5. Consolidation tasks post their results straight into ACDOCU.

How much detail the release carries drives both its runtime and the volume of ACDOCU (SAP KBAs 3000108 and 3000154).

Key and main fields
RLDNRConsolidation ledger (key)
RDIMENDimension (key)
RYEARFiscal year (key)
DOCNRDOCLNDocument and line (key)
RVERSConsolidation version
RBUNITConsolidation unit
RBUPTRPartner unit
RITCLGRITEMConsolidation chart of accounts and FS item
RCONGRConsolidation group
TSLHSLKSLTransaction, local and group currency

ACDOCU or ACDOCC? ACDOCC is the consolidation journal of real-time consolidation (RTC) with SAP BPC, keyed by RCLNT, MODEL, RYEAR, BELNR, DOCLN. Group reporting uses ACDOCU.

Reading the three tables right

Three queries in ABAP SQL that show the filters each table needs. Values such as company code 1000 are examples: use your own.

Query

Year-to-date balance per G/L account

SELECT FROM acdoca
  FIELDS rbukrs, racct, rhcur,
         SUM( hsl ) AS balance
  WHERE rldnr  = '0L'
    AND rbukrs = '1000'
    AND ryear  = '2026'
    AND poper BETWEEN '000' AND '010'
  GROUP BY rbukrs, racct, rhcur
  INTO TABLE @DATA(balances).

What you get

One line per account with its balance in company code currency up to period 10, including the carryforward in period 000.

Watch out

Filter the ledger first. Without RLDNR every line counts once per ledger and the totals double. Use RYEAR, not GJAHR, for balances.

Actual (ACDOCA) and plan (ACDOCP) per cost center

SELECT FROM acdoca
  FIELDS 'A' AS rec_type, rcntr, racct, rhcur,
         SUM( hsl ) AS amount
  WHERE rldnr = '0L' AND rbukrs = '1000'
    AND ryear = '2026' AND rcntr <> @space
  GROUP BY rcntr, racct, rhcur
UNION ALL
SELECT FROM acdocp
  FIELDS 'P' AS rec_type, rcntr, racct, rhcur,
         SUM( hsl ) AS amount
  WHERE category = 'PLN' AND rldnr = '0L'
    AND rbukrs = '1000' AND ryear = '2026'
    AND rcntr <> @space
  GROUP BY rcntr, racct, rhcur
  INTO TABLE @DATA(plan_actual).

What you get

Actual and plan amounts for every cost center and account in one result, marked A and P.

Watch out

The plan category is the version of ACDOCP: always filter it. PLN is an example; use the category your planning writes to.

Group currency totals per consolidation unit and FS item

SELECT FROM acdocu
  FIELDS rbunit, ritem, rkcur,
         SUM( ksl ) AS group_amount
  WHERE rldnr  = 'Y1'
    AND rdimen = 'Y1'
    AND rvers  = 'Y10'
    AND ryear  = '2026'
    AND poper <= '012'
  GROUP BY rbunit, ritem, rkcur
  INTO TABLE @DATA(group_data).

What you get

The year-to-date group currency amount per consolidation unit and FS item, across all posting levels.

Watch out

ACDOCU stores values per period, so add up the periods you need. Ledger Y1, dimension Y1 and version Y10 are sample values: use your own.

  • Never SELECT *. ACDOCA has hundreds of columns in a column store: name only the fields you need.

  • Apps and ABAP Cloud read I_JournalEntryItem and the other released views, not the tables.

  • Custom fields for the coding block, from the Custom Fields app, reach ACDOCA, ACDOCP and ACDOCU alike.

SAP Notes worth knowing

Check them in SAP for Me against your release and support package.

NoteWhat it coversArea
1976487Adjusting custom programs to the simplified finance data model; the V_*_ORI viewsCompatibility views
2185026Compatibility views COSP, COSS, COEP, COVP: how to optimize their useControlling
2425255Classic profit center accounting data does not need to move to ACDOCAProfit centers
2337383Material valuation fields read from ACDOCA and the material ledger from SAP S/4HANA 1610Material ledger
3790210How ACDOCA-KSL is filled during migrationMigration
2940122Release task: improvements to the release of plan data from ACDOCPGroup reporting
3000108KBA: how to influence the data volume in ACDOCU (on-premise)Group reporting
3000154KBA: release granularity, runtime and ACDOCU volumeGroup reporting

Frequently asked questions

What is ACDOCA in SAP S/4HANA?

ACDOCA is the Universal Journal: the line-item table for all actual postings of the general ledger, controlling, asset accounting, material ledger and margin analysis, with one line per item and ledger.

Does BSEG still exist in SAP S/4HANA?

Yes. BKPF holds the document header, BSEG the entry view of FI line items and ACDOCA the ledger view. BSEG is now a transparent table instead of a cluster table.

What is the difference between ACDOCA and ACDOCP?

ACDOCA holds actual postings by ledger; ACDOCP holds plan data by plan category. They share most fields, so plan and actual can be compared line by line.

What is ACDOCU used for?

ACDOCU stores the consolidation journal entries of SAP S/4HANA Finance for group reporting: data released from ACDOCA and ACDOCP or collected from other systems, plus all consolidation postings, by consolidation version.

What is the difference between ACDOCU and ACDOCC?

ACDOCU belongs to group reporting. ACDOCC is the journal of real-time consolidation, the scenario that combines SAP S/4HANA with SAP BPC.

How many currencies does ACDOCA hold?

Besides the transaction currencies, the company code currency (HSL) and the global currency (KSL), a ledger can carry up to eight freely defined currencies, from OSL and VSL to BSL through GSL.

Why does one document appear more than once in ACDOCA?

ACDOCA writes one line per item for every ledger the posting reaches. Filter on the ledger (RLDNR), usually 0L, before you count or add up.

Can I add custom fields to ACDOCA?

Yes. Create them in the Custom Fields app with a coding block or journal entry item context, or with the coding block extension in classic customizing. Coding block fields reach ACDOCP and ACDOCU as well.