Anfang des Inhaltsbereichs

Hintergrunddokumentation Pool- und Clustertabellen   Dokument im Navigationsbaum lokalisieren

Tabellenpools (Pools) und Tabellencluster (Cluster) sind spezielle Tabellentypen im ABAP Dictionary. In einem Tabellenpool bzw. Tabellencluster können die Daten mehrerer unterschiedlicher Tabellen gemeinsam abgelegt werden. Die einem Tabellenpool bzw. Tabellencluster zugeordneten Tabellen werden als Pooltabellen bzw. Clustertabellen bezeichnet.

Ein Tabellenpool oder Tabellencluster sollte ausschließlich zur Ablage interner Steuerinformationen (Dynprofolgen, Programmparameter, temporäre Daten, fortlaufende Texte wie z.B. Dokumentation) genutzt werden. Betriebswirtschaftlich relevante Daten werden in der Regel in transparenten Tabellen abgelegt.

Tabellenpool

Einem Tabellenpool entspricht eine Tabelle auf der Datenbank, in der alle Sätze der dem Tabellenpool zugeordneten Pooltabellen abgelegt werden.

Die Definition eines Pools besteht im wesentlichen aus zwei Schlüsselfeldern (Tabname und Varkey) und einem langen Argumentfeld (Vardata). Ein Pool besitzt folgende Struktur:

Feld

Datentyp

Bedeutung

Tabname

CHAR(10)

Name der Pooltabelle

Varkey

CHAR (n)

Enthält als String die Einträge aller Schlüsselfelder des Satzes der Pooltabelle, max. Länge für n ist 110

Dataln

INT2(5)

Länge des in Vardata stehenden Strings

Vardata

RAW (n)

Enthält als String die Einträge aller Datenfelder des Satzes der Pooltabelle, max. Länge n ist abhängig vom verwendeten Datenbanksystem

Wird ein Satz einer Pooltabelle gespeichert, so wird dieser im zugeordneten Tabellenpool abgelegt. Der Name der Pooltabelle wird dabei in das Feld Tabname geschrieben. Der Inhalt aller Schlüsselfelder der Pooltabelle wird als String in das Feld Varkey und der Inhalt aller Datenfelder als String in das Feld Vardata geschrieben. Die Länge des in Vardata abgespeicherten Strings wird von der Datenbankschnittstelle im Feld Dataln eingetragen.

Diese Grafik wird im zugehörigen Text erklärt

Aufgrund der Struktur eines Tabellenpools bestehen einige Restriktionen für die Pooltabellen, die ihm zugeordnet werden. Pooltabellen dürfen nur einen höchstens 10-stelligen Namen besitzen. Da Varkey ein Character-Feld ist, müssen alle Schlüsselfelder einer Pooltabelle Character-Datentypen (z.B. CHAR, NUMC, CLNT) besitzen. Die Gesamtlänge aller Schlüsselfelder bzw. die Gesamtlänge aller Datenfelder einer Pooltabelle darf die Länge des Varkey- bzw. Vardata-Feldes des zugeordneten Pools nicht übersteigen.

Tabellencluster

In einem Tabellencluster können mehrere logische Datensätze aus mehreren verschiedenen Clustertabellen in einem physischen Satz zusammengefaßt abgespeichert werden.

Der Schlüssel eines Clusters besteht aus einer Reihe von frei definierbaren Schlüsselfeldern und einem Feld (Pageno) zur Unterscheidung von Fortsetzungssätzen. Weiterhin enthält ein Cluster ein langes Feld (Vardata), das die Inhalte der Datenfelder der Clustertabellen zu diesem Schlüssel enthält. Falls die Daten nicht in das lange Feld passen, werden Fortsetzungssätze angelegt. An den Anfang des Vardata-Feldes werden weiterhin Steuerinformationen zur Struktur des Datenstrings geschrieben. Ein Tabellencluster besitzt folgende Struktur:

Feld

Datentyp

Bedeutung

CLKEY1

*

Erstes Schlüsselfeld

CLKEY2

*

Zweites Schlüsselfeld

...

...

...

CLKEYn

*

n-tes Schlüsselfeld

Pageno

INT2(5)

Nummer des Fortsetzungssatzes

Timestmp

CHAR(14)

Zeitstempel

Pagelg

INT2(5)

Länge des in Vardata stehenden Strings

Vardata

RAW (n)

Enthält als String die Einträge der Datenfelder der zugeordneten Clustertabellen, die max. Länge n ist abhängig vom verwendeten Datenbanksystem

Die Sätze aller Clustertabellen mit gleichem Schlüssel werden unter einem Schlüssel im zugeordneten Tabellencluster abgelegt. Die Werte der Schlüsselfelder werden in den entsprechenden Schlüsselfeldern des Tabellenclusters abgelegt. Die Werte aller Datenfelder der zugeordneten Clustertabellen werden als String in das Vardata-Feld des Tabellenclusters geschrieben. Der Datenstring enthält neben den eigentlichen Datenwerten noch Informationen dazu, welche Struktur die Daten haben und aus welcher Tabelle sie kommen. Falls der String die maximale Länge des Vardata-Feldes überschreitet, wird mit den gleichen Schlüsselwerten ein Fortsetzungssatz geschrieben. Die Fortsetzungssätze zu einem Schlüssel werden durch ihre Werte im Feld Pageno unterschieden. Die tatsächliche Länge des im Vardata-Feld stehenden Strings wird von der Datenbankschnittstelle im Feld Pagelg abgelegt.

Diese Grafik wird im zugehörigen Text erklärt

Für das korrekte Auslesen der Daten aus einer Pooltabelle bzw. Clustertabelle sind die im ABAP Dictionary gespeicherten Strukturinformationen notwendig. Deshalb können solche Tabellen nur mit Open SQL über die Clusterschnittstelle und nicht mit Native SQL direkt auf der Datenbank bearbeitet werden.

Siehe auch:

Tabellenpool/Tabellencluster anlegen

Tabellenpool/Tabellencluster löschen

Pooltabellen/Clustertabellen anlegen

Pool/Clustertabellen ändern