Ansicht
Dokumentation
ABAPOPEN_DATASET_OS_ADDITION - OPEN DATASET OS ADDITION
BAL Application Log Documentation Vendor Master (General Section)Diese Dokumentation steht unter dem Copyright der SAP AG.
OPEN DATASET, os_additions
... $[TYPE attr$]
$[FILTER opcom$] ...
Zusätze:
1. ... TYPE attr
2. ... FILTER opcom
Wirkung
Mit diesen Zusätzen können betriebssystemspezifische Einstellungen vorgenommen und Betriebssystem-Anweisungen abgesetzt werden.
Zusatz 1
... TYPE attr
Wirkung
Dieser Zusatz verhält sich abhängig vom Betriebssystem des Hostrechners der aktuellen Wenn es sich nicht um ein MS-Windows-Betriebssystem handelt, kann für attr ein zeichenartiges Feld angegeben werden, das betriebssystemabhängige Parameter der zu öffnenden Datei enthält. Diese Parameter werden ohne Überprüfung der Korrektheit und unverändert an das Betriebssystem der übergeben.
Wenn es sich um ein MS-Windows-Betriebssystem handelt, die Datei als Textdatei oder als Legacy-Textdatei geöffnet und der Zusatz WITH LINEFEED nicht verwendet wird, steuert der Inhalt von attr die standardmäßige Zeilenende-Markierung der Textdatei:
- Wenn attr den Wert "NT" enthält, wird "CRLF" als Zeilenende-Markierung verwendet.
- Wenn attr den Wert "UNIX" enthält, wird "LF" als Zeilenende-Markierung verwendet.
Alle anderen Werte von attr werden in den MS-Windows-Betriebssystemen ignoriert und die Zeilenende-Markierung
wird wie bei dem Zusatz WITH LINEFEED beschrieben gesetzt.
Hinweis
Statt Angabe der Werte "UNIX" oder
"NT" hinter TYPE wird die prinzipielle Verwendung des Zusatzes WITH
LINEFEED empfohlen. Wenn dieser verwendet wird, ist die Angabe der Werte
"UNIX" oder "NT" nicht erlaubt.
Beispiel
Erzeugen einer Datei test.dat. Die unter TYPE angegebenen Eigenschaften sind spezifisch für das Betriebssystem IBM i5/OS (früher OS/400).
Zusatz 2
... FILTER opcom
Wirkung
Dieser Zusatz kann verwendet werden, wenn das Betriebssystem des Hostrechners der aktuellen Pipes unterstützt (Unix und MS-Windows). Für opcom kann ein zeichenartiges Feld angegeben werden, das eine Betriebssystem-Anweisung entsprechend der jeweiligen Kommando-Ebenen-Syntax enthält.
Bei Ausführung der Anweisung OPEN DATASET wird ein Prozess im Betriebssystem für die angegebene Anweisung gestartet. Wenn die Datei zum Lesen geöffnet wird, wird ein Kanal (Pipe) mit STDOUT des Prozesses verbunden, aus dem dann beim Lesen die Daten gelesen werden. Die Datei selbst wird mit STDIN des Prozesses verbunden. Wenn die Datei zum Schreiben geöffnet wird, wird ein Kanal (Pipe) mit STDIN des Prozesses verbunden, in den dann beim Schreiben die Daten transferiert werden. Die Ausgabe des Prozesses wird in die Datei umgeleitet.
Wenn in der automatischen Berechtigungsprüfung für den Dateizugriff über die Datenbanktabelle SPTH eine Prüfung über eine Berechtigungsgruppe und das Berechtigungsobjekt S_PATH ausgeführt wird, muss der aktuelle Benutzer für die Verwendung des Zusatzes FILTER eine Berechtigung für die Aktivität "A6" (Lesen) oder "A7" (Ändern) haben.
Der Zusatz FILTER darf nicht gemeinsam mit dem Zusatz AT
POSITION oder bei der Zugriffsart FOR UPDATE verwendet werden.
Hinweise
- Beim Arbeiten mit Pipes ist darauf zu achten, dass die Pipe nur im aktuellen Workprozess vorhanden ist. Wenn in der Zeit, in der die Datei geöffnet ist, ein Wechsel des Workprozesses stattfindet, geht die Pipe verloren und ein Schreib- oder Lesezugriff führt zu einer behandelbaren Ausnahme der Klasse CX_SY_PIPE_REOPEN.
- Pipes sollten ausschließlich für Betriebssystem-Anweisungen verwendet werden, die im Zusammenhang mit Dateien benötigt werden. Keinesfalls sollten andere Betriebssystem-Anweisungen abgesetzt werden, Hierfür steht das SXPG-Framework zur Verfügung. Siehe auch unerwünschte Aufrufe von Betriebssystem-Anweisungen.
- Aus Kompatiblitätsgründen wird bei einer Überprüfung des Berechtigungsobjekts S_PATH neben den Werten "A6" oder "A7" auch noch ein leerer Wert für die Aktivität akzeptiert, wenn der Zusatz FILTER verwendet wird.
Die Verwendung einer Betriebssystem-Anweisung, die von außen in ein Programm übernommen
wird, stellt ein ernsthaftes Sicherheitsrisiko dar. Eine Anweisung, die von außen in ein Programm übernommen wird, muss vor ihrer Verwendung gründlich überprüft werden. Siehe
System Command Injections.
Beispiel
Auf einer Unix-Plattform werden die Anweisungen gzip als Filter zum Schreiben und gzip -d
als Filter zum Lesen verwendet. Bei schreibenden Zugriffen werden die Daten komprimiert, bei lesenden Zugriffen dekomprimiert.
CPI1466 during Backup CPI1466 during Backup
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 8390 Date: 20240605 Time: 230444 sap01-206 ( 130 ms )