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.