ABAP Anweisungen Beispiele

Aus MattWiki
Version vom 5. Juni 2017, 15:03 Uhr von Matt (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „== Grundlegende ABAP-Anweisungen == '''Achtung:''' Klammern und Operatoren müssen durch mind. ein Leerzeichen getrennt werden! MOVE TO MOVE-CORRESPONDING C…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

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) &rarr; vorwiegend über Index
    • Sortierte Tabellen (Index/Schlüssel /UNIQUE/NON-UNIQUE) &rarr; 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)