Asset History Sheet
The roll-forward of every fixed asset — opening book value, acquisitions, retirements, transfers, depreciation, closing — per asset class and depreciation area. The year-end statutory asset report (the old AR02), built on ACDOCA.
Sample build of the Asset History Sheet report — the asset roll-forward per class and depreciation area, reconciled to the asset reconciliation accounts on the balance sheet, and rendered tool-neutral so it runs in Power BI, SAC, or Tableau.
| Asset class | Opening NBV | Acquisitions | Retirements | Depreciation | Closing NBV |
|---|---|---|---|---|---|
| 1000 · Buildings | 22,000,000 | 3,000,000 | — | 1,200,000 | 23,800,000 |
| 2000 · Machinery | 14,000,000 | 4,200,000 | 600,000 | 2,800,000 | 14,800,000 |
| 3000 · Vehicles | 4,100,000 | 900,000 | 300,000 | 800,000 | 3,900,000 |
| 4000 · IT Equipment | 2,500,000 | 300,000 | — | 400,000 | 2,400,000 |
Every asset class rolled forward for the depreciation area — opening book value, this year's acquisitions, retirements, transfers, and depreciation, to closing book value. Reconciles to the asset reconciliation accounts on the balance sheet.
Machinery (class 2000) retired 600K of assets while depreciation ran 2.80M — the highest of any class. A retirement with remaining book value writes off straight to P&L; confirm the disposal gain/loss postings are complete before close.
The roll-forward only balances if every transaction type maps to a history-sheet group. An unmapped custom transaction type silently drops a movement — reconcile the closing NBV to the asset reconciliation accounts on the trial balance.
The report's query logic — generic SQL on ACDOCA, where asset values now live. It buckets each posting into a roll-forward column by its asset transaction type. The same SQL becomes a dbt model in your warehouse.
Show / hide SQL
WITH asset_lines AS (
SELECT m.anlkl AS asset_class,
a.afabe AS deprec_area,
a.anln1, a.anln2, a.fiscalperiod, a.anbwa, a.hsl,
CASE
WHEN a.fiscalperiod = 0 THEN 'OPEN' -- Period 0 carryforward
WHEN a.anbwa BETWEEN '100' AND '199' THEN 'ACQ' -- acquisitions
WHEN a.anbwa BETWEEN '200' AND '299' THEN 'RETIRE' -- retirements
WHEN a.anbwa BETWEEN '300' AND '399' THEN 'TRANSFER' -- transfers
ELSE 'DEPREC' -- depreciation run
END AS hist_group
FROM acdoca a
JOIN anla m ON m.bukrs = a.rbukrs
AND m.anln1 = a.anln1
AND m.anln2 = a.anln2
WHERE a.rbukrs = :P_COMPANY_CODE
AND a.gjahr = :P_FISCAL_YEAR
AND a.afabe = :P_DEPRECIATION_AREA -- 01 book / 15 tax / 32 IFRS
AND a.anln1 <> '' -- asset postings only
)
SELECT asset_class, deprec_area,
SUM(CASE WHEN hist_group = 'OPEN' THEN hsl ELSE 0 END) AS opening_nbv,
SUM(CASE WHEN hist_group = 'ACQ' THEN hsl ELSE 0 END) AS acquisitions,
SUM(CASE WHEN hist_group = 'RETIRE' THEN hsl ELSE 0 END) AS retirements,
SUM(CASE WHEN hist_group = 'TRANSFER' THEN hsl ELSE 0 END) AS transfers,
SUM(CASE WHEN hist_group = 'DEPREC' THEN hsl ELSE 0 END) AS depreciation,
SUM(hsl) AS closing_nbv
FROM asset_lines
GROUP BY asset_class, deprec_area
ORDER BY asset_class;The data-warehouse model — one fact surrounded by conformed dimensions (what you slice by) and measures (what you aggregate), expressed as dbt so it migrates with you. Grain: one row per asset · depreciation area · fiscal year.
| Element | Type | Definition |
|---|---|---|
| dim_asset | dimension | Asset master (ANLA) — class, description, capitalization date |
| dim_deprec_area | dimension | Depreciation area & accounting principle — book / tax / IFRS |
| dim_company_code | dimension | Company code & ledger context (RLDNR) |
| dim_date | dimension | Conformed calendar — fiscal year & period |
| opening_nbv | measure | Net book value brought forward (Period 0) |
| acquisitions / retirements / transfers | measure | Movements by asset transaction type (ANBWA) |
| depreciation | measure | Ordinary, special & unplanned depreciation for the year |
| closing_nbv | measure | Opening + acquisitions − retirements ± transfers − depreciation |
Every source object behind this report. Each linked object has its own page — with its fields and its real S/4HANA status, so you build on the right thing.
| Object | Role | Key fields | S/4HANA status |
|---|---|---|---|
| ACDOCA | Universal Journal — asset values post here (ANLN1 · AFABE · ANBWA) | 6 PK · 360+ | Transparent table |
| ANLA | Asset master — class, description, capitalization date | ANLN1 · ANLN2 | Transparent table |
| ANLZ / ANLB | Time-dependent assignments & depreciation terms (key, useful life) | ANLN1 | Transparent table |
| I_FixedAsset | Released asset-master CDS view — class, attributes | released | Released CDS view |
| I_AssetValuationForLedger | Released asset-values CDS view (ledger-dependent) | released | Released CDS view |
| ANEP / ANLC | Legacy asset line / value tables — FAAV_* views, do not extract | — | Compat view → ACDOCA |
| FAAT_PLAN_VALUES | Planned depreciation per asset · area · period — for the forecast | reference | Transparent table |