SAP NetWeaver AS ABAP Release 752, ©Copyright 2017 SAP AG. All rights reserved.
ABAP - Keyword Documentation → ABAP - Reference → Processing External Data → ABAP File Interface → Statements for the ABAP File Interface → OPEN DATASET →
OPEN DATASET - os_additions
Syntax
... [TYPE attr]
[FILTER opcom] ...
Extras:
1. ... TYPE attr
2. ... FILTER opcom
Effect
These additions can be used to make operating system-specific settings and set operating system statements.
... TYPE attr
Effect
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:
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.
Note
Instead of specifying the values "UNIX" or "NT"
after TYPE, it is best to use the addition
WITH LINEFEED. If it is used, the values "UNIX" or "NT" cannot be specified.
Example
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 opcom
Effect
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 STDOUT of the process, from which the data is read during file reading. The file itself is linked with STDIN of the process. When the file is opened for writing, a channel (pipe) is linked to STDIN of the process, to which data is passed when writing. The output of the process is diverted to this file.
If, as part of the automatic authorization check for file access, the database table SPTH is used to make a check using the authorization group and the authorization object S_PATH, the current user must have an authorization for the activity "A6" (Read) or "A7" (Change) when using the addition FILTER.
The addition FILTER must not be used together with the addition
AT POSITION or for the access type FOR UPDATE.
Notes
Security Note
Using operating system statements that are injected into a program from outside is a serious security risk. Any statements passed to a program from outside must be checked thoroughly before being used. See
System Command Injections.
Example
On a Unix platform, the statement gzip is used as a write filter and the statement gzip -d is used as a read filter. 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 'gzip'.
...
CLOSE DATASET file.
OPEN DATASET file FOR INPUT IN BINARY MODE
FILTER 'gzip -d'.
...
CLOSE DATASET file.