ERPClimb logoERPClimb
S/4HANA changeObjectMRP Live replaces the classic planning runModulePP_M2D

MRP Live Replacing Classic MRP in S/4HANA

S/4HANA replaces the ABAP-based classic MRP run (MD01, MD02, MD03) with MRP Live (MD01N), which pushes the netting and BOM explosion logic into the HANA database as stored procedures instead of running it in the application server. Runtimes drop sharply, but classic user exits and BAdIs tied to the old logic are not called, and some scenarios such as make-to-order with sales order stock still require the classic run as a fallback.

This page covers how the material requirements planning run changes from the classic ECC background-job model to MRP Live in S/4HANA, and what that means for custom code, job scheduling, and planner habits. The emphasis is on what actually breaks during conversion and what a project must check before go-live rather than the mechanics of the calculation itself.

Reviewed by an ERPClimb SAP consultant on 23 Sept 2026· 1,198 words

Classic ECC behaviour

In ECC, MRP runs through MD01 (total planning), MD02 (single-item multi-level), or MD03 (single-item single-level), executed as ABAP background jobs on the application server. Total planning for a plant is usually split into several parallel variants by MRP controller or material range, each running as its own job, monitored separately in the job log. The run reads planning file entries flagged by material master changes, explodes BOMs level by level according to low-level code, nets requirements against stock and existing receipts, and writes results as planned orders and purchase requisitions, alongside a persisted MRP list that freezes the situation at the time of the run for later comparison against the live stock/requirements list. Runtimes for a large plant with deep BOMs commonly run overnight. Custom logic is attached through user exits and BAdIs that adjust exception messages, requirement dates, or lot sizing during the ABAP-level calculation, and planners routinely compare the frozen MRP list (MD05) against the current situation (MD04) to see what has moved since the last run.

S/4HANA behaviour

MRP Live, run through MD01N, replaces total planning and largely absorbs single-item planning into one transaction. The netting, low-level BOM explosion, and lot-sizing calculations are pushed down into the database as stored procedures rather than executed row by row in ABAP, which is the main source of the runtime improvement. There is no more manual splitting into parallel job variants by MRP controller; a single MRP Live job processes the plant, and the old application-server parallel processing framework used for MD01 is not the mechanism at work here. MRP Live does not produce a persisted MRP list in the same sense as classic MRP; planners generally work against the live stock/requirements list. Not every classic scenario is supported directly: complex make-to-order with sales order stock, certain engineer-to-order chains, and a handful of special procurement combinations still need to run through classic total planning or the batch tool that wraps it, so materials in those categories are typically excluded from MRP Live and planned separately. Classic transactions MD01, MD02, and MD03 remain available for this purpose but are positioned as the fallback path, not the default.

Project impact

The change is felt by planners, the basis/job scheduling team, and anyone who built custom evaluations on top of classic MRP output.

  • Custom reports and interfaces that read the classic MRP list expecting a frozen snapshot per run break, because MRP Live does not generate that same persisted list; anything downstream comparing 'last MRP list' to 'current situation' needs redesign.
  • User exits and BAdIs written against the classic ABAP-level MRP logic (custom exception messages, custom date logic, custom lot-size adjustments) are silently not invoked when the calculation runs as a database stored procedure, and this is often discovered only when a familiar exception message stops appearing.
  • Job scheduling built around several parallel classic MRP variants per plant has to be redesigned around a single MRP Live job, changing how job monitoring, restart, and failure alerting work.
  • Materials with sales order stock, engineer-to-order configurations, or unsupported special procurement types have to be segmented out and still planned through classic total planning or its batch wrapper, so the project ends up running two planning mechanisms side by side rather than one.
  • Planners lose the habit of comparing a frozen MRP list against the live situation and need retraining on what evaluation now represents 'what changed since the last run'.
  • Security roles built around MD01/MD02/MD03 need MD01N added, and audit trails that referenced job variant names by MRP controller need rework since the job structure is different.

Migration actions

Sequence matters here; the custom-code inventory and scenario segmentation are pre-conversion gates, not cleanup that can happen after go-live.

  • Inventory every custom BAdI or user exit attached to classic MRP and determine, one by one, whether the equivalent hook exists under MRP Live; this is a gate item, since silently losing exception logic at month end is a production incident, not a defect ticket.
  • Identify every material, plant, or procurement combination that is not supported by MRP Live (sales order stock, engineer-to-order, unsupported special procurement) and formally route it to classic total planning or its batch tool; this segmentation has to be agreed before cutover, not discovered afterward.
  • Rebuild the job scheduling chain around MRP Live's single-job model, replacing the old variant-per-controller split, and rework monitoring and restart logic accordingly.
  • Retire or rebuild custom reports depending on the persisted classic MRP list, replacing them with logic based on the current stock/requirements list.
  • Update security roles to include MD01N and plan the eventual phase-out of reliance on MD01/MD02/MD03 as the default entry point.
  • Run a parallel comparison of MRP Live output against classic MRP output on production-scale data before cutover, checking planned order dates and exception messages, not just runtime.
  • Train MRP controllers explicitly on the loss of the frozen MRP list and on the new evaluation path for identifying what changed since the last run.

Whose problem this is

This is a joint decision. Functional PP owns which materials fall back to classic planning and which custom exception logic is mandatory versus expendable. Technical/basis owns the database stored procedure objects, job design, and performance tuning. The call to keep any material on classic MRP has to be validated against technical feasibility before it is written into the cutover plan, not assumed by either side alone.

Common pitfalls

Most failures here surface at volume, not in a clean sandbox test.

  • Sandbox testing with a small material master sample shows MRP Live 'just working', but in production with millions of materials the custom BAdI logic that silently stopped firing is only noticed at month end when a shortage that used to generate an exception message goes unflagged.
  • Teams assume MD01/MD02/MD03 are fully retired and stop maintaining them, then discover late that a scenario segment (sales order stock, engineer-to-order) still depends on them permanently, not just during transition.
  • Storage location MRP or specific special procurement combinations behave differently and this only surfaces for a small subset of plants that were not in the test scope.
  • The custom development inventory is done at blueprint level from documentation rather than by walking the actual attached exits, so the count of affected BAdIs is understated and real gaps appear only in integration testing.
  • The planning file entry consistency check and rebuild before go-live is treated as optional cleanup rather than a mandatory technical gate, and materials silently do not get planned after cutover because their planning file entries were never regenerated correctly.

Take the next diagnostic step

Use these ERPClimb resources to explore the scenario. Verify all actions in your SAP system before making production changes.

Related SAP objects

Reviewed pages this object connects to in the ERPClimb knowledge graph.

Source: ERPClimb — https://erpclimb.com/sap-s4hana-changes/mrp-live-replaces-the-classic-planning-runERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.