Datenobjekte aus Cluster-Datenbanken lesen Dokument im Navigationsbaum lokalisieren

Um Datenobjekte aus einer ABAP-Cluster-Datenbank in ein ABAP-Programm zu lesen, verwenden Sie die folgende Anweisung:

Syntax

IMPORT <f1> [TO <g 1>] <f 2> [TO <g 2>] ...
       FROM DATABASE <dbtab>(<ar>)
       [CLIENT <cli>] ID <key>|MAJOR-ID <maid> [MINOR-ID <miid>].

Diese Anweisung liest die in der Liste angegebenen Datenobjekte aus einem Daten-Cluster in der Datenbank <dbtab>. Sie müssen <dbtab> mit der TABLES-Anweisung deklarieren. Ohne Verwendung der Option TO <g i > wird das Datenobjekt <f i > aus der Datenbank dem Datenobjekt gleichen Namens im Programm zugeordnet. Verwenden Sie diese Option, wird das Datenobjekt <f i > aus der Datenbank in das Feld <g i > geschrieben.

Die Speicherung eines Daten-Clusters in einer Datenbank erfolgte normalerweise durch eine EXPORT TO DATABASE- Anweisung (siehe Datenobjekte in Cluster-Datenbanken speichern). Informationen zur Struktur der Datenbanktabelle <dbtab> finden Sie unter Struktur von Cluster-Datenbanken.

Mit <ar>, geben Sie die zweistellige Bereichskennung für das abgespeicherte Cluster in der Datenbank an. Mit der Bezeichnung <key>, deren maximale Länge von der Länge des Bezeichnerfelds in <dbtab> abhängt identifizieren Sie die Daten in der Datenbank. Sie können den Zusatz ID <key> durch MAJOR-ID <maid> ersetzen. Dann wird das Daten-Cluster ausgewählt, dessen Bezeichnung im ersten Teil mit <maid> übereinstimmt. Geben Sie zusammen mit dem Zusatz MAJOR-ID noch MINOR-ID <miid> an, dann wird das Daten-Cluster ausgewählt, dessen Bezeichnung im zweiten Teil (die Positionen hinter der Länge von <maid>) größer oder gleich <miid> ist. Mit der Option CLIENT <cli> können Sie bei mandantenabhängigen Cluster-Datenbanken die automatische Mandatenbehandlung abschalten und den Mandanten selbst angeben. Diese Option muß direkt hinter dem Namen der Datenbank stehen.

Die IMPORT-Anweisung liest automatisch auch den Inhalt der Benutzerfelder des Tabellenarbeitsbereichs <dbtab> aus der Datenbanktabelle.

Sie müssen nicht alle Objekte lesen, die unter einer bestimmten Bezeichnung <key> abgespeichert sind, sondern können über die Namen <f i > eine Auswahl treffen. Enthält die Datenbank unter den angegebenen Schlüsseln <ar>, <key> und <cli> keine Objekte, wird SY-SUBRC auf 4 gesetzt. Existiert dagegen ein Daten-Cluster mit diesen Schlüsseln in der Datenbank, so ist SY-SUBRC immer 0, unabhängig davon, ob das bezeichnete Datenobjekt <f i > auch vorhanden ist. Liegt ein Datenobjekt <f i > nicht im Cluster vor, bleibt das Zielfeld unverändert.

Das System überprüft bei dieser Anweisung zur Laufzeit ob die Struktur der Objekte in der Datenbank mit denen, in die sie geschrieben werden sollen, übereinstimmt. Falls dies nicht der Fall ist tritt ein Laufzeitfehler auf. Ausnahmen sind Felder vom Typ C, die auch am Ende eine strukturierten Datenobjekts stehen können. Diese können verlängert, verkürzt, hinzugefügt oder weggelassen werden.

Beispiel

REPORT demo_data_ext_cluster_import_d.

DATA: BEGIN OF wa_jtab,
        col1 TYPE i,
        col2 TYPE i,
      END OF wa_jtab,
      jtab LIKE TABLE OF wa_jtab.

IMPORT itab TO jtab FROM DATABASE indx(hk) ID 'Table'.

WRITE: / 'AEDAT:', indx-aedat,
       / 'USERA:', indx-usera,
       / 'PGMID:', indx-pgmid.

SKIP.
WRITE 'JTAB:'.

LOOP AT jtab INTO wa_jtab FROM 1 TO 5.
  WRITE: / wa_jtab-col1, wa_jtab-col2.
ENDLOOP.

Dieses Programm liest die mit dem Beispielprogramm unter Datenobjekte in Cluster-Datenbanken speichern abgespeicherte interne Tabelle ITAB aus der Cluster-Datenbank INDX in die interne Tabelle JTAB. Die Ausgabe einiger Benutzerfelder von INDX und der ersten fünf Zeilen von JTAB sieht folgendermaßen aus:

Diese Grafik wird im zugehörigen Text erklärt

 

 

 

 

 

 

Ende des Inhaltsbereichs