AFABFI-AA

SAP AFABDepreciation Posting Run

A fixed asset — a building, a machine, a vehicle — loses value over its useful life, and accounting recognises that gradually as depreciation. SAP calculates the amount continuously from the asset master and its depreciation key. AFAB is what actually posts it to the ledger.

The distinction matters and catches people out. Depreciation is *planned* the moment an asset is created; you can see the values in the asset explorer (AW01N) long before anything hits the G/L. AFAB is the batch job that turns those planned values into real postings.

Two rules govern it, and both are unusual. It is strictly sequential — you cannot post period 8 before period 7, and you cannot skip a period and come back. And it is not repeatable by default: once a period is posted, re-running it needs a deliberately chosen run reason.

On S/4HANA the underlying program was reworked and the transaction is frequently FAA_DEPRECIATION_POST, with AFAB retained as a familiar entry point. The concepts below hold for both.

When you would actually use AFAB

What the screen looks like

Depreciation Posting Run
AFAB

Selection

Company code1000
Fiscal year2026
Posting period8
Asset number

Reason for posting run

Planned posting runX
Repeat
Restart
Unplanned posting run

Processing options

Test runX
Session only for errors
List assetsX
Run as a test first. A real run posts to the ledger and cannot simply be undone.
Client 100 | S/4HANA | Company Code 1000
Illustrative recreation.The four run reasons are mutually exclusive — pick the one matching your situation — Drawn for training with invented data; not a capture of a real SAP system. Fields with a blue border are required. SAP is a trademark of SAP SE.
Depreciation Posting Run: Test Result
AFAB
AssetDescriptionCost centreDep. areaAmount EURStatus
100001-0Delivery van000120001412.50To be posted
100002-0CNC machine0001400012,187.00To be posted
100007-0Office fit-out0001100010.00No depreciation key
1 asset with error — depreciation key missing on asset 100007-0
Client 100 | S/4HANA | Company Code 1000
Illustrative recreation.Fix the errors before the real run; a terminated run needs a Restart — Drawn for training with invented data; not a capture of a real SAP system. Fields with a blue border are required. SAP is a trademark of SAP SE.

The fields, in plain English

Posting period

Which period to post. Must be the next one in sequence — SAP will not let you jump ahead or fill a gap later.

Watch out: This sequencing is the source of most AFAB frustration. If period 7 was never posted, period 8 will refuse until it is.

Planned posting run

The normal monthly option. Posts the planned depreciation for the next period in sequence.

Repeat

Re-posts a period that has already been posted, picking up only the difference. Used after correcting an asset master or depreciation key mid-month.

Watch out: Repeat posts the delta, not the whole amount again. Expecting a full re-post and seeing a small figure is normal.

Restart

For a run that terminated part-way — a short dump, a lock, a timeout. It resumes rather than starting over, so already-posted assets are not double-counted.

Watch out: After a failed run, use Restart, not Planned. Planned will refuse, and forcing it is how periods get posted twice.

Unplanned posting run

Posts unplanned depreciation entered manually against an asset (via ABAA), outside the normal calculated schedule.

Test run

Calculates and lists everything without posting. The output shows exactly what would post per asset, and flags errors.

Watch out: A test run on a large asset base can exceed the dialogue time limit. Run it in background rather than removing the test flag to make it finish.

Step by step

  1. 1Confirm the previous period is already posted. AFAB will not skip.
  2. 2Enter company code, fiscal year and the next posting period.
  3. 3Choose the run reason — Planned for a normal month.
  4. 4Leave Test run ticked and execute.
  5. 5Read the log. Fix any assets flagged with errors — usually a missing depreciation key or cost centre.
  6. 6Re-run the test until it is clean.
  7. 7Untick Test run and execute in **background**, not in the foreground.
  8. 8Check the posted values in AW01N for a sample asset, and the G/L via FAGLL03.

Errors you will hit, and what they mean

Depreciation has already been posted for period 008

Why: The period is done. Planned run cannot repeat it.

Fix: If something changed since, use Repeat — it posts only the difference.

You cannot post to period 008 — period 007 has not been posted

Why: The sequential rule. A gap exists.

Fix: Post the missing period first, then continue. There is no way to skip.

Run terminated / session ended unexpectedly

Why: Timeout, lock or short dump part-way through.

Fix: Use **Restart**, not Planned. Restart resumes from where it stopped and will not double-post the assets already done.

Asset 100007-0: no depreciation key

Why: The asset master is incomplete — created without a depreciation key in that area.

Fix: Correct the asset master (AS02), then run a Repeat for the period.

Account determination error for depreciation

Why: The asset class points at an account determination with no G/L account configured for depreciation expense or accumulated depreciation.

Fix: A configuration gap. It needs the asset class and account determination checked together, not a workaround on the asset.

Common questions

What is the difference between AFAB and FAA_DEPRECIATION_POST?

FAA_DEPRECIATION_POST is the S/4HANA program for the depreciation run; AFAB is the classic transaction and is generally still available as an entry point. Same purpose, reworked underneath.

Can I undo a depreciation run?

Not directly — there is no reverse button. You correct the underlying asset data and run a Repeat for the period, which posts the difference. This is why the test run matters.

Why is depreciation showing on the asset but not in the G/L?

Because it is *planned*, not *posted*. AW01N shows planned values from the moment the asset exists. Only AFAB moves them into the ledger.

Do I have to run AFAB every month?

Yes. It is sequential and cannot skip, so a missed month has to be posted before the next one can be. Most organisations schedule it as part of the close.

Transactions that go with AFAB

Reading about it only gets you so far

Practise SAP transactions in a safe simulated environment and keep what you learn.

Practise SAP transactions hands-on

Interactive modules, games, and an AI tutor — free to start.

Get started free →