Rheinwerk < openbook > SAP-Wissen aus erster Hand
SAP-Wissen aus erster Hand.
 
Inhaltsverzeichnis
Vorwort zur vierten Auflage
1 ABAP und die ersten Schritte im SAP-System
2 ABAP Dictionary
3 Programmieren im ABAP Editor
4 Felder und Berechnungen
5 Modifikation von Zeichenketten
6 Debugging von Programmen
7 Modifikation von transparenten Datenbanktabellen
8 Rechnen mit Datum und Zeit, Mengen und Währungen
9 Mit Daten in einer Datenbanktabelle arbeiten
10 Programmablaufsteuerung und logische Ausdrücke
11 Selektionsbildschirme
12 Interne Tabellen
13 Modularisierung von Programmen
14 Weiterführende Themen
A Icons auf einen Blick
B Abkürzungsverzeichnis
C Die Autoren
Stichwortverzeichnis

Download:
- Beispielprogramme, ca. 23 KB

Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Einstieg in ABAP von Karl-Heinz Kühnhauser, Thorsten Franz
Buch: Einstieg in ABAP

Einstieg in ABAP
Pfeil 12 Interne Tabellen
Pfeil 12.1 Sinn und Zweck interner Tabellen
Pfeil 12.2 Aufbau und Arten von internen Tabellen
Pfeil 12.3 Interne Standardtabelle anlegen
Pfeil 12.3.1 Objektorientierte Schreibweise mit Workarea
Pfeil 12.3.2 Obsolete Schreibweise mit Kopfzeile
Pfeil 12.4 Interne Standardtabelle füllen
Pfeil 12.4.1 Interne Tabelle mit Workarea füllen
Pfeil 12.4.2 Interne Tabelle mit Kopfzeile füllen
Pfeil 12.5 Interne Tabelle zeilenweise verarbeiten
Pfeil 12.5.1 Interne Tabelle mit Workarea verarbeiten
Pfeil 12.5.2 Interne Tabelle mit Kopfzeile verarbeiten
Pfeil 12.6 Inhalte von internen Tabellen löschen
Pfeil 12.6.1 Workareas und interne Tabellen mit Workarea löschen
Pfeil 12.6.2 Interne Tabellen mit Kopfzeile löschen
Pfeil 12.7 Codebeispiel zu ITAB mit Workarea
Pfeil 12.8 Codebeispiel zu ITAB mit Kopfzeile
 
Zum Seitenanfang

12.2    Aufbau und Arten von internen Tabellen Zur vorigen ÜberschriftZur nächsten Überschrift

Die Daten in internen Tabellen sind im Tabellenrumpf abgelegt. Handelt es sich um Tabellen mit Kopfzeilen, besitzen sie zusätzlich einen Kopf. Anderenfalls müssen Sie selbst eine Workarea deklarieren und einen Datensatz aus der Tabelle dort hinein übertragen, um ihn bearbeiten zu können. Der Tabellenrumpf besteht aus beliebig vielen identisch strukturierten Zeilen.

Der Typ einer Zeile ist ein ABAP-Datentyp, eine Struktur oder eine interne Tabelle. Besteht beispielsweise im einfachen Fall eine Zeile aus einer flachen Struktur von Feldern, entsprechen die Felder den Spalten der internen Tabelle. Es kann aber auch eine tiefe Struktur als Zeilentyp einer internen Tabelle dienen. Bei einer tiefen Struktur sind die Komponenten (die »Felder«) in sich strukturiert und können wiederum mehrere Felder oder sogar interne Tabellen enthalten.

