abaplisted
Install: claude install-skill williamcorrea23/sap-router-skill
# ABAP Development Reference
General ABAP language reference covering classical and modern ABAP (NW 7.40+).
## ABAP Syntax Basics
### Data Types
| ABAP Type | Description | Length | Default |
|---|---|---|---|
| C | Character | 1-65535 | ' ' |
| N | Numeric text | 1-65535 | '0' |
| I | Integer | 4 bytes | 0 |
| P | Packed number | 1-16 bytes | 0 |
| F | Floating point | 8 bytes | 0.0 |
| D | Date (YYYYMMDD) | 8 chars | '00000000' |
| T | Time (HHMMSS) | 6 chars | '000000' |
| STRING | Variable-length string | Dynamic | '' |
| XSTRING | Variable-length byte | Dynamic | '' |
### Internal Tables
```abap
" Standard table (unordered, fastest for appending)
DATA: lt_materials TYPE STANDARD TABLE OF mara.
" Sorted table (ordered by key, no duplicates)
DATA: lt_materials_sorted TYPE SORTED TABLE OF mara WITH UNIQUE KEY matnr.
" Hashed table (key access only, fastest for reads)
DATA: lt_materials_hashed TYPE HASHED TABLE OF mara WITH UNIQUE KEY matnr.
" Inline declaration
DATA(lt_data) = VALUE string_table( ( 'A' ) ( 'B' ) ).
" Append / Insert / Read / Modify / Delete
APPEND ls_row TO lt_data.
INSERT ls_row INTO TABLE lt_data.
READ TABLE lt_data INTO DATA(ls) WITH KEY field = 'X'.
MODIFY TABLE lt_data FROM ls.
DELETE lt_data WHERE field = 'X'.
```
### FIELD-SYMBOLS (Pointers)
```abap
" Assign to structure
ASSIGN COMPONENT 'MATNR' OF STRUCTURE ls_header TO FIELD-SYMBOL(<lv_matnr>).
IF <lv_matnr> IS ASSIGNED.
lv_result = <lv_matnr>.
ENDIF.
" Loop with field symbol (fastes