How to remediate: Native SQL (EXEC SQL)
EXEC SQL and ADBC bypass ABAP SQL layer and break on S/4HANA HANA database.
Is this issue in your codebase?
A1 scans all 30 rules across your custom ABAP — results in minutes.
What changes in S/4HANA
HANA uses different SQL dialect. Pool/cluster tables are dissolved — direct SQL access fails.
Before and after: ABAP code example
* ECC: EXEC SQL — fails on HANA
EXEC SQL.
SELECT matnr, mtart INTO :lv_matnr, :lv_mtart
FROM mara WHERE matnr = :lv_key
END-EXEC. * S/4HANA: ABAP SQL — portable and safe
SELECT SINGLE matnr, mtart
FROM i_material
INTO (@DATA(lv_matnr), @DATA(lv_mtart))
WHERE material = @lv_key. Effort estimate and common pitfalls
Effort estimate
Estimate is per affected object. Total effort scales with the number of occurrences in your codebase. Use the A1 scan to get an object-level count before estimating the full project.
Common pitfalls
- ! Underestimating the number of affected objects
- ! Missing performance test after switching to released APIs
- ! Transport dependencies across development, quality, and production
Related rules to check
Direct pool/cluster table access
Direct reads from BSEG, KONV, STXL and other pool/cluster tables. These tables are dissolved in S/4HANA.
SELECT * usage
SELECT * reads all columns including new S/4HANA columns, causing unexpected results and performance issues.
Obsolete function modules
Usage of function modules flagged as obsolete in SAP S/4HANA simplification list.
Find every instance of this issue in your codebase
The A1 scanner checks all 30 compatibility rules — including Native SQL (EXEC SQL) — across your custom ABAP objects and produces a prioritised remediation backlog.
Scan your codebase for this issue 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.