/sap-abap
Comprehensive ABAP development skill for SAP systems. Use when writing ABAP code, working with internal tables, structures, ABAP SQL, object-oriented programming, RAP (RESTful Application Programming Model), CDS views, EML statements, ABAP Cloud development, string processing,
$ npx -y skills add secondsky/sap-skills --skill sap-abap --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/sap-abap
Context preview
The summary Claude sees to decide when to auto-load this skill.
Comprehensive ABAP development skill for SAP systems. Use when writing ABAP code, working with internal tables, structures, ABAP SQL, object-oriented programming, RAP (RESTful Application Programming Model), CDS views, EML statements, ABAP Cloud development, string processing,
SKILL.md
sap-abap.SKILL.mdname: sap-abap
description: |
Comprehensive ABAP development skill for SAP systems. Use when writing ABAP code,
working with internal tables, structures, ABAP SQL, object-oriented programming,
RAP (RESTful Application Programming Model), CDS views, EML statements, ABAP Cloud
development, string processing, dynamic programming, RTTI/RTTC, field symbols,
data references, exception handling, or ABAP unit testing. Covers both classic
ABAP and modern ABAP for Cloud Development patterns.
license: GPL-3.0
metadata:
maintainer: "Eduard Jiglau"
maintainer_email: "hello@sap-ai-skills.com"
website: "https://sap-ai-skills.com"
version: "2.4.1"
last_verified: "2026-04-02"
abap_release: "7.40 SP08+ / 7.50+ / ABAP Cloud"
sources:
- "https://help.sap.com/doc/abapdocu_latest_index_htm/latest/en-US/index.htm"
- "https://github.com/SAP-samples/abap-cheat-sheets"SAP ABAP Development Skill
Related Skills
- **sap-abap-cds**: Use when developing CDS views for ABAP-backed Fiori applications or defining data models with annotations
- **sap-btp-cloud-platform**: Use when working with ABAP Environment on BTP or deploying ABAP applications to the cloud
- **sap-cap-capire**: Use when connecting ABAP systems with CAP applications or integrating with OData services
- **sap-fiori-tools**: Use when building Fiori applications with ABAP backends or consuming OData services from ABAP systems
- **sap-api-style**: Use when documenting ABAP APIs or following SAP API documentation standards
When to Use This Skill
Use this skill when writing or reviewing ABAP code, modernizing classic ABAP to ABAP Cloud-compatible patterns, working with RAP or EML, implementing ABAP SQL, designing unit tests, or troubleshooting language/runtime behavior across supported ABAP releases.
Version Compatibility
This skill covers ABAP syntax from **7.40 SP08** through **ABAP Cloud**. Features requiring a higher release are annotated with inline comments in code examples using the format `" [7.xx+]` or noted in reference files. The table below summarizes the key version boundaries.
| Feature | 7.40 SP02 | 7.40 SP05 | 7.40 SP08 | 7.50 | 7.51 | 7.52 | 7.54 | |---------|:---------:|:---------:|:---------:|:----:|:----:|:----:|:----:| | Inline declarations `DATA(...)` | x | x | x | x | x | x | x | | Constructor operators (VALUE, NEW, CONV, COND, SWITCH, REF, EXACT, CAST) | x | x | x | x | x | x | x | | Table expressions `itab[...]` | x | x | x | x | x | x | x | | String templates | x | x | x | x | x | x | x | | `WITH EMPTY KEY` | x | x | x | x | x | x | x | | `line_exists()`, `line_index()` | x | x | x | x | x | x | x | | ABAP SQL: `@` host variables | | x | x | x | x | x | x | | ABAP SQL: comma-separated lists | | x | x | x | x | x | x | | ABAP SQL: SQL expressions in SELECT | | x | x | x | x | x | x | | `CORRESPONDING` operator | | x | x | x | x | x | x | | Table comprehensions (`FOR`) | | x | x | x | x | x | x | | `LET` expressions | | x | x | x | x | x | x | | `REDUCE` operator | | | x | x | x | x | x | | `FILTER` operator | | | x | x | x | x | x | | `BASE` addition | | | x | x | x | x | x | | `LOOP AT ... GROUP BY` | | | x | x | x | x | x | | ABAP SQL: `dbtab~*` in SELECT | | | x | x | x | x | x | | ABAP SQL: `RIGHT OUTER JOIN` | | x | x | x | x | x | x | | CDS views with parameters | | | x | x | x | x | x | | **`FINAL(...)` inline declaration** | | | | x | x | x | x | | **Host expressions `@( expr )`** | | | | x | x | x | x | | **`UNION` in SELECT** | | | | x | x | x | x | | **`IS INSTANCE OF` / `CASE TYPE OF`** | | | | x | x | x | x | | **`int8` type** | | | | x | x | x | x | | **CDS table functions** | | | | x | x | x | x | | **CDS access control (implicit)** | | | | x | x | x | x | | **`$session.user/client/system_language`** | | | | x | x | x | x | | **Test seams (`TEST-SEAM`)** | | | | x | x | x | x | | **Common Table Expressions (`WITH`)** | | | | | x | x | x | | **`OFFSET` in SELECT** | | | | | x | x | x | | **`UPPER`/`LOWER` in CDS** | | | | | x | x | x | | **Enumerated types** | | | | | x | x | x | | **Internal tables as data source `FROM @itab`** | | | | | | x | x | | **`WITH PRIVILEGED ACCESS`** | | | | | | x | x | | **`utclong` type and functions** | | | | | | | x |
**On a 7.40 system**: Replace any `FINAL(...)` with `DATA(...)`, and avoid 7.50+ features marked in bold above. Most modern ABAP syntax (VALUE, NEW, CONV, inline declarations, table expressions, REDUCE, FILTER, GROUP BY) is available since 7.40 SP08.
Table of Contents
- [Version Compatibility](#version-compatibility)
- [Quick Reference](#quick-reference)
- [Bundled Resources](#bundled-resources)
- [Common Patterns](#common-patterns)
- [Error Catalog](#error-catalog)
- [Performance Tips](#performance-tips)
- [Source Documentation](#source-documentation)
Quick Reference
Data Types and Declarations
" Elementary types
DATA num TYPE i VALUE 123.
DATA txt TYPE string VALUE `Hello`.
DATA flag TYPE abap_bool VALUE abap_true.
" Inline declarations
DATA(result) = some_method( ).
FINAL(immutable) = `constant value`. " [7.50+] Use DATA(...) on 7.40
" Structures
DATA: BEGIN OF struc,
id TYPE i,
name TYPE string,
END OF struc.
" Internal tables
DATA itab TYPE TABLE OF string WITH EMPTY KEY.
DATA sorted_tab TYPE SORTED TABLE OF struct WITH UNIQUE KEY id.
DATA hashed_tab TYPE HASHED TABLE OF struct WITH UNIQUE KEY id.Internal Tables - Essential Operations
" Create with VALUE
itab = VALUE #( ( col1 = 1 col2 = `a` )
( col1 = 2 col2 = `b` ) ).
" Read operations
DATA(line) = itab[ 1 ]. " By index
DATA(line2) = itab[ col1 = 1 ]. " By key
READ TABLE itab INTO wa INDEX 1.
READ TABLE itab ASSIGNING FIELD-SYMBOL(<fs>) WITH KEY col1 = 1.
" Modify operations
MODIFY TABLE itab FROM VALUE #( col1 = 1 col2 = `updated` ).
itab[ 1 ]-col2 = `changed`.
" Loop processing
LOOP AT itab ASSIGNING FIELD-SYMBOL(<line>).
<lRead more
name: sap-abap
description: |
Comprehensive ABAP development skill for SAP systems. Use when writing ABAP code,
working with internal tables, structures, ABAP SQL, object-oriented programming,
RAP (RESTful Application Programming Model), CDS views, EML statements, ABAP Cloud
development, string processing, dynamic programming, RTTI/RTTC, field symbols,
data references, exception handling, or ABAP unit testing. Covers both classic
ABAP and modern ABAP for Cloud Development patterns.
license: GPL-3.0
metadata:
maintainer: "Eduard Jiglau"
maintainer_email: "hello@sap-ai-skills.com"
website: "https://sap-ai-skills.com"
version: "2.4.1"
last_verified: "2026-04-02"
abap_release: "7.40 SP08+ / 7.50+ / ABAP Cloud"
sources:
- "https://help.sap.com/doc/abapdocu_latest_index_htm/latest/en-US/index.htm"
- "https://github.com/SAP-samples/abap-cheat-sheets"SAP ABAP Development Skill
Related Skills
- **sap-abap-cds**: Use when developing CDS views for ABAP-backed Fiori applications or defining data models with annotations
- **sap-btp-cloud-platform**: Use when working with ABAP Environment on BTP or deploying ABAP applications to the cloud
- **sap-cap-capire**: Use when connecting ABAP systems with CAP applications or integrating with OData services
- **sap-fiori-tools**: Use when building Fiori applications with ABAP backends or consuming OData services from ABAP systems
- **sap-api-style**: Use when documenting ABAP APIs or following SAP API documentation standards
When to Use This Skill
Use this skill when writing or reviewing ABAP code, modernizing classic ABAP to ABAP Cloud-compatible patterns, working with RAP or EML, implementing ABAP SQL, designing unit tests, or troubleshooting language/runtime behavior across supported ABAP releases.
Version Compatibility
This skill covers ABAP syntax from **7.40 SP08** through **ABAP Cloud**. Features requiring a higher release are annotated with inline comments in code examples using the format `" [7.xx+]` or noted in reference files. The table below summarizes the key version boundaries.
| Feature | 7.40 SP02 | 7.40 SP05 | 7.40 SP08 | 7.50 | 7.51 | 7.52 | 7.54 | |---------|:---------:|:---------:|:---------:|:----:|:----:|:----:|:----:| | Inline declarations `DATA(...)` | x | x | x | x | x | x | x | | Constructor operators (VALUE, NEW, CONV, COND, SWITCH, REF, EXACT, CAST) | x | x | x | x | x | x | x | | Table expressions `itab[...]` | x | x | x | x | x | x | x | | String templates | x | x | x | x | x | x | x | | `WITH EMPTY KEY` | x | x | x | x | x | x | x | | `line_exists()`, `line_index()` | x | x | x | x | x | x | x | | ABAP SQL: `@` host variables | | x | x | x | x | x | x | | ABAP SQL: comma-separated lists | | x | x | x | x | x | x | | ABAP SQL: SQL expressions in SELECT | | x | x | x | x | x | x | | `CORRESPONDING` operator | | x | x | x | x | x | x | | Table comprehensions (`FOR`) | | x | x | x | x | x | x | | `LET` expressions | | x | x | x | x | x | x | | `REDUCE` operator | | | x | x | x | x | x | | `FILTER` operator | | | x | x | x | x | x | | `BASE` addition | | | x | x | x | x | x | | `LOOP AT ... GROUP BY` | | | x | x | x | x | x | | ABAP SQL: `dbtab~*` in SELECT | | | x | x | x | x | x | | ABAP SQL: `RIGHT OUTER JOIN` | | x | x | x | x | x | x | | CDS views with parameters | | | x | x | x | x | x | | **`FINAL(...)` inline declaration** | | | | x | x | x | x | | **Host expressions `@( expr )`** | | | | x | x | x | x | | **`UNION` in SELECT** | | | | x | x | x | x | | **`IS INSTANCE OF` / `CASE TYPE OF`** | | | | x | x | x | x | | **`int8` type** | | | | x | x | x | x | | **CDS table functions** | | | | x | x | x | x | | **CDS access control (implicit)** | | | | x | x | x | x | | **`$session.user/client/system_language`** | | | | x | x | x | x | | **Test seams (`TEST-SEAM`)** | | | | x | x | x | x | | **Common Table Expressions (`WITH`)** | | | | | x | x | x | | **`OFFSET` in SELECT** | | | | | x | x | x | | **`UPPER`/`LOWER` in CDS** | | | | | x | x | x | | **Enumerated types** | | | | | x | x | x | | **Internal tables as data source `FROM @itab`** | | | | | | x | x | | **`WITH PRIVILEGED ACCESS`** | | | | | | x | x | | **`utclong` type and functions** | | | | | | | x |
**On a 7.40 system**: Replace any `FINAL(...)` with `DATA(...)`, and avoid 7.50+ features marked in bold above. Most modern ABAP syntax (VALUE, NEW, CONV, inline declarations, table expressions, REDUCE, FILTER, GROUP BY) is available since 7.40 SP08.
Table of Contents
- [Version Compatibility](#version-compatibility)
- [Quick Reference](#quick-reference)
- [Bundled Resources](#bundled-resources)
- [Common Patterns](#common-patterns)
- [Error Catalog](#error-catalog)
- [Performance Tips](#performance-tips)
- [Source Documentation](#source-documentation)
Quick Reference
Data Types and Declarations
" Elementary types
DATA num TYPE i VALUE 123.
DATA txt TYPE string VALUE `Hello`.
DATA flag TYPE abap_bool VALUE abap_true.
" Inline declarations
DATA(result) = some_method( ).
FINAL(immutable) = `constant value`. " [7.50+] Use DATA(...) on 7.40
" Structures
DATA: BEGIN OF struc,
id TYPE i,
name TYPE string,
END OF struc.
" Internal tables
DATA itab TYPE TABLE OF string WITH EMPTY KEY.
DATA sorted_tab TYPE SORTED TABLE OF struct WITH UNIQUE KEY id.
DATA hashed_tab TYPE HASHED TABLE OF struct WITH UNIQUE KEY id.Internal Tables - Essential Operations
" Create with VALUE
itab = VALUE #( ( col1 = 1 col2 = `a` )
( col1 = 2 col2 = `b` ) ).
" Read operations
DATA(line) = itab[ 1 ]. " By index
DATA(line2) = itab[ col1 = 1 ]. " By key
READ TABLE itab INTO wa INDEX 1.
READ TABLE itab ASSIGNING FIELD-SYMBOL(<fs>) WITH KEY col1 = 1.
" Modify operations
MODIFY TABLE itab FROM VALUE #( col1 = 1 col2 = `updated` ).
itab[ 1 ]-col2 = `changed`.
" Loop processing
LOOP AT itab ASSIGNING FIELD-SYMBOL(<line>).
<l40 SAP development plugins with evidence-tracked verification SAP development plugins for AI coding assistants, with public-source or package-registry verification tracked where available.
Repo: secondsky/sap-skills
Other skills on sap-skills.
- /sap-abap-cds
Comprehensive SAP ABAP CDS (Core Data Services) reference for data modeling, view development, and semantic enrichment. Use when creating CDS views or view entities, defining data models with annotations, working with associations and cardinality, implementing input parameters,
Open skill - /sap-ai-core
Guides development with SAP AI Core and SAP AI Launchpad for enterprise AI/ML workloads on SAP BTP. Use when: deploying generative AI models, building orchestration workflows with templating/filtering/grounding, implementing RAG with vector databases, managing ML training
Open skill - /sap-api-policy
Evidence-based assessment of whether an SAP API/interface usage scenario aligns with the SAP API Policy (v.4.2026a). Use whenever someone asks whether a way of calling SAP is allowed/compliant — e.g. Published API vs internal/private/"confidential" API status, "Documented Use",
Open skill - /sap-api-style
This skill provides comprehensive guidance for documenting SAP APIs following the SAP API Style Guide standards. It should be used when creating or reviewing API documentation for REST, OData, Java, JavaScript, .NET, or C/C++ APIs. The skill covers naming conventions,
Open skill - /sap-browser-automation
Use when an agent must inspect or operate an authenticated SAP web UI through an in-app Browser, Microsoft Edge CDP, or an existing Playwright client, especially when SAP SSO reuse, isolated Edge profiles, deterministic target selection, screenshots, or browser bootstrap
Open skill - /sap-btp-best-practices
SAP BTP best practices for enterprise architecture, account management, security, and operations, with verification evidence tracked in the repository ledger. Use when planning BTP implementations, setting up account hierarchies, configuring environments, implementing
Open skill

