ABAP Anweisungen Beispiele: Unterschied zwischen den Versionen

Aus MattWiki
K (Matt verschob die Seite ABAP Grundlagen nach Befehle in ABAP, ohne dabei eine Weiterleitung anzulegen)
K (Matt verschob die Seite Befehle (ABAP) nach ABAP Anweisungen Beispiele, ohne dabei eine Weiterleitung anzulegen)
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
(kein Unterschied)

Aktuelle Version vom 30. November 2018, 10:07 Uhr

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 per Schleifendurchlauf

  • 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)