AFRU table — AFRU Order Confirmation Table
AFRU stores order confirmations, one row per confirmation number and counter, recording confirmed yield, scrap, work center, actual start and finish dates, and posting date for a specific operation of a production or process order. It is the table to query when reconciling reported quantities, actual dates, or work center load against what the order routing planned.
AFRU is the confirmation history table behind transactions like CO11N, CO15 and mass confirmation runs. This page covers the fields worth trusting, the joins back to the order and routing, and the reversal and split-confirmation traps that make raw AFRU counts misleading.
Published 16 Sept 2026· 1,013 words
What it stores
One row in AFRU represents a single confirmation posting against a single operation of a single production, process or maintenance order, identified by confirmation number and confirmation counter. Each confirmation carries the reported yield and scrap for that operation, the actual start and finish, the posting date, the work center at which the confirmation was recorded, and a reference back to the order and the routing operation being confirmed. A single order operation can and usually does have many AFRU rows over its life: partial confirmations, final confirmation, and any reversals of earlier confirmations. The table is a log, not a current-state table, so the operation status and the accumulated confirmed quantity are calculated by summing AFRU rows, not read from a single field on one row.
Key fields
- MANDT - client
- RUECK - confirmation number, the document key for the confirmation
- RMZHL - confirmation counter, together with RUECK forms the primary key
- AUFNR - order number the confirmation belongs to
- AUFPL - order routing number, links to the operation record in AFVC
- APLZL - general operation counter, together with AUFPL links to AFVC
- VORNR - operation number within the order, for readable cross-reference
- WERKS - plant of the order
- ARBID - internal ID of the work center where the confirmation was posted, links to CRHD
- BUDAT - posting date of the confirmation
- ISDD - actual start date of the confirmed activity
- IEDD - actual finish date of the confirmed activity
- LMNGA - confirmed yield quantity for this posting
- XMNGA - confirmed scrap quantity for this posting
How it joins the data model
- AFRU-AUFPL = AFVC-AUFPL and AFRU-APLZL = AFVC-APLZL to reach the specific routing operation being confirmed
- AFRU-AUFNR = AFKO-AUFNR to reach the order header, order type, and overall order status
- AFRU-ARBID = CRHD-OBJID to resolve the internal work center ID to the work center code and name
- AFRU joined to the order component or reservation tables only indirectly, through the operation number in AFVC, never directly on a shared key
How to read it safely
AFRU is a genuinely large table on any site with real production volume, since every partial confirmation, final confirmation and reversal adds a row and history is rarely archived aggressively. Always restrict by MANDT and by a date range on BUDAT before anything else; a full scan by order number alone across years of history is the most common cause of a timeout. If the investigation is about one order, filter by AUFNR and AUFPL together, not AUFNR alone, since AUFPL is far more selective once known. Avoid filtering by ARBID as a primary key field, it is an internal surrogate and unhelpful for eyeballing results; join to CRHD for the readable work center code instead.
How to prove it in the data
Symptom: an operation shows as fully confirmed in CO13 or in order status but the reported quantity in reporting looks wrong. Select AFRU where AUFNR equals the order and VORNR equals the operation, sorted by BUDAT ascending, and sum LMNGA across all non-reversed rows for that operation. Compare that sum against the order quantity from AFKO. A mismatch usually means either a reversal row was not netted out in whatever report produced the wrong figure, or a confirmation was posted against the wrong operation number.
ECC vs S/4HANA
AFRU continues to exist as a transparent table on S/4HANA and confirmation postings still write to it in the same shape as on ECC. Reporting increasingly runs through CDS views built on top of AFRU rather than direct table reads, but the underlying table structure and posting logic for confirmations has not been replaced. Consultants querying confirmation history directly, outside of Fiori apps, still land on AFRU.
Common pitfalls
- Treating AFRU as a current-state table and reading a single row's LMNGA as the total confirmed quantity, when the true total is the sum of all non-reversed rows for that operation
- Forgetting that a reversed confirmation leaves both the original and the reversal row in AFRU; naive SUM without excluding or netting reversal pairs overstates or understates the reported quantity
- Counting AFRU rows to estimate how many times an operation was 'touched' by the shop floor, when a single confirmation transaction can generate more than one AFRU row depending on how quantities, activities and goods movements were combined in that posting
- Assuming ISDD and IEDD reflect the operation's planned dates; they reflect what the person confirming actually typed or what the terminal defaulted to, which is frequently the same date for start and finish regardless of true elapsed time
- Joining on ARBID and assuming it is stable across plants; the same physical work center can have different internal IDs in different environments after a system copy or client refresh, which silently breaks hardcoded joins
- Using AFRU to answer 'is this order finished' instead of checking the order status fields on AFKO/JEST, since a fully confirmed operation does not automatically mean the order status reflects technical completion
Whose problem this is
Confirmation data quality is a shop floor and production planning question first, resolved by checking what was actually keyed or scanned at the work center, not a table structure question. A functional PP consultant owns discrepancies between planned and confirmed quantities; a basis or data team gets involved only if archiving or a system copy has affected ARBID consistency or historical volume.
Related SAP objects
Reviewed pages this object connects to in the ERPClimb knowledge graph.
Source: ERPClimb — https://erpclimb.com/sap-tables/afruERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.