ABAPGET_DATASET - GET DATASET

SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up   General Data in Customer Master  
Diese Dokumentation steht unter dem Copyright der SAP AG.

GET DATASET

Kurzreferenz



Syntax

GET DATASET dset [POSITION pos] [ATTRIBUTES attr].

Zusätze:

1. ... POSITION pos

2. ... ATTRIBUTES attr

Wirkung

Diese Anweisung stellt mit dem Zusatz POSITION die aktuelle Position des Dateizeigers in der in dset angegebenen Datei fest und beschafft mit dem Zusatz ATTRIBUTES weitere Eigenschaften der Datei.

Für dset wird ein zeichenartiges Datenobjekt erwartet, das denplattformspezifischenNamen der Datei enthält. Die Datei muss geöffnet sein, ansonsten kommt es zu einer behandelbaren Ausnahme.

Hinweis

Falls keine Zusätze angegeben sind, kann die Anweisung dazu verwendet werden, um mit Hilfe einerTRY-Kontrollstruktur festzustellen, ob die Datei geöffnet ist oder nicht.

Zusatz 1

... POSITION pos

Wirkung

Dieser Zusatz weist dem Datenobjekt pos die aktuelle Position des Dateizeigers zu. Fürpos wird eine numerische Variable erwartet. Die Positionierung wird in Byte angegeben, wobei der Dateianfang gleichbedeutend mit der Position 0 ist.

Der Zusatz POSITION kann nicht für Dateien angegeben werden, die mit dem Zusatz FILTERder Anweisung OPEN DATASET geöffnet wurden, ansonsten kommt es zu einer behandelbaren Ausnahme.

Hinweis

Bei Dateigrößen größer 2 GB ist ein Datenobjekt pos vom Datentyp i nicht zur Aufnahme aller möglichen Positionen des Dateizeigers ausreichend.

Beispiel

Nach dem Speichern des ersten Literals wird die Position des Dateizeigers der Variablen pos zugewiesen und diese zur Positionierung des Dateizeigers vor dem Lesezugriff verwendet.

DATA: file TYPE string VALUE 'test.dat',
      pos  TYPE i,
      text TYPE string.

OPEN DATASET file FOR OUTPUT IN TEXT MODE
                             ENCODING DEFAULT
                             WITH SMART LINEFEED.
TRANSFER '1234567890' TO file.
GET DATASET file POSITION pos.
TRANSFER 'ABCDEFGHIJ' TO file.
CLOSE DATASET file.

OPEN DATASET file FOR INPUT IN TEXT MODE
                           ENCODING DEFAULT
                            WITH SMART LINEFEED
                            AT POSITION pos.
READ DATASET file INTO text.
CLOSE DATASET file.

Zusatz 2

... ATTRIBUTES attr

Wirkung

Dieser Zusatz stellt die Eigenschaften, mit denen die Datei mit der Anweisung OPEN DATASET geöffnet wurde, in das Datenobjekt attr. Der Datentyp von attr muss dset_attributes sein, der in derTypgruppe DSET wie folgt definiert ist:

dset_attributes ist ein strukturierter Typ mit zwei Unterstrukturen fixed und changeable.Die Komponenten der Unterstruktur fixed nehmen Eigenschaften der Datei auf, die mit der AnweisungSET DATASET nicht geändert werden können (siehe Tabelle1). Die Komponenten der Unterstruktur changeable nehmen Eigenschaften der Dateiauf, die mit der Anweisung SET DATASET geändert werden können (siehe Tabelle 2).

Tabelle 1

