ABAPGET_DATASET - GET DATASET
SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up General Data in Customer MasterDiese Dokumentation steht unter dem Copyright der SAP AG.
GET DATASET
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
| Komponente | Bedeutung |
| indicator | Struktur, 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. |
| mode | Ablageart. 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_type | Zugriffsart. 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. |
| encoding | Zeichendarstellung. 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 }. |
| filter | Enthält in attr das Filter-Kommando, falls die Datei mit dem FILTER-Zusatz der Anweisung OPEN DATASET geöffnet wurde. |
| linefeed | Enthält bei einer Textdatei oderLegacy-Textdatei dieZeilenende-Markierung die beim Zugriff verwendet wird. |
Tabelle 2
| Komponente | Bedeutung |
| indicator | Struktur, 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_char | Enthält in attr nach dem Öffnen der Datei das mit dem ZusatzREPLACEMENT CHARACTER der Anweisung OPEN DATASET angegebene Ersatzzeichen. |
| conv_errors | Enthä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_page | Enthä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. |
| endian | Enthä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_mode | Enthä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 )






