Verwendung von logischen Dateien in ABAP-Programmen
Mit dem Funktionsbaustein FILE_GET_NAME erstellen Sie in Ihren ABAP-Programmen einen physischen Dateinamen aus einem logischen Dateinamen. Um den Aufruf des Funktionsbausteins in Ihrem Programm einzufügen, wählen Sie Bearbeiten
® Anweisungsmuster... im ABAP-Editorbild. Ein Dialogfenster erscheint, in dem Sie Call Function auswählen und FILE_GET_NAME eingeben. Die Parameter dieses Funktionsbausteins sind im folgenden aufgelistet.Importparameter
Parameter |
Funktion |
CLIENT |
Die Pflegetabellen für die logischen Dateien und Pfade sind mandantenabhängig. Deshalb kann der gewünschte Mandant importiert werden. Der aktualle Mandant ist im Feld SY-MANDT gespeichert. |
LOGICAL_FILENAME |
Geben Sie den logischen Dateinamen in Großbuchstaben an, den Sie umsetzen wollen. |
OPERATING_SYSTEM |
Sie können jedes Betriebssystem importieren, das in der Liste der Transaktion SF04 enthalten ist (siehe Betriebssysteme Syntaxgruppen zuordnen). Der physische Dateiname wird entsprechend der Syntaxgruppe angelegt, mit der das Betriebssystem verbunden ist. Vorgabeparameter ist der Wert des Systemfeldes SY-OPSYS. |
PARAMETER_1 PARAMETER_2 |
Wenn Sie diese Importparameter angeben, werden die reservierten Wörter <PARAM_1> und <PARAM_2> in den physischen Pfadnamen durch die importierten Werte ersetzt. |
USE_PRESENTATION _SERVER |
Mit diesem Flag können Sie festlegen, ob das Betriebssystem des Präsentationsservers importiert werden soll anstelle des Betriebssystems, das durch den Parameter OPERATING_SYSTEM importiert wird. |
WITH_FILE_EXTENSION |
Wenn Sie hier einen Wert angeben, wird das für den logischen Dateinamen angegebene Dateiformat an den physischen Dateinamen angehängt. |
Exportparameter
Parameter |
Funktion |
EMERGENCY_FLAG |
Wenn dieser Parameter ungleich SPACE ist, ist im logischen Pfad kein physischer Name definiert. Ein physischer Name für den Bedarfsfall wurde aus der Tabelle FILENAME und dem Profilparameter DIR_GLOBAL angelegt. |
FILE_FORMAT |
Dieser Parameter enthält das für den logischen Dateinamen definierte Dateiformat. Sie können diesen Parameter z.B. nutzen um zu entscheiden, in welchem Modus die Datei geöffnet werden soll. |
FILE_NAME |
Dieser Parameter ist der physische Dateiname, den Sie in den ABAP-Anweisungen für die Verarbeitung von Dateien verwenden können. |
Ausnahmeparameter
Parameter |
Funktion |
FILE_NOT_FOUND |
Diese Ausnahme wird ausgelöst, wenn die logische Datei nicht definiert ist. |
OTHERS |
Diese Ausnahme wird ausgelöst, wenn andere Fehler auftreten. |
Angenommen, die logische Datei MYTEMP und der logische Pfad TMP_SUB sind wie in den vorhergehenden Topics definiert und das folgende Programm liegt vor:
REPORT demo_data_ext_file_get_name.
DATA: flag(1) TYPE c,
format TYPE filename-fileformat,
fname(60) TYPE c.
WRITE sy-opsys.
CALL FUNCTION 'FILE_GET_NAME'
EXPORTING
logical_filename = 'MYTEMP'
operating_system = sy-opsys
parameter_1 = '01'
IMPORTING
emergency_flag = flag
file_format = format
file_name = fname
EXCEPTIONS
file_not_found = 1
OTHERS = 2.
IF sy-subrc = 0.
WRITE: / 'Flag :', flag,
/ 'Format :', format,
/ 'Phys. Name:', fname.
ENDIF.
Ausgabe:
HP-UX
FLAG :
FORMAT : BIN
Phys. Name: /tmp/TEST01
In diesem Beispiel läuft das SAP-System unter dem Betriebssystem HP-UX, das zur Syntaxgruppe UNIX gehört. Der logische Dateiname MYTEMP mit dem logischen Pfad TMP_SUB wird in einen physischen Dateinamen /tmp/TEST01 konvertiert wie für die Syntaxgruppe UNIX angegeben. Das Feld FNAME kann im weiteren Programmablauf genutzt werden, um mit der Datei TEST01 im Verzeichnis /tmp zu arbeiten.
Nehmen wir eine logische Datei mit dem Namen EMPTY und dem physischen Dateinamen TEST an, die mit einem logischen Pfad verbunden ist, der keine Angabe eines physischen Pfades hat. Wenn Sie den EXPORTING-Parameter 'MYTEMP' im obigen Beispiel durch 'EMPTY' ersetzen, erhalten Sie folgende Ausgabe:
HP-UX
FLAG : X
FORMAT :
Phys. Name: /usr/sap/S11/SYS/global/TEST
Das System hat einen Dateinamen für den Bedarfsfall angelegt, dessen Pfad von der aktuellen SAP-Installation abhängt.