SAP GET DATASET ABAP Statements

Get Example source ABAP code based on a different SAP table
  


Standard SAP Help for GET_DATASET

GET DATASET

Short Reference
• GET DATASET ABAP Statement


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

ABAP Addition
1 ... POSITION pos
2 ... ATTRIBUTES attr

What does it do? The POSITION addition is used by this statement to determine the current position of the file pointer in the file specified in dset and the ATTRIBUTES addition is used to get additional file attributes.

dset expects a character-like data object containing the physical name of the file. The file must already be open, otherwise a handleable exception is raised.



Latest notes:If no additions are specified, the statement can be used to
determine whether or not the file is open with the aid of a TRY control structure.
• POSITION GET DATASET

ABAP Addition

What does it do? This addition assigns the current position of the file pointer to the data object pos. The following can be specified for pos: An existing variable of the data type i or a variable to which the type i can be converted. An inline declaration DATA(var), where a variable of type i is declared.

The position is specified in bytes; the start of the file corresponds to position 0.

The addition POSITION cannot be specified for files that have been opened with the addition FILTER of the statement OPEN DATASET. This raises a handleable exception.



Latest notes:For file sizes greater than 2 GB, a data object
pos of data type i is not sufficient for recording all the possible positions of the file pointer.



Example ABAP Coding
After the first literal is saved, the position of the
file pointer is assigned to the variable pos, which is then used to position the file pointer before the read access. DATA: file TYPE string VALUE 'test.dat',
text TYPE string.

OPEN DATASET file FOR OUTPUT IN TEXT MODE
ENCODING DEFAULT
WITH SMART LINEFEED.
TRANSFER '1234567890' TO file.
GET DATASET file POSITION DATA(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.
• ATTRIBUTES GET DATASET

ABAP Addition

What does it do? This addition passes the attributes used to open the file (using the OPEN DATASET statement) to the data object attr . The following can be specified for attr: An existing variable of the data type dset_attributes from the type group DSET. An inline declaration DATA(var), where a variable of type dset_attributes is declared.

The data type is defined in the type group as follows: dset_attributes is a structured type with two substructures: fixed and changeable. The components of the substructure fixed record attributes of the file that cannot be changed using the SET DATASET statement (see Table 1). The components of the substructure changeable record attributes of the file that can be changed using the SET DATASET statement (see Table 2).

Table 1 ComponentMeaning indicatorStructure whose components mode, access_type, encoding, filter, and linefeed in attr contain the value 'X' if the identically named components of the structure fixed are significant for the current file. modeStorage mode. Possible values in attr are 'T' , 'LT', 'B', and 'LB' for text files, legacy text files, binary files, and legacy binary files. The associated addition of the OPEN DATASET statement is IN mode. access_typeAccess mode. Possible values in attr are 'I', 'O', 'A', and 'U' for files that were opened for reading, writing, appending, and editing. The associated addition of the OPEN DATASET statement is FOR access. encodingCharacter format. Possible values in attr are 'NON-UNICODE' and 'UTF-8'. The associated addition of the OPEN DATASET statement is ENCODING { DEFAULT | UTF-8 | NON-UNICODE }. filterIn attr, contains the filter command if the file was opened with the FILTER addition of the OPEN DATASET statement. linefeedContains the end-of-line marking used when accessing a text file or legacy text file.

Table 2 ComponentMeaning indicatorStructure whose components repl_char, conv_errors, code_page, endian, and linefeed_mode contain the value 'X' in attr if the identically named components of the structure changeable are significant for the current file. repl_charAfter opening the file, this component contains the replacement character in attr that was specified using the REPLACEMENT CHARACTER addition of the OPEN DATASET statement. conv_errorsAfter opening the file, this component contains the value 'I' in attr if it was opened using the addition IGNORING CONVERSION ERRORS of the statement OPEN DATASET, otherwise it contains the value 'R' . code_pageAfter opening the file, this component contains the code page in attr that was specified using the CODE PAGE addition to the OPEN DATASET statement. If no addition is used, the content of attr is initial. endianAfter opening the file, this component contains the value 'B' in attr if the BIG ENDIAN addition to the OPEN DATASET statement was used or 'L' if the LITTLE ENDIAN addition was used. If no addition is used, the content of attr is initial. linefeed_modeAfter opening the file, this component contains one of the values 'N', 'S', 'U', or 'W' in attr if the corresponding addition WITH NATIVE|SMART|UNIX|WINDOWS LINEFEED of the statement OPEN DATASET was used. If none of the additions is used, the content in attr is initial.

For some of the components, constants are defined in the type group DSET as comparison values.



Latest notes:The determinable attributes do not represent the attributes
of the file in the operating system, but the attributes with and by whic h the file is opened and handled in ABAP.



Example ABAP Coding
In this example, the system first checks whether the
file test.dat was opened using the FILTER addition. If not (and only if not), the current file position is determined using GET DATASET. DATA: dset TYPE string VALUE 'test.dat',
pos TYPE i.

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

...

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

CLOSE DATASET dset.



Runtime Exceptions

Catchable Exceptions
CX_SY_FILE_OPEN_MODE The file is not open. CX_SY_FILE_POSITION The file could not be read because an invalid status exists or the type of file does not permit position specification. CX_SY_CONVERSION_OVERFLOW The variable pos was assigned a type that is too small to include the current position.

Return to menu