SAP OPEN DATASET OS ADDITION ABAP Statements

Get Example source ABAP code based on a different SAP table
  



OPEN DATASET - os_additions

Short Reference


ABAP Syntax ... [TYPE attr]

[FILTER opcom] ... .

ABAP Addition
1 ... TYPE attr
2 ... FILTER opcom

What does it do? These additions can be used to make operating system-specific settings and set operating system statements.
• TYPE OPEN DATASET

ABAP Addition

What does it do? The behavior of this addition depends on the operating system of the application server. If the operating system is not an MS Windows operating system, a character-like field can be specified for attr that contains operating system-specific parameters for the file that is to be opened. These parameters are passed to the operating system of the application server unchanged, and without being checked for correctness.

If the operating system is an MS Windows operating system, and the file is opened as a text file or as a legacy text file and the addition WITH LINEFEED is not used, the content of attr controls the end-of-line marking of the text file:
RESET M2 If attr contains the value 'NT', the end-of-line is marked by 'CRLF'.
If attr contains the value 'UNIX', the end-of-line is marked by 'LF'.

All other values of attr are ignored in MS Windows operating systems, and the end-of-line marking is opened in the same way as described in the addition WITH LINEFEED.



Latest notes:Instead of specifying the values 'UNIX' or 'NT'
after TYPE, we recommend using the addition WITH LINEFEED. If it is used, the values 'UNIX' or 'NT' cannot be specified.



Example ABAP Coding
Creating a file test.dat. The properties entered
under TYPE are specific for the operating system IBM i5/OS (previously OS/400). OPEN DATASET 'test.dat'
TYPE 'lrecl=80, blksize=8000, recfm=FB'
FOR OUTPUT IN TEXT MODE
ENCODING DEFAULT
WITH SMART LINEFEED.
• FILTER OPEN DATASET

ABAP Addition

What does it do? This addition can be used if the operating system of the application server supports pipes (Unix and MS Windows). A character-like field can be specified for opcom, which contains an operating system statement that corresponds to the appropriate command-level syntax.

When the statement OPEN DATASET is executed, a process is started in the operating system for the specified statement. When the file is opened for reading, a channel (pipe) is linked with Standard SAP Help forOUT of the process, from which the data is read during file reading. The file itself is linked with Standard SAP Help forIN of the process. When the file is opened for writing, a channel (pipe) is linked to Standard SAP Help forIN of the process, to which data is passed when writing. The output of the process is diverted to this file.

The addition FILTER must not be used together with the addition AT POSITION or for the access type FOR UPDATE.



Latest notes:When working with pipes, it must be ensured that the pipe
only exists in the current work process. If a change of work process takes place during the time that the file is open, the pipe is lost and an attempted read or write access raises a handleable exception of the class CX_SY_PIPE_REOPEN .

Security Note

When specified dynamically, opcom is a dynamic programming technique and can present a serious security risk if not used correctly. If the content of opcom is used in a program from an external source, it must first be checked thoroughly. See System Command Injections.



Example ABAP Coding
On a Unix platform, a compress filter is started
for writing, and an uncompress filter is started for reading. When the file is accessed for writing the data is compressed, and when it is accessed for reading, the data is decompressed. DATA file TYPE string VALUE `/usr/test.Z`.

OPEN DATASET file FOR OUTPUT IN BINARY MODE
FILTER 'compress'.
...
CLOSE DATASET file.

OPEN DATASET file FOR INPUT IN BINARY MODE
FILTER 'uncompress'.
...
CLOSE DATASET file.

Return to menu