QMFE table — QMFE - Quality Notification Defect Items
QMFE stores one row per defect item recorded inside a quality notification (customer complaint, internal problem, vendor complaint). Each row carries the notification number, a defect item sequence number, the defect code group and code, and the object part where the defect occurred. Causes and follow-up activities for that defect live in separate tables (QMUR, QMMA) joined back through the same notification and item number.
This page covers what a QMFE row actually represents inside a QM notification, the fields worth trusting for joins and selection, and the recurring mistakes consultants make when they read defect counts or codes out of this table without joining to the header, cause, or catalog tables. It also covers how the table behaves in S/4HANA and who should own a data discrepancy raised against it.
Published 16 Sept 2026· 1,058 words
What it stores
One row in QMFE represents a single defect entry logged against a quality notification. A notification header in QMEL can carry several distinct defects, and each of those gets its own line in QMFE, identified by a running item number within the notification. The row records which defect was found (via a code group and code taken from the QM catalog), and where on the object or product the defect was located (object part code group and code). QMFE does not itself explain why the defect happened or what was done about it, those belong to the cause table and the activity table respectively, both keyed off the same notification and item number. Because catalogs and code groups are configured per plant and per notification type, the meaning of a given code in QMFE only makes sense once the catalog profile in force for that notification is known.
Key fields
- MANDT - client
- QMNUM - notification number, foreign key to the notification header table
- FENUM - defect item number, the running sequence number of this defect within the notification, not a timestamp
- FEGRP - code group for the defect code, taken from the catalog assigned to the notification
- FECOD - the defect code itself, only meaningful together with FEGRP and the catalog profile in force
- OTGRP - object part code group, identifies the category of location on the object
- OTEIL - object part code, the specific part or location where the defect was found
How it joins the data model
- QMFE-QMNUM = QMEL-QMNUM, joins each defect item back to its notification header
- QMFE-QMNUM/FENUM = QMUR-QMNUM/FENUM, links the defect item to the cause entries recorded against it
- QMFE-QMNUM/FENUM = QMMA-QMNUM/FENUM, links the defect item to activities or tasks executed against it
- QMFE-FEGRP/FECOD = QPCT-CODEGRUPPE/CODE, resolves the defect code to its descriptive text in the catalog
- QMFE-FEGRP = QPGR-CODEGRUPPE, resolves the code group master record used to build the catalog
How to read it safely
Always restrict by MANDT first, this is a client-dependent table and cross-client selects are meaningless in practice. QMNUM is the most selective field, a single notification typically has a handful of defect items, so pulling by QMNUM is cheap. Selecting broadly by FEGRP or FECOD across the whole table to count how often a defect occurs is expensive and, more importantly, not directly comparable unless every row selected shares the same catalog profile, plant, and notification type. Join to QMEL first to filter by plant, notification type, and creation date before aggregating on FEGRP/FECOD, otherwise the aggregation mixes catalogs that use the same code number for different meanings.
How to prove it in the data
Symptom: a plant reports that the same defect keeps recurring on a material. Select QMFE joined to QMEL on QMNUM, restrict QMEL by the material and plant fields and by a creation date range, then group the result by FEGRP and FECOD. A high count on one specific code group and code combination, consistent across notifications, confirms a recurring defect pattern for that material rather than a one-off complaint. Cross-check the catalog profile behind that code group before quoting the defect description in a report.
ECC vs S/4HANA
QMFE is retained in S/4HANA as a transparent table with the same structural role it had in ECC. The QM notification data model has not been rebuilt around a new CDS-based persistence layer in the way some logistics tables have, so consultants moving from ECC continue to read and join QMFE the same way. Notification transactions continue to write to it directly. Treat any specific release claim about field additions with caution and verify against the system in front of the reader rather than this page.
Common pitfalls
- Treating the row count in QMFE as a measure of severity. One notification can log several trivial defect lines, another can carry a single severe one, so counting rows overstates or understates business impact if read without weighting.
- Reading FENUM as a chronological or priority order. It is only the sequence number assigned when the defect was entered, nothing more.
- Drawing conclusions about root cause directly from QMFE. The table has no cause field, the cause sits in the linked cause table, skipping that join produces a report that answers what broke but not why.
- Comparing FECOD values across plants or notification types without checking the catalog profile. The same numeric code can carry a completely different meaning under a different catalog assignment.
- Assuming a defective quantity field exists on this table. Quantity information, where captured, sits closer to the inspection lot or the notification item quantity fields elsewhere, not reliably inside QMFE itself, so this should be verified in the specific system rather than assumed.
- Including cancelled or deleted notifications in an aggregate without filtering on the header status. QMFE rows for a notification that was later cancelled remain in the table unless archived, and will silently inflate a defect frequency count.
Whose problem this is
A discrepancy in defect data is a QM functional consultant's problem first, since catalog profiles, code groups, and notification type configuration determine what a row in QMFE means. The plant quality department owns the business judgment of whether a defect classification is correct. Catalog master data changes go through whoever administers the QM catalogs, not through the business user entering the notification.
Related SAP objects
Reviewed pages this object connects to in the ERPClimb knowledge graph.
Source: ERPClimb — https://erpclimb.com/sap-tables/qmfeERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.