MD04 — Stock/Requirements List Display
MD04 displays the stock/requirements list for a material at plant or MRP area level: current stock plus every open demand and supply element, pulled live from planning, sales, purchasing and production tables. It has no persistent table of its own. What appears depends entirely on whether MRP has actually run for that material and whether the planning file entry is set.
MD04 is the primary screen a planner or consultant opens to see the current supply and demand picture for a material-plant combination. This page covers what actually drives the list, the recurring reasons it shows the wrong thing or nothing at all, and how to prove in the data whether the problem is MRP, master data, or the display filter.
Reviewed by an ERPClimb SAP consultant on 15 Sept 2026· 1,313 words
Purpose
MD04 shows the stock/requirements list: a chronological line-up of a material's warehouse stock against every open requirement and every open receipt for a plant or MRP area. Requirements include sales orders, reservations, dependent requirements from BOMs, and forecast. Receipts include purchase requisitions, purchase orders, planned orders, and production or process orders. The one structural fact that explains most confusion: MD04 is not reading a stored MRP result table, it is assembling the list dynamically at the moment the screen opens, pulling from the live transactional tables behind sales, purchasing and production. There is no 'MD04 table' to query directly for the exact list a user saw. A second MD04 run five minutes later on the same material can show a different picture purely because a sales order was entered or a goods receipt posted in between.
When it is used
MD04 sits downstream of the MRP run (MD01 or MD02) and is the standard place to check whether that run produced sensible results, and downstream of any transaction that consumes or creates supply or demand for a material: sales order entry, goods movements, purchase order creation, production order release. Planners open it several times a day as their working cockpit; consultants open it during an incident to see, at a glance, whether a shortage, a duplicate order proposal, or a missing planned order is real or a display artifact. In S/4HANA the equivalent Fiori app covers the same use case for planners who work from the launchpad, but MD04 remains the faster tool for a consultant doing root-cause work because it exposes exception messages and MRP elements with less navigation than the app.
How to use it in practice
- Enter material number and plant (or MRP area) on the initial screen.
- Press Enter to generate the live list; do not assume it is cached from a prior call.
- Scan the header row for stock and the exception indicator column for red or yellow flags.
- Double-click any MRP element line to jump to the originating document (sales order, purchase requisition, planned order, production order).
- Use the filter or settings icon to check whether firmed, planned, or reservation elements are being suppressed from view.
- Use the refresh function after any change elsewhere in the same session rather than trusting the screen still open.
Key data objects
- PLAF - planned orders proposed by MRP, the main supply element for in-house produced materials.
- RESB - reservations, covering dependent requirements from orders and manual reservations.
- EBAN - purchase requisitions, both MRP-generated and manually created.
- EKET - purchase order schedule lines, the receipt side once a requisition converts to a PO.
- VBBE - sales order and delivery requirements, the demand side driven by sales.
- MARC - plant-level material master data, including the MRP type and lot size that shape what MD04 proposes.
- MARD - storage location stock, feeding the stock figure shown at the top of the list.
- MDVM - the planning file entry flag; if not set for the material-plant, MRP skips it and MD04 shows stale supply elements.
How to prove it in the data
To confirm what MD04 is actually built from for a given material and plant, check the source tables directly rather than trusting the screen a second time. Query MDVM on material and plant to confirm the planning file entry exists and its change indicator; an entry stuck without the net-change flag means MRP has not picked it up since the last relevant change. Cross-check PLAF for open planned orders and RESB for reservations on the same material-plant, filtering on the relevant MRP element status, and compare counts against what the MD04 screen actually rendered. A mismatch between what these tables hold and what MD04 displayed usually points to a filter setting or an MRP area that was not selected.
ECC vs S/4HANA
MD04 still exists and functions the same way on S/4HANA; the screen layout, exception codes, and drill-down behavior are essentially unchanged for a consultant working an incident. The underlying selection logic was rebuilt against the S/4HANA data model rather than the classic pooled MRP tables, which mainly affects performance on large materials, not the diagnostic approach. A Fiori app equivalent exists for planners working from the launchpad, covering the same stock and requirements view, but it does not replace MD04 for root-cause work since MD04 still exposes the raw MRP elements more directly.
Common pitfalls and how to diagnose them
- Stale screen, not stale data: a planner reports MD04 is wrong, but the session was opened before a goods receipt or sales order change and never refreshed. Always re-enter the transaction or use the refresh function before trusting the discrepancy is real.
- Planning file entry not set: check MDVM for the material-plant. If the entry is missing or the net-change indicator is not set, the material was never queued for the next MRP run, so MD04 shows the old supply situation regardless of how recently MRP ran on other materials.
- MRP area confusion: the material is planned in a specific MRP area (storage location or subcontractor MRP area) but the consultant opened MD04 at plant level, or vice versa. The requirement and the planned order can end up on different screens entirely, looking like a missing element when it is only a scope mismatch.
- Display filter hiding elements: the settings for the list can suppress firmed receipts, past exception periods, or specific MRP element categories. Before concluding an order is missing, check the filter, not the master data.
- Exception message misread: a rescheduling exception (bring forward or push back) is not the same as a shortage exception, and treating one as the other leads to firefighting a problem that does not exist. Read the exception code, not just its color.
- Missing source of supply: a purchase requisition sits unconverted because no valid info record or source list entry exists for the material-vendor-plant combination. MD04 will show the requisition as a receipt but it will never become a PO until sourcing is fixed, which looks like a delay but is a master data gap.
- Authorization gaps: a blank or partial list can be an authorization restriction on the plant or MRP area rather than an absence of data; confirm with a user who has broader access before treating it as a data problem.
Whose problem this is
This is functional territory, owned by the PP or MM planner and the consultant supporting the planning process. ABAP involvement is rare and limited to custom exception logic or performance issues on the list generation; Basis involvement is limited to authorization objects for plant or MRP area. A good handover states the exact material-plant (or MRP area), the timestamp the screen was viewed, whether the planning file entry was checked, and whether the discrepancy survived a refresh.
Related SAP objects
Reviewed pages this object connects to in the ERPClimb knowledge graph.
Source: ERPClimb — https://erpclimb.com/sap-tcodes/md04ERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.