S/4HANA changeObjectCustom code adaptation and the ATC S/4HANA readiness checkModuleABAP

Custom Code Adaptation and ATC Readiness Check

ATC with the S/4HANA readiness check variant scans custom code against the simplification database, flagging direct access to tables and function modules that were replaced, removed, or restructured in the conversion. It is a mandatory pre-conversion gate, not an optional cleanup pass, because errors it reports typically mean the program will not compile or will corrupt data after go-live.

This page covers how custom ABAP code that ran unchecked for years in ECC is exposed by the S/4HANA simplification list and the ABAP Test Cockpit readiness check. It focuses on what actually breaks in reports, interfaces and batch jobs, and the order in which a project must remediate findings before a technical conversion can proceed.

Published 16 Sept 2026· 1,051 words

Classic ECC behaviour

In ECC, custom code had almost unrestricted access to the data dictionary. Developers wrote direct SELECTs against transparent tables such as MSEG, VBAP, KNA1 or LFA1, called internal function modules that were never released for external use, and built ALV reports and interfaces on top of table structures that had not changed meaningfully in a decade. The Code Inspector (SCI) existed and some shops ran it, but it was rarely mandatory, and its checks were about performance and syntax hygiene rather than forward compatibility. Programs accumulated over fifteen or twenty years of enhancements, upgrades and consultant turnover, with no reliable record of which reports were still used by the business and which were dead weight kept alive by fear of deleting something. Field lengths for material number, document number and similar keys were fixed and everyone coded against those fixed lengths, including in interfaces to non-SAP systems. Nobody needed to think about any of this changing, because in ECC it never did.

S/4HANA behaviour

S/4HANA restructures or removes a large number of the tables, function modules and data elements that ECC custom code relied on. Some tables became compatibility views that mimic the old structure but read from a redesigned base table (for example the material and business partner areas), some function modules were declared obsolete in favour of new BAPIs, and key fields such as material number were extended in length, breaking any custom internal table, database table or interface field defined to the old fixed length. ATC, run with the S/4HANA readiness check variant, scans every custom object against the simplification database and reports a finding for each hit: obsolete object used, direct access to a table that is now a compatibility view, field length mismatch, removed data element, and so on. Findings are categorised by severity, from information through warning to error, and the check can be run centrally against a remote system so an ECC landscape can be assessed before any conversion project formally starts. The check is code-static, not runtime, so it finds what could break, not what will definitely break in every execution path.

Project impact

The blast radius is wider than most projects expect going in, because custom code touches every module and every interface simultaneously.

  • Custom reports doing SELECT * or JOIN against tables that became compatibility views often still compile, but read stale or incomplete data because the underlying storage moved.
  • Material number and other extended-length fields break fixed-length internal tables, IDoc segments and flat-file interfaces to external systems the moment a real 40-character material number appears in production data.
  • Custom exits and BAdIs built around the old customer/vendor master screens conflict with the business partner model once it becomes the leading object.
  • Batch jobs that run monthly, quarterly or only at year end are the ones most likely to be missed in usage-based cleanup and the most painful to discover broken during month-end close after conversion.
  • Interfaces owned by a different team or a third-party middleware vendor are frequently not in scope of the ABAP remediation list at all, so they fail silently in production integration testing.

Migration actions

Custom code remediation is not a parallel workstream that can slip against a fixed conversion date; the error-level findings are a technical gate the conversion cannot pass without.

  • Run the ATC S/4HANA readiness check against the full custom code base as early as possible, ideally as part of the initial readiness assessment, not after the technical sandbox conversion.
  • Pull usage statistics (workload data over a full business cycle including year end) before deciding anything is dead code; a program with zero hits in a three-month window is not proof of irrelevance.
  • Triage findings by severity and by business relevance jointly with functional teams; an error-level finding on a report nobody uses can be deleted, the same finding on a core interface cannot be deferred.
  • Remediate error-level findings before the technical conversion; treat warnings as a second-priority queue to clear before go-live, not after.
  • Re-run the check after remediation and again after the technical conversion, since some simplification items only trigger fully once the target release is in place.
  • Fold ATC into the ongoing development pipeline post go-live so new custom code cannot reintroduce the same patterns.

Whose problem this is

Technical: ABAP developers own the actual code fixes and re-testing. Functional: process owners must confirm whether a flagged program, transaction or interface is still needed, since deleting the wrong 'unused' object is a functional decision with functional consequences. Basis sets up the central check system and remote scans. No single owner can clear the gate alone.

Common pitfalls

The check gives a static, code-level view; it does not guarantee runtime correctness, and several classes of failure only appear once real data and real volume hit the system.

  • A field-length finding can pass in test with short sample material numbers and truncate silently in production once a genuine long material number flows through an interface.
  • Programs used only at month end, quarter end or year end get marked unused by short usage-window analysis and get deleted, then are missed until the first close after go-live.
  • Running ATC once, early, and treating a clean result as permanent; new custom development added during the project window is not automatically re-checked before go-live.
  • Assuming an interface team outside the ABAP department has already run the same check on their side; middleware and third-party integration code is often out of scope of the initial scan entirely.
  • Fixing the compile error by casting or truncating a field back to the old length just to make the syntax check pass, which removes the warning but reproduces the exact data-loss risk the check was raised to prevent.

Related SAP objects

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

Source: ERPClimb — https://erpclimb.com/sap-s4hana-changes/custom-code-adaptation-and-the-atc-s-4hana-readiness-checkERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.