ABAP Anweisungen Beispiele
Grundlegende ABAP-Anweisungen
Achtung: Klammern und Operatoren müssen durch mind. ein Leerzeichen getrennt werden!
MOVE TO MOVE-CORRESPONDING CLEAR Arithmetische Ausdrücke (+, -, *, /, **, DIV, MOD) STRLEN(…)
SY-Anweisungen
SY-DATU: Systemdatum SY-INDEX: Aktueller Schleifendurchlauf SY-SUBRC: Rückgabewert aus vorherigem Aufruf
Nachrichten / Messages
MESSAGE t (message class) [WITH v1 [v2] …]
Interne Tabelle bearbeiten
APPEND (Anhängen einer Struktur): APPEND ls_struktur TO lt_table => nur Standardtabellen! INSERT (Struktur in Tab. Einfügen): INSERT ls_struktur INTO TABLE lt_table <condition> READ (kopiert Inhalt Zeile in Struktur): READ TABLE lt_table INTO ls_struktur <condition> MODIFY (überschreibt Zeile mit Struktur): MODIFY TABLE lt_table FROM ls_struktur [<condition>] DELETE (löscht Zeile(n) interner Tabelle): DELETE itab <condition> COLLECT (akkummuliert Inhalt einer Struktur zur schlüsselgleichen Zeile einer internen Tabelle) Addition von Nicht-Schlüsselfeldern (numerisch) COLLECT ls_struktur INTO lt_table
Verarbeitung mehrerer Datensätze
DELETE INSERT LINES OF lt_table INTO lt_table2 APPEND LINES OF lt_table INTO lt_table2
Schleifen
LOOP AT lt_table INTO ls_struktur…ENDLOOP. SY-TABIX (Zeilennummer in Schleife) FROM…TO… INDEX OF… WHERE… WITH TABLE KEY…
Sortieren
SORT-Befehl BY ASCENDING/DESCENDING AS TEXT
Löschen lokaler Tabellen
REFRESH (Löscht Inhalt) CLEAR (Löscht Inhalt + Kopfzeile) FREE (Löscht Inhalt + Kopfzeile + Gibt Arbeitsspeicher frei)
Interne Tabellen
- Datenobjekte, mit denen Datenmengen einer festen Struktur im Arbeitsspeicher gehalten werden
- Datenmengen in feste Struktur im Arbeitsspeicher schreiben
- Zeilenweise, Spalten sind „Komponenten“
- Datentyp vollständig spezifiziert durch Zeilentyp, Schlüsseldefinition und Zugriffsart
- Tabellenarten
- Standardtabellen (Index/Schlüssel/NON-UNIQUE) → vorwiegend über Index
- Sortierte Tabellen (Index/Schlüssel /UNIQUE/NON-UNIQUE) → vorwiegend über Schlüssel
- Hash-Tabelle (Schlüssel/UNIQUE) è nur über Schlüssel
Standard-Definition einer internen Tabelle
DATA lt_table TYPE [STANDARD] TABLE OF ls_struktur [WITH NON-UNIQUE DEFAULT KEY]
(Beliebig anpassbar)
Zugriff über Schleifenverarbeitung
»Zeilen per Schlüsselzugriff hinzufügen über INSERT… INTO TABLE…
»
»Unterscheidung der Tabllenart
»
»Anhängen über APPEND bei Standardtabellen
»Eindeutiger Schlüssel bei Sorted Tables => Insert nur bei nicht vorhandenem Schlüsselsatz
»Datensatz angehängt + Eintrag Hash-Index bei Hashtabellen (Sy-Tabix zeigt auf Index-Feld)
»
»Rückgabewert (sy-subrc) 4 wenn Satz schon vorhanden
»COLLECT…INTO TABLE… wenn alle Nichtschlüsselfelder numerisch (Summation)
»Rangliste über APPEND… INTO… SORTED BY…
»
»Zugriff auf gesamte interne Tabelle über READ
»
»Ergebnis schreiben in Zielstruktur (immer 1 Satz)
»check ob vorhanden durch TRANSPORTING NO FIELDS
»
»Inhalte Ändern/Löschen per Schlüsselzugiff (MODIFY)
»
»Schlüsselangabe über WHERE, möglich für Einzelsätze oder ganze Tabellen
SQL Zugriff
»Datenbeschaffung über SQL
»Unterschiedliche Native-SQL-Anweisungen für unterschiedliche DBMS
»OPENSQL (DB-unabhängig)
»
»Lesen von DBs
»SELECT-Statement
»SELECT SINGLE für einzelnen Satz
»INTO schreibt Ergebnissatz/-sätze in Zielstruktur bzw. Zieltabelle (INTO TABLE)
»Feste Zielstruktur oder dynamisch über INTO CORRESPONDING FIELDS OF
»APPENDING wenn Inhalt an (Standard-)Tabelle angehängt werden soll
»
»Lesen mehrerer Zeilen durch SELECT-Schleife, wenn Manipulation erforderlich
»Inperformant
»SELECT…ENDSELECT.
»Sy-subrc = 0, wenn mind. 1 Zeile gelesen
»Sy-dbcnt = Anzahl gelesener Zeilen
»
»Selbstprogrammieren der Lesezugriffe über Joins
»Join-Tabellen/-Bedingungen/-Spalten
»Mehrere Möglichkeiten zur Realisierungen (View im Dictionary oder direkt als ABAP Befehl)