Lesson 1 of 6
The remediation problem: why custom code stalls conversions
10 min
Listen to this lesson
Every ECC-to-S/4HANA conversion has a custom code workstream, and in most programs it's the one that slips first. Contoso's numbers are typical. Its ECC production system EP1 held about 11,800 Z objects. Usage data showed that roughly 40% were never used, and 4,300 were deleted in scoping. That left 7,500 objects in scope, and Kenji's first scoped ATC run against them produced 3,900 findings, about 1,700 of them with a quick fix. This course asks what AI changes about that workload, and what it doesn't.
The SAP process in four phases
SAP's Custom Code Migration Guide for SAP S/4HANA 2025 splits the work into preparation before the technical conversion and adaptation after it. The tools are mature and deterministic; AI arrives on top of them, not instead of them.
- ScopingCollect usage in production with SCMON and aggregate it with SUSG for at least a year; delete unused code with a deletion transport created by the Custom Code Migration app
- AnalysisRun the SAP S/4HANA custom code checks remotely from a central check system: the Custom Code Migration app on S/4HANA or in the SAP BTP ABAP environment, or ATC on AS ABAP 7.52
- AdaptationAfter SUM: SPDD during the conversion, then SPAU and SPAU_ENH, then ATC with S/4HANA checks in ADT and quick fixes
- After go-liveKeep S4HANA_READINESS in regular ATC runs, use the Runtime Check Monitor (SRTCM) and tune SQL with the SQL Monitor (SQLM)
The checks and the variant
The checks compare custom code against the Simplification Database, which lists every SAP object simplified in S/4HANA and points to the SAP Note that explains each simplification item. You download it as a ZIP (SAP Note 2241080) and import it in transaction SYCM in the check system. Product-specific global check variants pick the target release. For S/4HANA 2025, the guide lists S4HANA_READINESS_2025 (material number length 40, extended amount fields enabled) and S4HANA_READINESS_2025_NO_FLE (material number length 18, extended field lengths disabled). After conversion, the local variant S4HANA_READINESS adds the check for S/4-related syntax errors. SAP recommends focusing on priority 1 and 2 findings first and points to SAP Note 3735015 for adjusted priorities.
| Simplification item (SAP Note) | What changed | Typical finding in Contoso code |
|---|---|---|
| 2198647: data model changes in SD | Document flow and status tables (VBFA, VBUK, VBUP) and field VBTYP changed | Order reports that read VBUK for delivery status |
| 2220005: pricing and condition technique | KONV replaced for document conditions | Custom pricing reports selecting from KONV |
| 2431747: general ledger changes | Incompatible changes to BSEG access compared with classic ERP | Finance extracts that update or read BSEG directly |
| 2215852: material number field length | MATNR extended to 40 characters | Fixed-length string handling of material numbers |
| 2610650: amount field length extension | Amount fields extended | Arithmetic and interfaces with fixed amount lengths |
Simplification items that SAP lists with quick fixes in the custom code migration guide.
Why remediation stalls
- Volume without triage. 3,900 findings arrive as one list. Without priorities and usage, teams fix in list order and burn time on code nobody runs.
- Knowledge gaps. Each finding points to a simplification item and a note. Reading the note, finding the right replacement and understanding legacy code written fifteen years ago is slow, and the original authors are gone.
- Fixes that compile but change behavior. Replacing a VBUK read with fields on VBAK compiles; whether the report still selects the same orders is a different question.
- Testing debt. ATC is static. SAP's guide states that ATC can't find all issues, such as dynamic code, so testing has to cover what checks can't.
- Repeated cycles. Fixes made in the sandbox and CMD are transported and applied in CMQ, Mock 1, Mock 2, the dress rehearsal and CMP. A bad fix travels through every cycle.
The clean core picture adds a second lens. Contoso classified the 7,500 objects by SAP's extensibility levels: 1,200 level A, 4,000 level B, 2,000 level C and 300 level D, the last grouped in 37 extensions. Level D code is where AI help is most tempting and most dangerous: it touches SAP internals, and a plausible fix can hide a deep dependency.
One more number from Contoso's real conversion belongs in the picture. SCMON and SUSG had collected usage in EP1 for thirteen months before the conversion; after go-live, a second usage review (SUSG in CMP) found about 960 of the 7,500 objects in scope still never called. Some of those were year-end or audit programs that simply hadn't run yet; others were dead. The lesson for remediation is uncomfortable: a large share of the effort goes into code that might never run, so cheap, deterministic fixes and good scoping matter as much as any AI. Spending agent runs and senior review time on objects with no recorded usage is the most common way to waste both.
What would you do?
In the what-if replay, a partner proposes skipping usage-based scoping "because the agent is fast enough to fix all 11,800 objects anyway". Grace asks Kenji for his view. What should he say?
- SAP's process: scoping with SCMON and SUSG, remote analysis with the Custom Code Migration app or ATC, adaptation after SUM, then ongoing checks.
- The Simplification Database (SAP Note 2241080, transaction SYCM) feeds the checks; S4HANA_READINESS_2025 and _NO_FLE are the 2025 variants.
- Contoso: 11,800 objects, 4,300 deleted, 7,500 in scope, 3,900 findings, about 1,700 with quick fixes.
- Remediation stalls on triage, knowledge, behavior-changing fixes, testing debt and repeated conversion cycles.
Check your understanding · not graded
Lesson check
1. Which transactions does SAP recommend for collecting usage data before scoping?
2. What distinguishes S4HANA_READINESS_2025_NO_FLE from S4HANA_READINESS_2025?
3. Where do you import the Simplification Database?
4. What does SAP's guide say ATC can't do?