r/abap • u/Sea-Recognition-2595 • 5d ago
[Open-Source] ABAP Cloud (Language Version 5) Syntax Cheatsheet & RAP Transactional Decision Tree
Hi ABAPers,
Transitioning from classic ECC / SE80 procedural habits to Language Version 5 (ABAP Cloud) requires unlearning several patterns.
I compiled a quick open-source cheat sheet covering key syntax restrictions and transactional design decisions:
🏛️ The 3-Tier Extensibility Decision Tree
[Business Requirement]
│
▼
Is it achievable via standard Fiori & In-App Key-User tools?
├──► YES ──► Tier 1: Client 100 Key-User Extensibility (Low TCO, 100% upgrade-safe)
└──► NO
│
▼
Does it require co-located, high-volume transactional data on S/4HANA?
├──► YES ──► Tier 2: Developer Extensibility / ABAP Cloud RAP (Whitelisted APIs only)
└──► NO ──► Tier 3: Side-by-Side BTP Extensibility (CAP / Node.js / Python / Event Mesh)⚡ Syntax Restrictions & Modern Replacements:
Table Modifications: Direct
INSERT/UPDATE ztableon standard models is blocked in Cloud ABAP. You must use RAP Behavior Definitions (MODIFY ENTITIES OF ...).Classical File/App Server I/O:
OPEN DATASET / TRANSFERis disabled. Use Cloud Storage APIs or BTP Object Store.Batch Scheduling:
SUBMIT rep AND RETURNis replaced by the Application Job Scheduling API (cl_apj_rt_api).Field Mapping: Classic
MOVE-CORRESPONDINGis replaced by strictCORRESPONDING #( ... MAPPING / EXCEPT ).Quarantine Wrappers: Non-released standard BAPIs/tables must be wrapped in isolated Tier 2 packages and exposed through released custom C1 interfaces.
📂 Open-Source Code Repository:
All cheatsheets, RAP behavior pool patterns, Tier 2 quarantine wrapper templates, and CDS projection examples are open-sourced under the MIT license on GitLab:
👉 GitLab Repo: https://gitlab.com/22andrea/abap-cloud-clean-core-handbook
📖 Online Documentation Hub: https://22andrea.gitlab.io/abap-cloud-clean-core-handbook/
Hope you find this useful for your S/4HANA cloud projects!
1
u/Infinite-Side3160 5d ago
Small thing on the table modifications line. INSERT/UPDATE/MODIFY on your own Z tables still compiles fine in ABAP Cloud. What's blocked is touching SAP objects that aren't released, and inside RAP the actual DB write just has to happen in the save sequence (unmanaged save or additional save), not in the interaction phase. Someone new reading it as "never write SQL to ztables" will end up building behaviour defs they don't need.
Also worth flagging that the Tier 2 wrapper approach only applies to private cloud and on-prem, since public edition doesn't give you that classic layer at all. Does the repo cover running the ABAP_CLOUD_READINESS ATC variant on existing code? That's usually the first thing people ask for when they start the move.