A1 Readiness Scanner
S/4HANA Readiness Rules
Complete Reference
30 compatibility rules checked automatically across your custom ABAP. Each rule includes what changes in S/4HANA, severity, effort estimate, and before/after code examples.
ABAP SQL
4 rulesSELECT * usage
SELECT * reads all columns including new S/4HANA columns, causing unexpected results and performance issues.
See fix →Missing FOR ALL ENTRIES guard
FOR ALL ENTRIES IN without an initial-table check returns the full table when the driver table is empty.
See fix →Native SQL (EXEC SQL)
EXEC SQL and ADBC bypass ABAP SQL layer and break on S/4HANA HANA database.
See fix →Direct pool/cluster table access
Direct reads from BSEG, KONV, STXL and other pool/cluster tables. These tables are dissolved in S/4HANA.
See fix →Deprecated Tables
6 rulesBSEG direct access
BSEG is a cluster table in ECC. In S/4HANA, financial data moved to ACDOCA (Universal Journal).
See fix →KNA1 direct access
KNA1 (Customer master) direct access. S/4HANA uses Business Partner model — KNA1 is still present but populated via BP.
See fix →LFA1 direct access
LFA1 (Vendor master) direct access. S/4HANA uses Business Partner model for vendors.
See fix →VBAK/VBAP direct access
Direct reads from VBAK/VBAP (Sales Document header/item). S/4HANA adds fields that change the structure.
See fix →EKKO/EKPO direct access
Direct reads from EKKO/EKPO (Purchase Order header/item). Use released API I_PurchaseOrder.
See fix →MARA/MARC direct access
Direct reads from MARA/MARC (Material master). Use released CDS view I_Material.
See fix →Deprecated APIs
3 rulesDeprecated customer BAPIs
BAPI_CUSTOMER_* function modules are deprecated. Use Business Partner APIs in S/4HANA.
See fix →Deprecated vendor BAPIs
BAPI_VENDOR_* function modules are deprecated. Use Business Partner APIs.
See fix →Obsolete function modules
Usage of function modules flagged as obsolete in SAP S/4HANA simplification list.
See fix →Clean Core
6 rulesABAP Cloud restricted object access
Access to SAP internal objects without C1 release status. These are blocked in ABAP Cloud.
See fix →Hardcoded client/system fields
Hardcoded MANDT, client numbers, or system IDs. Breaks in multi-client and cloud scenarios.
See fix →MODIFY on SAP standard tables
Direct INSERT/UPDATE/MODIFY/DELETE on SAP standard tables bypasses business logic and breaks upgrade stability.
See fix →Implicit enhancements on SAP standard
Implicit enhancement points inside SAP standard programs. These survive upgrades but hide dependencies.
See fix →BAdI not used where available
Custom logic in non-BAdI locations when a released BAdI exists for the same extension point.
See fix →SAP core modification (includes Z-copy)
Direct modification of SAP standard repository objects or Z-copies of standard programs.
See fix →Error Handling
2 rulesABAP Language
2 rulesObsolete ABAP statements
Use of obsolete ABAP syntax: MOVE, COMPUTE, WRITE TO, SORT BY ASCENDING/DESCENDING without field list.
See fix →Dynamic ABAP (GENERATE SUBROUTINE POOL)
Runtime code generation via GENERATE SUBROUTINE POOL or EXECUTE PROGRAM is restricted in ABAP Cloud.
See fix →Security
1 ruleArchitecture
4 rulesReports called via SE38/SA38 pattern
Z/Y reports without proper transaction codes, called directly via SE38/SA38.
See fix →Function group global data abuse
Storing session state in function group global variables. Creates thread safety issues in multi-session ABAP cloud.
See fix →RFC calls in update task
Remote Function Calls inside UPDATE TASK or PERFORM ON COMMIT blocks.
See fix →Hardcoded message class/numbers
MESSAGE statements with hardcoded message class and number instead of exception classes.
See fix →Find your violations — across all 30 rules
Upload or connect your custom ABAP. A1 scans every object, maps findings to these rules, and produces a prioritised remediation backlog with effort estimates — in minutes.
Scan your codebase against all 30 rules free →SAP, S/4HANA and ABAP are trademarks of SAP SE. s4ready.ai is an independent solution and is not affiliated with, endorsed by, or sponsored by SAP SE.