Show TOC Anfang des Inhaltsbereichs

Speichermedien für Daten-Cluster   Dokument im Navigationsbaum lokalisieren

Daten-Cluster werden mit Hilfe der Anweisung EXPORT (siehe: Anweisungen zu Daten-Clustern) in einem Speichermedium abgelegt, dessen Angabe über die verschiedenen Varianten des Zusatzes medium erfolgt. Dies sind im Einzelnen:

·        DATA BUFFER xstr für die Ablage in einem Byte-String xstr

·        INTERNAL TABLE itab für die Ablage in einer internen Tabelle itab  (Standardtabelle)

·        MEMORY ID id für die Ablage unter der Kennung id im ABAP Memory

·        DATABASE dbtab ... ID id für die Ablage unter der Kennung id in einer Datenbanktabelle im ABAP Dictionary

·        SHARED MEMORY dbtab ... ID id und SHARED BUFFER dbtab ... ID id für die Ablage unter der Kennung id in transaktionsübergreifenden Anwendungspuffern des Shared Memory auf einem Applikationsserver.

Im Folgenden erfahren Sie mehr über die temporäre Speicherung von Daten-Clustern im ABAP Memory und Shared Memory sowie die dauerhafte Ablage in Datenbanken. Detaillierte Informationen zu den allen Speichermedien finden Sie in der Schlüsselwortdokumentation.

ABAP Memory

Das ABAP Memory ist ein Speicherbereich im internen Modus (Rollbereich) eines ABAP-Programms und den von dort über das Schlüsselwort CALL TRANSACTION oder SUBMIT aufgerufenen Programmen.

Das ABAP Memory ist unabhängig von welchem ABAP-Programm oder Programm-Modul es innerhalb einer Aufrufkette erzeugt wird. D.h. ein als ABAP-Memory abgespeichertes Objekt kann von einem beliebigen ABAP-Programm einer Aufrufkette wieder gelesen werden. Das in diesem Abschnitt beschriebene ABAP Memory ist aber nicht das gleiche wie das transaktionsübergreifende globale SAP Memory. Mehr dazu findet sich auch unter Daten zwischen Programmen übergeben.

Damit haben Sie die Möglichkeit, Daten über mehrere Stufen der Programmhierarchie zwischen verschiedenen Modularisierungseinheiten zu übergeben. Zum Beispiel können Sie Daten übergeben zwischen:

·        Ausführbaren Programmen, die mit SUBMIT aufgerufen werden

·        Transaktionen und ausführbaren Programmen

·        verschiedenen Dialogbausteinen

·        Programmen und Funktionsbausteinen

und so weiter.

Das Memory wird beim Verlassen der Transaktion wieder freigegeben.

Datenbanktabellen

Sie können Daten-Cluster persistent in einer Datenbank des ABAP Dictionarys ablegen. Hierzu müssen Sie sich Datenbanktabellen einer speziellen Struktur anlegen. SAP lie­fert eine Datenbanktabelle namens INDX als Vorlage aus, die Sie kopieren und modifizieren können. Wir sprechen deshalb auch von INDX-artigen Tabellen (siehe Schlüsselwortdokumentation).

Diese Methode ermöglicht es Ihnen, komplexe Datenobjekte mit beliebig tiefer Struktur in einem Schritt beständig abzuspeichern, ohne sie an die flache Struktur einer relationalen Datenbank anpassen zu müssen. Ihre Datenobjekte werden dadurch systemweit verfügbar und jeder Benutzer kann darauf zugreifen. Für einen erfolgreichen Zugriff müssen die Datentypen der abgespeicherten Objekte bekannt sein.

Die Speicherung von Datenobjekten in INDX-artigen Datenbanktabellen ist sinnvoll für die Sicherung von Ergebnissen, die Sie aus der Analyse von in relationalen Datenbanken vorhandenen Informationen erhalten. Wenn Sie beispielsweise eine Liste der umsatzstärksten Kunden oder eine Gesamtadressliste aus den Personaldaten sämtlicher Filialen erstellen wollen, können Sie ABAP-Programme schreiben, die diese Aufgaben lösen und die Ergebnisse als Daten-Cluster abspeichern. Zum Aktualisieren der abgespeicherten Daten-Cluster, können Sie je nach Bedarf diese Programme zum Beispiel periodisch im Hintergrund ablaufen lassen. Für die weitere Verwendung der Ergebnisse können Sie andere Programme verwenden, die nur auf den Daten-Cluster zugreifen. Diese Methode kann die Antwortzeit des Systems erheblich verkürzen, denn Sie vermeidet, dass für jede Verwendung eines Ergebnisses erneut auf die verteilten Daten relationaler Datenbanken zugegriffen und das Ergebnis neu erstellt werden muss.

Obwohl INDX-artige Tabellen ganz normale Datenbanktabellen des ABAP Dictionarys sind, sollten Sie nur mit den speziellen Anweisungen für Da­ten-Cluster auf sie zugreifen. Nur in Ausnahmefällen, um zum Beispiel sämtliche Daten-Cluster eines Bereichs mit einer einzigen Anweisung zu löschen, können Sie auch Open-SQL-Anweisungen verwenden. Dafür müssen Sie aber die Struktur einer INDX-artigen Tabelle gut kennen, und es empfiehlt sich, diese und ihren Inhalt erst einmal für verschiedene An­wendungsfälle mit dem Data Browser (Transaktion SE16) der ABAP Work­bench zu untersuchen. Zu beachten ist auch die Tatsache, dass Sie zwar mit SQL-Anweisungen auf INDX-artige Datenbanktabellen zugreifen können, die Entschlüsselung der Struktur des abgespeicherten Daten-Clusters aber nur durch ABAP-Anweisungen möglich ist.

Transaktionsübergreifender Anwendungspuffer

Der transaktionsübergreifende Anwendungspuffer ist ein Speicherbereich auf einem Applikationsserver, auf den alle ABAP-Programme des SAP-Sys­tems, die auf dem gleichen Applikationsserver laufen, zugreifen können. Daten-Cluster im transaktionsübergreifenden Anwendungspuffer sind ge­nau wie Daten-Cluster auf Datenbanktabellen organisiert, da hierbei Bezug auf eine Datenbanktabelle dbtab genommen wird. Die Daten werden zwar nicht in der Datenbanktabelle selbst abgelegt, sondern in einer entsprechend aufgebauten Speichertabelle. Die Datenbanktabelle dbtab muss demzufolge ebenfalls INDX-artig (siehe Schlüsselwortdokumentation) sein, de­ren Struktur für die Speicherung des Clusters auf dem Puffer übernom­men wird. Dadurch haben Sie die Möglichkeit, eigene Verwaltungsinformationen zu jedem Cluster auf dem Puf­fer abzulegen und wieder einzulesen.

Die beiden Anwendungspuffer SHARED MEMORY und SHARED BUFFER unterscheiden sich darin, wie sich das System beim Erreichen der Speichergrenze verhält (siehe Schlüsselwortdokumentation).

Ende des Inhaltsbereichs