Ein weiterer wesentlicher Unterschied zu Datenbanktabellen ist das Arbeiten mit Schlüsseln. Zwar dient ein Schlüssel wie bei einer Datenbanktabelle der Identifizierung einer Zeile, es gibt bei internen Tabellen jedoch eindeutige und nicht eindeutige Schlüssel. Ferner unterscheidet man zwischen Standardschlüssel und benutzerdefiniertem Schlüssel:

  • Bei einem eindeutigen Schlüssel kann analog zu einer Datenbanktabelle eine Zeile nicht mehrfach vorkommen, sondern nur einmal.

  • Bei einem nicht eindeutigen Schlüssel darf eine Zeile in einer internen Tabelle auch mehrfach vorkommen.

  • Der Standardschlüssel ist vom Zeilentyp der Tabelle abhängig.

  • Bleibt man bei der einfachen Annahme, dass die Zeile aus einer Struktur mit Feldern besteht, ist der Standardschlüssel aus allen Feldern der Struktur zusammengesetzt. In diesem Fall wäre ein benutzerdefinierter Schlüssel aus einer beliebigen, frei definierbaren Teilmenge von Feldern der Struktur zusammengesetzt.

Interne Tabellen lassen sich, je nach Zugriffsart, unterschiedlichen Tabellentypen zuordnen:

  • Standardtabellen
    Der Zugriff kann bei Standardtabellen über einen Schlüssel oder über einen Index erfolgen. Beim Zugriff über einen Schlüssel korrelieren Zugriffszeit und Anzahl der Zeilen linear – je mehr Zeilen, desto länger dauert es bis zur Antwort. Bei großen internen Tabellen bietet sich deshalb der Zugriff über einen intern gepflegten Index an. Die Zugriffszeit wächst hierbei nicht linear, sondern nur logarithmisch.

    Bei einer Standardtabelle kann kein eindeutiger Schlüssel definiert werden. Mehrfach vorkommende identische Zeilen sind folglich möglich. Dafür können Standardtabellen sehr schnell gefüllt werden, weil die Prüfung auf eine Doppelung vorhandener Schlüssel hin entfällt. Beispielsweise könnte die Tabelle zuerst gefüllt und dann entsprechend dem Verwendungszweck sortiert werden. Je nach Zugriffsgestaltung würde dann der Suchaufwand auch nur logarithmisch wachsen.

    Aufgrund der unkomplizierten Handhabung sind in der Praxis die Standardtabellen nach wie vor der am häufigsten vorkommende Tabellentyp. Bei den folgenden Beispielen in diesem Kapitel werden Sie mit Standardtabellen und Schlüsselzugriff arbeiten.

  • Sortierte Tabellen
    Bei sortierten Tabellen wird immer nach einem Schlüssel sortiert abgelegt. Im Gegensatz zu den Standardtabellen kann der Schlüssel bei sortierten Tabellen eindeutig sein. Der Zugriff erfolgt über den Schlüssel oder ebenfalls über einen Index. Bereits beim Zugriff über einen Schlüssel steigt die Zugriffszeit – aber nur logarithmisch – mit der Anzahl von Zeilen an.

    Sortierte Tabellen werden bevorzugt vor den Standardtabellen verwendet, wenn bereits beim Füllen der internen Tabelle die Zeilen sortiert vorliegen sollen. Doppelungen von Zeilen werden bereits in diesem Stadium erkannt. Je nach Inhalt des Returncodes der ABAP-Anweisung und der Gestaltung der Fehlerbehandlung im Quellcode wird ein Laufzeitfehler ausgelöst oder in eine Fehlerbehandlung verzweigt.

    Da sowohl sortierte Tabellen als auch Standardtabellen über einen internen Index verfügen, werden sie auch als Indextabellen bezeichnet.

  • Hash-Tabellen
    Bei Hash-Tabellen wird weder über einen Index zugegriffen noch ein linearer Index mitgeführt; der Zugriff erfolgt ausschließlich über einen eindeutigen Schlüssel. Dieser Tabellentyp empfiehlt sich für große Tabellen. Durch einen speziellen Algorithmus, den Hash-Algorithmus, ist die Antwortzeit konstant, gleichgültig, wie viele Zeilen die Tabelle hat. Für große Tabellen ist die Hash-Tabelle der schnellste der drei internen Tabellentypen. Bei sehr kleinen Tabellen wäre es hingegen denkbar, dass mit einem anderen Tabellentyp unter bestimmten Umständen sogar kürzere Zugriffszeiten möglich sind.

    Hinter einem Hash-Algorithmus steckt vereinfacht ausgedrückt letztendlich eine Funktion für ein Prüfsummenverfahren, das einen Datensatz möglichst eindeutig gekennzeichnet und gekürzt darstellt; der deutsche Ausdruck hierfür lautet Streuwertfunktion. Es gibt verschiedene Hash-Algorithmen, auf die hier allerdings nicht weiter eingegangen werden soll. Hash-Algorithmen werden auch bei digitalen Signaturen und in der Kryptologie verwendet.

