How to Read MD04 Exception Messages in SAP
how to read MD04 exception messages in SAP
Also searched as
- what do MD04 exception icons mean
- MD04 reschedule exception SAP
- how to clear exception messages in MRP
Short answer
The exception indicator in MD04 flags procurement elements whose date or quantity no longer matches the current demand situation - it is SAP's built-in change signal, read element by element in the detail screen, not just the header icon. Triage by exception group first, then decide to reschedule, cancel, or accept each one.
Applies to: SAP ECC 6.0 and S/4HANA, PP-MRP (classic MRP and MRP Live)
Work through MD04 exceptions systematically
- 1Run MD04 for the material and plant, and look at the exception indicator column both on the header line and on individual procurement elements below it.
- 2Double-click an element showing an exception icon to open its detail screen, where the Exception field names the category (rescheduling, date in the past, excess stock, and so on).
- 3Use the exception group filter (Exceptions menu or the traffic-light filter) to narrow MD04 to only elements with active exceptions across a plant or MRP controller instead of scanning every line.
- 4For a scheduling exception, compare the proposed date against today and the order's current start date to decide whether rescheduling the order (ME38 for purchase orders, CO02 for production orders) is operationally feasible.
- 5For a quantity-related exception, use the Pegged Requirements view to see exactly which sales order or planned order is driving the number before changing anything.
- 6If the same exception recurs for a material on every MRP run, investigate the underlying master data - lot size, safety stock, or planning time fence in the MRP1-MRP4 views - rather than manually correcting it each cycle.
- 7For volume review across an MRP controller's whole portfolio, use MD06 (collective display) or MD07 to bulk-review and bulk-act on exceptions instead of opening MD04 material by material.
MD04 is a live pegged list, not a static report
MD04's stock/requirements list reflects the current planning situation - every open requirement pegged against every open procurement element, recalculated (or refreshed) as changes come in. The exception column is SAP's way of telling the planner 'this element no longer lines up with what it was originally planned against.'
That is why the same material can show a clean MD04 one day and exceptions the next without anyone touching it directly - a sales order date change, a new higher-priority order, or an MRP run elsewhere in the supply chain can ripple into the pegging.
Reading an individual exception
The exception shown at the header level is usually a summary of the most significant exception among the material's elements; the real detail is always at the element level. Open the specific planned order, purchase requisition, or production order line and check the Exception field in its detail screen.
Common categories a planner sees regularly are rescheduling (the element's date should move earlier or later to match current demand), items in the past (an open element dated before today), and excess or shortfall against current requirements.
MD04 -> Material, Plant -> Execute
Double-click an element with an exception icon -> Exception field in the detail screen
Menu: Exceptions -> filter by exception group / MRP controller
Deciding what to do with each exception
Rescheduling proposals are suggestions, not commands - only move a purchase order or production order to the proposed date if it is operationally realistic (vendor lead time, shop capacity). If it is not, the right fix is usually to address the demand side (confirm or move the sales order) rather than force a proposal that cannot be met.
For orders inside the planning time fence, MRP will flag exceptions instead of silently moving them - this is intentional protection for firmed, near-term orders, not a defect, and generally means a planner needs to make a manual call rather than let MRP auto-adjust.
Working the exception list by MRP controller
MD06 gives a collective, cross-material view for an MRP controller or plant, letting a planner triage exceptions across their whole portfolio in one screen instead of opening MD04 material by material. MD07 offers a similar collective view geared toward reviewing net requirements.
For weekly or daily planning cadences, many teams export the MD06 exception list to a spreadsheet for review and sign-off before acting in the system, especially where reschedule proposals affect supplier commitments.
Common pitfalls
- !Re-running MRP (MD01/MD02) repeatedly without addressing the underlying exception does not clear a genuine scheduling conflict - it just regenerates the same proposal.
- !Ignoring the planning time fence and expecting MRP to auto-move firmed near-term orders is a misunderstanding of the design, not a bug.
- !Mixing firmed and unfirmed planned orders without periodic review causes repeated reschedule-out exceptions on the same material every run.
- !MD04's exception list reflects the plan at the moment you pulled it and goes stale quickly - always refresh before acting on a screenshot or export from earlier in the day.
- !Acting on the header-level exception icon without opening the specific element detail can lead to fixing the wrong order, since the header often summarizes several different exceptions.
How an ERP-grounded AI assistant handles this
ERPray grounded on your SAP PP data can summarize an MRP controller's open MD04 exceptions in plain language - which are genuine scheduling conflicts, which are inside the planning time fence and expected, and which trace back to a single upstream master data setting - instead of a planner opening MD06 and drilling into each material by hand.
Frequently asked questions
What is the difference between the header exception and the element exception in MD04?
The header icon summarizes the most significant exception among the material's elements as a quick visual cue. The actual, actionable detail is always on the specific procurement element - open it directly rather than acting on the header alone.
Why does MD04 show an exception for an order inside the planning time fence?
MRP will not silently reschedule firmed orders inside the planning time fence, so instead it flags the mismatch as an exception for a planner to review manually. This protects near-term commitments from automatic changes.
Can I bulk-clear exceptions across many materials at once?
MD06 and MD07 give a collective view for an MRP controller so you can review and act on multiple materials in one session, but there is no single button that clears exceptions without a planning decision on each one.
Does the exception list update automatically as new sales orders come in?
MD04 reflects the current pegging whenever you open or refresh it, so a new order or a date change elsewhere can introduce a new exception without an MRP run, depending on your live/net change planning configuration.
Related
SAP M7 021: Deficit of SL Stock Quantity
M7 021 fires during a goods issue, delivery, or confirmation when SAP checks the unrestricted-use (SL) stock for the exact plant, storage location and batch combination and finds less than what you are trying to post out. Fix the entry (batch, storage location, quantity) first; only enable negative stock or downgrade the message to a warning if the business genuinely needs to post ahead of a receipt.
How-toHow to Use BAPI_TRANSACTION_COMMIT Correctly
SAP's BAPI programming model separates business logic from the database commit on purpose, so a caller must explicitly call BAPI_TRANSACTION_COMMIT after a successful BAPI - usually with WAIT = 'X' - or the created object never actually persists. Skipping this step, or forgetting WAIT, is the most common reason a BAPI 'runs fine' but nothing gets saved.
Error fixSAP IDoc Status 51: Application Document Not Posted
Status 51 tells you the IDoc reached the application layer and failed to post, but the status text itself is not the error - the real cause sits in the status record's long text or the linked application log. Fix the underlying data or configuration, then reprocess the IDoc through BD87 rather than editing the status.
Error fixSAP Short Dump TIME_OUT: Maximum Runtime Exceeded
A TIME_OUT runtime error means a dialog (or RFC) work process ran longer than the maximum allowed runtime, controlled by profile parameter rdisp/max_wprun_time (600 seconds by default). The fix is almost always to move the long-running work to background processing or tune the underlying program, not to raise the timeout.
Error fixSAP F5 060: Posting Only Possible in Periods X and Y
Message F5 060 fires when a document date falls in a fiscal period that the posting period variant has not opened for that account type. Either change the document/posting date into an open period, or have Finance open the required period and account type in OB52 for the relevant variant.
Error fixSAP KI 235: G/L Account Requires an Assignment to a CO Object
KI 235 means a primary cost or revenue element exists (or should exist) on a P&L account, but the posting you are entering has no valid Controlling object - cost center, order, WBS element or profitability segment - to receive it. Add the account assignment on the posting, or set a default cost center via OKB9 so future postings resolve automatically.
AI for ERPAI Agents for SAP Production Planning, MRP, and Exception Triage
AI agents that triage SAP MD04 exceptions, explain predictive MRP shortages, and draft planned-order actions, grounded on your own SAP data, deployed on-prem.
AI for ERPAI for SAP Plant Maintenance: Notifications, Work Orders, and Predictive Signals
AI grounded on SAP PM data that triages notifications, drafts work orders, standardizes failure codes, and flags predictive maintenance signals, on-prem.
AI for ERPAI for SAP Quality Management: Notifications, 8D, and CAPA Without the Manual Drafting
AI grounded on SAP QM data that triages notifications, drafts 8D and CAPA reports, and summarizes inspection trends, deployed on-prem for full traceability.
Stuck on SAP ERP (ECC 6.0 / S/4HANA)?
Talk to engineers who work inside SAP ERP (ECC 6.0 / S/4HANA) every week, and who build private AI that answers these questions from your own ERP data.