Lesson 4 of 5
Impacted reports and extensions
10 min
Listen to this lesson
Configuration converts. Custom code converts too, but it may no longer work, because the data it reads or the logic it extends has changed. Manufacturing is full of such code: exception reports built on MRP lists, enhancements to MRP, planning interfaces, and extracts for plant reporting. This lesson helps the manufacturing team and Kenji find what breaks and decide what to do.
Where manufacturing custom code breaks
| Change | Typical custom code affected | What to check |
|---|---|---|
| MRP lists not written by MRP Live | Reports and interfaces reading MRP list data | Whether the report still gets data; successor apps or a redesign |
| Classic MRP reads data via AMDP | MRP BAdI implementations | Re-implementation as AMDP BAdIs, even if classic MRP stays in use |
| New planning file | Code reading or writing the old planning file | Use of the new table and the new setup report |
| Total dependent requirements dropped | Reports reading totals | Switch to individual dependent requirements |
| Storage location MRP removed | Code using storage-location MRP fields | MRP area records and their fields |
| SOP not future technology | Custom planning hierarchies, SOP extracts | Compatibility scope status and the successor |
| Logistics Information System in PP | Reports on LIS info structures | The LIS in PP simplification item and the analytics successor |
Manufacturing changes and the custom code they typically affect. Confirm each against the business impact note.
The MRP in HANA item is specific about extensions: before using MRP Live, re-implement BAdI implementations and extensions of classic MRP as AMDP BAdIs. It adds that some BAdI implementations may need adjustment even if you keep classic MRP, because classic MRP transactions also read receipts and requirements through an ABAP Managed Database Procedure in SAP S/4HANA, and that optimization cannot be switched off. Kenji's team therefore treats every MRP BAdI as affected.
- InventoryAll custom objects touching planning, production orders and plant reporting
- UsageWhich objects ran in EP1 in the last 12 months; unused code is a deletion candidate
- AnalysisABAP test cockpit with SAP S/4HANA checks and the simplification database
- DecisionDelete, adapt, replace with standard app, or redesign
- TestEach adapted object gets a regression test with expected output
Do not forget the code at the edges. Interfaces that send planned or production orders to shop floor systems, extracts that feed plant dashboards, and output for order papers all read manufacturing data. SAP Readiness Check includes an integration analysis that inventories IDocs, RFCs and BAPIs, web services, OData services, SAP BW extractors and flat file interfaces, and highlights the ones most likely to be affected by the transition. Use that list alongside the custom code results so no manufacturing interface is left untested.
Use the custom code tools, but do not stop there
The SAP S/4HANA 2025 Conversion Guide explains that custom code is checked against the simplification database with the Custom Code Migration tool or the ABAP test cockpit, and warns that the checks do not yet identify every instance of non-compliant code. The Simplification Item Catalog remains the reference, and SAP states that you also need to test custom code in SAP S/4HANA. Readiness Check adds a custom code analysis view by simplification item category. For a test lead, this means static checks reduce the list; regression tests prove the result.
What would you do?
The ATC run shows no findings for Contoso's custom MRP BAdI implementation. Kenji suggests marking it "no change needed". What should Priya ask for?
- Reports on MRP lists, MRP BAdIs and planning file code are the usual casualties.
- MRP BAdIs need AMDP re-implementation, even when classic MRP is kept.
- Static checks shorten the list; they do not prove that code works.
- Prioritize by daily use and breakage risk; every adapted object gets a test.
Check your understanding · not graded
Lesson check
1. A custom report reads MRP list data. What happens after the switch to MRP Live?
2. Why can an MRP BAdI need changes even if classic MRP stays in use?
3. What do custom code checks against the simplification database not guarantee?
4. A custom report is used daily and likely broken. What is its priority?