Sortierte Tabellen, Hash-Tabellen und Schlüssel für interne Tabellen gibt es seit ABAP-Release 4.0. Durch diese Tabellenarten und das Typkonzept entstanden neue Möglichkeiten für die Tabellendeklarationen und die Tabellenverarbeitung – und Sie werden aus diesem Grund in der Praxis auch verschiedene Syntaxformen für gleichartige Aufgabenstellungen und Funktionalitäten finden. Dies gilt ebenso für Standardtabellen: Es gibt verschiedene Schreibweisen für gleichbedeutende Anweisungen: traditionelle und moderne.

[+]  Moderne Schreibweisen bevorzugen

Auch wenn wir in diesem Kapitel neben den aktuellen Schreibweisen auch die obsoleten Varianten vermitteln, sollten Sie die moderneren Schreibweisen bevorzugen. Die obsoleten Schreibweisen können nicht alle Tabellentypen verarbeiten und führen im Kontext von ABAP Objects zu Syntaxfehlern. Einerseits werden obsolete Sprachkonstrukte in der ABAP-Umgebung zwar aus Kompatibilitätsgründen über viele Jahre hinweg noch unterstützt. Andererseits durchdringt ABAP Objects nach und nach alle Anwendungen des SAP-Systems immer stärker, und die Nischen, in denen noch nicht objektorientiertes ABAP sinnvoll genutzt werden kann, werden schnell weniger und kleiner.

Auch gegenwärtige und zukünftige Entwicklungen von SAP finden mit ABAP Objects statt, sodass es sich auch aus diesem Grund empfiehlt, gleich mit der Anwendung der modernen Syntax zu beginnen und sich mit den obsoleten Varianten nur deshalb noch auseinanderzusetzen, weil sie Ihnen immer wieder in altem Code begegnen werden. Daher wird in den folgenden Beispielen zunächst die Aufgabenstellung in der modernen Schreibweise gelöst und anschließend die traditionelle Schreibweise dargestellt.

 


Ihre Meinung?

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de

<< zurück
 Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Einstieg in ABAP Einstieg in ABAP
Jetzt Buch bestellen

 Buchempfehlungen
Zum Rheinwerk-Shop: SAP – Der technische Einstieg
SAP – Der technische Einstieg


Zum Rheinwerk-Shop: ABAP Objects – Das umfassende Handbuch
ABAP Objects – Das umfassende Handbuch


Zum Rheinwerk-Shop: ABAP-Entwicklung für SAP S/4HANA
ABAP-Entwicklung für SAP S/4HANA


Zum Rheinwerk-Shop: Kundeneigene Erweiterungen mit ABAP
Kundeneigene Erweiterungen mit ABAP


Zum Rheinwerk-Shop: Schrödinger programmiert ABAP
Schrödinger programmiert ABAP


Zum Rheinwerk-Shop: Migration nach SAP S/4HANA
Migration nach SAP S/4HANA


Zum Rheinwerk-Shop: Design Thinking mit SAP
Design Thinking mit SAP


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und in die Schweiz
InfoInfo

 
 


Copyright © Rheinwerk Verlag GmbH 2020
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

 
[Rheinwerk]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern