Pool-Tabellen vs. Tabellen-Pool in SAP

Wer in ABAP programmiert, wird unweigerlich irgendwann über diese beiden Begrifflichkeiten stolpern. Das Wort Pool kann man übrigens auch durch Cluster ersetzen und redet über dasselbe…
An sich ist die Begrifflichkeit recht einfach: Eine Summe von Pool-Tabellen ergibt einen Tabellen-Pool! Also ist der Tabellen-Pool die Ablage für unterschiedliche Tabelle. Charakteristisch für diese Tabellen ist, dass sie alle den selben Primärschlüssel haben müssen, damit sie diesem Pool angehören können. Die Ablage der einzelnen Tabellenfelder erfolgt wiederum in einem RAW-Feld, das 3800 Zeichen lang ist als RAW-Daten und somit erst einmal nicht lesbar ist.

Schauen wir uns das mal praktisch an:
Die Tabelle BSEG der Finanzbuchhaltung ist eine solche Pool-Tabelle. Schaut man sich per Transaktion SE11 im Data Dictionary diese Tabelle an, so sieht man auf dem Reiter „Auslieferung und Pflege“, dass diese Tabelle dem Tabellen-Pool RFBLG zugeordnet ist.
Mit der selben Transaktion nun ab in die RFBLG. Die Datendefinition ist hier grob in 3 Bereiche eingeteilt: Der Tabellenschlüssel -er darf maximal eine Breite von 1100 Zeichen haben, in PAGENO die laufende Nummer des Belegs, der hochgezählt wird, da ja lediglich 3800 Zeichen in VARDATA abgelegt werden dürfen (bei 5523 Zeichen gibt es also eine 0 sowie eine 1) sowie Verwaltungsdaten wie eine Timestamp, die Anzahl der Zeichen in VARDATA, die in PAGELG abgelegt wird. Wir bekommen also hier einen Eintrag 0 mit 3800 als Wert sowie 1 mit 1723. Per Menueintrag Hilfsmittel->Verwendungsnachweis kann man sich alle Tabellen anschauen, die diesem Tabellen-Pool angehören. Ebenso ist es möglich, per SE16/SE16N sich die Inhalte anzuschauen.

Diese Vorgehensweise ist wohl einerseits ein Relikt aus „alten Zeiten“ und wird tapfer wegen der Abwärtskompatibilität beibehalten.
Wissen muss man noch, dass ein JOIN auf eine Pool-Tabelle per OPENSQL in ABAP nicht funktioniert.