abap-cloud
Skill1 starsChanged 4 months agoMITView on GitHub
Help with ABAP Cloud development including the 3-tier extensibility model, ABAP Cloud language version restrictions, wrapper patterns for unreleased APIs, clean core principles, and key user vs developer extensibility. Use when users ask about ABAP Cloud, ABAP for Cloud Development, clean core, 3-tier model, tier 1 tier 2 tier 3, wrapper pattern, released APIs, language version, restricted ABAP, embedded Steampunk, developer extensibility, key user extensibility, or ABAP Cloud readiness. Triggers include "ABAP Cloud restrictions", "clean core", "wrapper class", "tier model", "released API alternative", "ABAP language version", "Steampunk", or "extensibility model".
2 other projects use a version of this, 2 of them edited.
Adopted by
Most recently taken up by
- dovoanhtruong/abap-agent-claudecode-workspaceedited, first seen Oct 12, 2026
- likweitan/abap-skillsedited, first seen Jul 14, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 2
- likweitan/abap-skills★ 7216% same
- dovoanhtruong/abap-agent-claudecode-workspace★ 324% same
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository413 other files it gives its agents.
- .agents/AGENTS.mdAGENTS.md
- AGENTS.mdAGENTS.md
- .codex/AGENTS.mdAGENTS.md
- .cursor/AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- sap-router-skillCopilot instructions
- .cursor/rules/sap-router.mdcCursor rule
- abap-cloud-migrationSkill
- abap-code-patternsSkill
- abap-code-reviewSkill
- abap-docs-referenceSkill
- abapgitSkill
- abapSkill
- abap-snippetSkill
- abap-sql-amdpSkill
- abap-system-infoSkill
- abap-unit-testingSkill
- arc-1-skillsSkill
- atc-cloudificationSkill
- authorization-iamSkill
- automation-pilot-catalog-explorerSkill
- automation-pilot-command-generationSkill
- automation-pilot-command-reviewSkill
- automation-pilot-content-management-via-apiSkill
- automation-pilot-debuggerSkill
- automation-pilot-executions-apiSkill
- automation-pilot-executor-executescriptSkill
- automation-pilot-executor-httprequestSkill
- automation-pilot-mcp-server-generationSkill
- automation-pilot-scheduled-executions-apiSkill
- badi-enhancementSkill
- btp-abap-environmentSkill
- btp-best-practicesSkill
- btp-build-work-zoneSkill
- btp-business-application-studioSkill
- btp-ciasSkill
- btp-cloud-foundrySkill
- btp-cloud-identitySkill
- btp-cloud-loggingSkill
- btp-cloud-platformSkill
- btp-cloud-transport-managementSkill
- btp-connectivitySkill
- btp-developer-guideSkill
- btp-diagram-generatorSkill
- btp-integration-suiteSkill
- btp-job-schedulingSkill
- btp-master-data-integrationSkill
- btp-service-managerSkill
- cap-add-remote-serviceSkill
- cap-developerSkill
- cap-triviaSkill
- capture-answerSkill
- cap-upgradeSkill
- cds-view-entitiesSkill
- claude-abap-skillsSkill
- claude-memSkill
- clean-abapSkill
- context-modeSkill
- cpi-iflow-developmentSkill
- engine-cap-developmentSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
12 rules. About 0 are common, 11 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈11
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 35
Only released SAP APIs (C1 contract) can be used
- Distinctive: line 36
No direct database table access for SAP tables (use released CDS views instead)
- Distinctive: line 37
No classic dynpro, selection screens, or SAP GUI-dependent statements
- Distinctive: line 39
No classic BAdIs or user exits
- Distinctive: line 41
No function modules (except released RFC-enabled ones)
- Very specific: line 44
Must use if_oo_adt_classrun for console output
- Distinctive: line 54
No ABAP development required
- Distinctive: line 59
Only released APIs with stability contracts
- Distinctive: line 89
Only available on-premise or private cloud
- Distinctive: line 90
Not recommended for new cloud-ready development
- Distinctive: line 94
When a needed API is not released (Level B/C), create a wrapper in Tier 3 that exposes the functionality via a released interface …
- Distinctive: line 164
When helping with ABAP Cloud / clean core topics, structure responses as:
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
ABAP Cloud / Clean Core
Guide for developing with the ABAP Cloud programming model, understanding the 3-tier extensibility model, and applying clean core principles.
Workflow
- Determine the user's context:
- Understanding ABAP Cloud concepts and restrictions
- Choosing the right extensibility tier
- Wrapping unreleased APIs for use in ABAP Cloud
- Identifying released API alternatives
- Setting up clean core-compliant development
- Identify the extensibility tier:
- Tier 1: Key user extensibility (no code)
- Tier 2: Developer extensibility (ABAP Cloud / ABAP for Cloud Development)
- Tier 3: Classic extensibility (standard ABAP, only on-premise/private cloud)
- Guide implementation using clean core principles
ABAP Language Versions
| Language Version | Scope | Available In |
| ABAP for Cloud Development | Only released APIs and objects; restricted syntax; no SAP GUI | BTP ABAP Environment, S/4HANA (embedded Steampunk) |
| Standard ABAP | Full ABAP syntax; all repository objects accessible | On-premise, private cloud |
Key Restrictions in ABAP for Cloud Development
- Only released SAP APIs (C1 contract) can be used
- No direct database table access for SAP tables (use released CDS views instead)
- No classic dynpro, selection screens, or SAP GUI-dependent statements
- No
CALL TRANSACTION,SUBMIT,AUTHORITY-CHECK(useCL_ABAP_AUTHORIZATIONinstead) - No classic BAdIs or user exits
- No
EXEC SQLor native SQL (use ABAP SQL or AMDP) - No function modules (except released RFC-enabled ones)
- No
INCLUDEprograms - No
WRITEor classic list output - Must use
if_oo_adt_classrunfor console output
3-Tier Extensibility Model
Tier 1 — Key User Extensibility (No Code)
- Custom fields and logic via SAP Fiori UIs
- Custom CDS views (basic)
- Custom business objects (simple)
- Custom analytical queries
- No ABAP development required
Tier 2 — Developer Extensibility (ABAP Cloud)
- ABAP for Cloud Development language version
- Only released APIs with stability contracts
- RAP-based business objects
- Side-by-side or embedded development
- Full lifecycle management via ADT
"Example: Tier 2 class using only released APIs
CLASS zcl_my_extension DEFINITION
PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES if_oo_adt_classrun.
ENDCLASS.
CLASS zcl_my_extension IMPLEMENTATION.
METHOD if_oo_adt_classrun~main.
"Only released CDS views — no direct table access
SELECT FROM I_BusinessPartner
FIELDS BusinessPartner, BusinessPartnerName
INTO TABLE @DATA(partners)
UP TO 10 ROWS.
out->write( partners ).
ENDMETHOD.
ENDCLASS.Tier 3 — Classic Extensibility (Standard ABAP)
- Full ABAP language scope
- Access to all repository objects
- Classic enhancement points, BAdIs, user exits
- Only available on-premise or private cloud
- Not recommended for new cloud-ready development
Wrapper Pattern
When a needed API is not released (Level B/C), create a wrapper in Tier 3 that exposes the functionality via a released interface consumable from Tier 2.
Wrapper Class Pattern
"Tier 3: Wrapper class (Standard ABAP language version)
"Released with C1 contract for use from Tier 2
CLASS zcl_wrapper_material DEFINITION
PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES zif_material_reader.
"Set as released API with C1 contract in ADT
ENDCLASS.
CLASS zcl_wrapper_material IMPLEMENTATION.
METHOD zif_material_reader~get_material.
"Access unreleased API internally
SELECT SINGLE * FROM mara
WHERE matnr = @iv_matnr
INTO @DATA(ls_mara).
"Map to released structure
rs_material = VALUE #(
matnr = ls_mara-matnr
mtart = ls_mara-mtart
matkl = ls_mara-matkl ).
ENDMETHOD.
ENDCLASS.Wrapper via RFC Proxy (Remote Tier 2 to Tier 3)
"Tier 2 consumer calls released RFC wrapper
DATA(lo_dest) = cl_rfc_destination_provider=>create_by_comm_arrangement(
comm_scenario = 'Z_MY_COMM_SCENARIO'
service_id = 'Z_MY_OUTBOUND_SRV' ).
CALL FUNCTION 'Z_WRAPPER_FM'
DESTINATION lo_dest->get_destination_name( )
EXPORTING iv_param = lv_value
IMPORTING ev_result = lv_result.Released API Discovery
| Method | Description |
| ADT: Released Object Search | In ADT, search with api: prefix (e.g., api:cl_*) |
| Cloudification API Viewer | Browse at https://sap.github.io/abap-atc-cr-cv-s4hc/ |
| ATC Cloud Readiness Check | Run ATC checks to identify unreleased API usage |
| Released ABAP Classes skill | Use released-abap-classes skill for common released classes |
| XCO Library | XCO_CP_* classes provide cloud-ready alternatives |
Common Unreleased → Released Replacements
| Unreleased (Classic) | Released Alternative (ABAP Cloud) |
AUTHORITY-CHECK | CL_ABAP_AUTHORIZATION=>check_authorization() |
sy-uname | cl_abap_context_info=>get_user_technical_name() |
sy-datum / sy-uzeit | cl_abap_context_info=>get_system_date/time() |
cl_gui_frontend_services | Not available — use Fiori UI instead |
CALL TRANSACTION | RAP action or Fiori navigation |
SUBMIT ... AND RETURN | Background job via CL_APJ_RT_API |
Direct SAP table SELECT | Use released CDS view (I_* views) |
CONVERSION_EXIT_* | CL_ABAP_CONV_CODEPAGE, domain fixed values |
BAPI_* function modules | Released APIs or RAP BO consumption |
Classic MESSAGE statement | RAP messages via REPORTED |
Output Format
When helping with ABAP Cloud / clean core topics, structure responses as:
## ABAP Cloud Guidance
### Context
- Extensibility tier: [Tier 1/2/3]
- Language version: [ABAP for Cloud Development / Standard ABAP]
- Target platform: [BTP / S/4HANA embedded / on-premise]
### Recommendation
[Guidance on the approach]
### Code Example
[ABAP code following clean core principles]
### Released API References
- [List of relevant released APIs used]References
- SAP Cloudification Repository: https://github.com/SAP/abap-atc-cr-cv-s4hc
- ABAP Cloud Cheat Sheet: https://github.com/SAP-samples/abap-cheat-sheets
- Clean Core Guidelines: https://help.sap.com/docs/abap-cloud
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

