Was ist der Unterschied zwischen interner Tabelle und Arbeitsbereich und wie funktionieren sie?
Interne Tabelle ist eine temporäre zweidimensionale Speicherstrukturähnlich der Datenbanktabelle. Wir können mehrere Datensätze in der Internaltable speichern und mithilfe von Datensatzzeigern Aktivitäten wie Lesen, Anhängen, Löschen, Ändern usw. ausführen.
Während Arbeitsbereich eine Variable ist, die mit dem Typ einer internen Tabelle oder einer Datenbanktabelle deklariert ist. Es kann jeweils nur ein Datensatz gespeichert werden. Es ist wie eine Strukturdeklaration in C. Sie könnenreferieren Sie einzelne Spalten im Arbeitsbereich mit den Namen.
Wenn Sie eine interne Tabelle mit der Klausel „WITH HEADER LINE“ deklarieren, fungiert die interne Tabelle selbst als Arbeitsbereich. Beispielsweise ist Ihre ITAB ein Arbeitsbereich und ITAB die interne Tabelle.
Wenn Sie mit ORACLE PLSQL vertraut sind, ähnelt der Arbeitsbereich %ROW_TYPE und internal dem TABELLENTYP.
Weitere Informationen zur Verwendung der internen Tabelle mit und ohne Headerline:
Wenn Sie ein internes Tabellenobjekt erstellen, können Sie auch eine Kopfzeile mit demselben Namen deklarieren. Sie können die Kopfzeile als Verwendenarbeitsbereich, wenn Sie die interne Tabelle verarbeiten. Die ABAP-Anweisungen, die Sie mit internen Tabellen verwenden, haben kurze Formulare, die Sie verwenden können, wenn Ihre interne Tabelle eine Kopfzeile hat. Diese Anweisungen gehen automatisch davon ausdie Kopfzeile als impliziter Arbeitsbereich. Die folgende Tabelle zeigt die Anweisungen, die Sie für interne Tabellen ohne Kopfzeile verwenden müssen, und die entsprechenden Anweisungen, die Sie für interne Tabellen mit einer Kopfzeile verwenden können:
Operationen ohne Kopfzeile
Operationen mit Kopfzeile
Operationen für alle Tabellentypen
FÜGEN SIE <wa> IN DIE TABELLE <itab> EIN.
TABELLE ITAB EINFÜGEN.
SAMMLE <wa> IN <itab>.
SAMMELN <itab>.
TABELLE LESEN <itab> … IN <wa>.
TABELLE LESEN <itab> …
TABELLE ÄNDERN <itab> VON <wa> …
TABELLE ÄNDERN <itab> …
ÄNDERN <itab> VON <wa> …WO …
ÄNDERN <itab> … WO …
TABELLE LÖSCHEN <itab> VON <wa>.
TABELLE LÖSCHEN <itab>.
SCHLEIFE BEI ITAB IN <wa> …
SCHLEIFE BEI ITAB …
Operationen für Indextabellen
ANHÄNGEN <wa> AN <itab>.
ANHÄNGEN <itab>.
FÜGEN SIE <wa> IN <itab> EIN …
EINFÜGEN <itab> …
ÄNDERN <itab> VON <wa> …
ÄNDERN <itab> …
Wenn Sie die Kopfzeile als Arbeitsbereich verwenden, können Sie kürzere Anweisungen verwenden; sie sind jedoch nicht unbedingt einfacher zu verstehen,da Sie den Ursprung und das Ziel des Auftrags nicht sofort erkennen können.Darüber hinaus kann die Tatsache, dass die Tabelle und ihre Kopfzeile den gleichen Namen haben, zu Verwechslungen bei Operationen mit ganzen internen Tabellen führen. Um Verwirrung zu vermeiden, sollten Sie interne Tabellen mit unterschiedlich benannten Arbeitsbereichen verwenden.
Das folgende Beispiel zeigt zwei Programme mit derselben Funktion. Einer verwendet eine Kopfzeile, der andere nicht.
Mit Kopfzeile:
TYPEN: ZEILENBEGINN,
COL1 TYP I,
COL2 TYP I,
ZEILENENDE.
DATEN ITAB TYP HASH-TABELLE DER ZEILE MIT EINDEUTIGEM SCHLÜSSEL
COL1
MIT KOPFZEILE.
MACH 4 MAL.
ITAB-SPALTE 1 = SY-INDEX.
ITAB-COL2 = SY-INDEX ** 2.
TABELLE ITAB EINFÜGEN.
ENDDO.
ITAB-SPALTE 1 = 2.
TABELLE ITAB AUS ITAB LESEN.
ITAB-SPALTE 2 = 100.
TABELLE ITAB ÄNDERN.
ITAB-SPALTE 1 = 4.
TABELLE ITAB LÖSCHEN.
SCHLEIFE BEI ITAB.
SCHREIBEN SIE: / ITAB-COL1, ITAB-COL2.
ENDSCHLEIFE.
Ohne Kopfzeile:
TYPEN: ZEILENBEGINN,
SPALTE 1 TYP I,
SPALTE 2 TYP I,
ZEILENENDE.
DATEN: ITAB TYP HASH-TABELLE DER ZEILE MIT EINDEUTIGEM SCHLÜSSEL COL1,WA WIE ZEILE VON ITAB.
MACH 4 MAL.
WA-SPALTE 1 = SY-INDEX.
WA-COL2 = SY-INDEX ** 2.
WA IN TABELLE ITAB EINFÜGEN.
ENDDO.
WA-SPALTE 1 = 2.
TABELLE ITAB AUS WA IN WA LESEN.
WA-COL2 = 100.
TABELLE ITAB AUS WA ÄNDERN.
WA-SPALTE 1 = 4.
TABELLE ITAB AUS WA LÖSCHEN.
SCHLEIFE BEI ITAB IN WA.
SCHREIBEN: / WA-COL1, WA-COL2.
ENDSCHLEIFE.
Die Liste sieht in beiden Fällen wie folgt aus:
1 1
2 100
3 9
Die Anweisungen im Programm, die keine Kopfzeile verwenden, sind leichter zu verstehen. Als weitere Maßnahme könnten Sie einen weiteren Arbeitsbereich haben, um nur den Schlüssel der internen Tabelle anzugeben, dem jedoch keine anderen Werte aus der Tabelle zugewiesen sind.
Lesen Sie auch
Ein Beispiel für ein ListBox-Programm
ABAP Bücherliste
ABAP/4 Zertifizierung, Programmierung, Smartforms, Sapscripts und objektorientierte Programmierung Bücher
Smart Forms
SAP Smartforms
ABAP Menü:
ABAP Example Hintsand Tips
Return to Index:-
SAP ABAP/4 Programming,Basis Administration, Configuration Hints and Tips