KomponenteBedeutung
indicatorStruktur, deren Komponenten mode, access_type, encoding, filterund linefeed in attr den Wert "X" enthalten, wenn die gleichnamigen Komponenten der Struktur fixed für die aktuelle Datei signifikant sind.
modeAblageart. Mögliche Werte in attr sind "T", "LT", "B", "LB" fürTextdateien,Legacy-Textdateien,Binärdateien,Legacy-Binärdateien.Der zugehörige Zusatz der Anweisung OPEN DATASET ist IN mode.
access_typeZugriffsart. Mögliche Werte in attr sind "I", "O", "A", "U" fürDateien, die zum Lesen, Schreiben, Anfügen, Ändern geöffnet wurden. Der zugehörigeZusatz der Anweisung OPEN DATASET ist FOR access.
encodingZeichendarstellung. Mögliche Werte in attr sind "NON-UNICODE" und "UTF-8".Der zugehörige Zusatz der Anweisung OPEN DATASET ist ENCODING { DEFAULT | UTF-8 | NON-UNICODE }.
filterEnthält in attr das Filter-Kommando, falls die Datei mit dem FILTER-Zusatz der Anweisung OPEN DATASET geöffnet wurde.
linefeedEnthält bei einer Textdatei oderLegacy-Textdatei dieZeilenende-Markierung die beim Zugriff verwendet wird.

Tabelle 2

KomponenteBedeutung
indicatorStruktur, deren Komponenten repl_char, conv_errors, code_page,endian und linefeed_mode in attr den Wert "X" enthalten, wenn die gleichnamigen Komponenten der Struktur changeable für die aktuelle Datei signifikant sind.
repl_charEnthält in attr nach dem Öffnen der Datei das mit dem ZusatzREPLACEMENT CHARACTER der Anweisung OPEN DATASET angegebene Ersatzzeichen.
conv_errorsEnthält in attr nach dem Öffnen der Datei den Wert "I", fallssie mit dem Zusatz IGNORINGCONVERSION ERRORS der Anweisung OPEN DATASET geöffnet wurde, ansonsten "R".
code_pageEnthält in attr nach dem Öffnen der Datei die mit dem ZusatzCODE PAGE der Anweisung OPEN DATASET angegebeneCodepage. Falls der Zusatz nicht verwendet wird, ist der Inhalt in attr initial.
endianEnthält in attr nach dem Öffnen der Datei "B", wenn der ZusatzBIG ENDIAN,und "L", wenn der Zusatz LITTLE ENDIAN der Anweisung OPEN DATASET verwendet wurde. Falls der Zusatz nicht verwendet wird, ist der Inhalt in attr initial.
linefeed_modeEnthält in attr nach dem Öffnen der Datei einen der Werte "N","S", "U" oder "W", wenn der entsprechende Zusatz WITHNATIVE|SMART|UNIX|WINDOWS LINEFEED der Anweisung OPEN DATASET verwendet wurde. Falls keiner der Zusätze verwendet wird, ist der Inhalt in attr initial.

Für einige der Komponenten sind in der Typgruppe DSET Konstanten als Vergleichswerte definiert.

Hinweis

Die feststellbaren Eigenschaften geben nicht die Eigenschaften der Datei im Betriebssystem wieder, sonderndie Eigenschaften, mit denen die Datei in ABAP geöffnet ist und nach denen sie in ABAP behandelt wird.

Beispiel

Es wird zunächst überprüft, ob die Datei test.dat mit dem Zusatz FILTERgeöffnet wurde. Nur wenn dies nicht der Fall ist, wird mit GET DATASET die aktuelle Dateiposition bestimmt.

DATA: dset TYPE string VALUE 'test.dat',
      attr TYPE dset_attributes,
      pos  TYPE i.

OPEN DATASET dset FOR INPUT IN BINARY MODE
                  FILTER 'uncompress'.

...

GET DATASET dset ATTRIBUTES attr.
IF attr-fixed-indicator-filter <> 'X'.
  GET DATASET dset POSITION pos.
ELSE.
  ...
ENDIF.

CLOSE DATASET dset.

Ausnahmen

Behandelbare Ausnahmen

  • CX_SY_FILE_OPEN_MODE Die Datei ist nicht geöffnet
  • CX_SY_FILE_POSITION Die Datei konnte nicht gelesen werden, weil ein fehlerhafter Zustand vorliegt oder die Art der Datei keine Positionsangabe erlaubt
  • CX_SY_CONVERSION_OVERFLOW Die Variable pos ist mit einem Typ typisiert, der zu klein ist, die aktuelle Position aufzunehmen.







BAL_S_LOG - Application Log: Log header data   Fill RESBD Structure from EBP Component Structure  
Diese Dokumentation steht unter dem Copyright der SAP AG.


Length: 13466 Date: 20120526 Time: 201958     triton ( 322 ms )