Verwendung von Dateien aus SAP-Verzeichnissen in ABAP Coding

13. Februar 2024

Auf SAP-Applikationsservern können Verzeichnisse zur Ablage von Dateien erstellt werden. Über die Transaktion AL11 (Abbildung 1) lassen sich zunächst die existierenden Verzeichnisse und durch Vorwärtsnavigation auch die die darin abgelegten Dateien einsehen.

Abbildung 1: Liste der Verzeichnisse in Transaktion AL11

Über den Transaktionscode CG3Z lassen sich – wie in Abbildung 2 – dargestellt, Dateien in ein Verzeichnis hochladen. Dazu wird lediglich der vollständige Verzeichnispfad benötigt, ergänzt durch den mit einem Backslash abgetrennten frei wählbaren Dateinamen. Anschließend ist die Datei im jeweiligen Verzeichnis vorhanden und kann auf die gleiche Art und Weise über Transaktionscode CG3Y heruntergeladen werden.

Abbildung 2: Dateiupload via TA CG3Z

Interessant ist die Frage, wie aus ABAP Coding heraus auf Dateien auf dem Applikationsserver zugegriffen werden kann, damit sie in Custom Code Anwendungen verwendet werden können.

Zunächst einmal benötigt man logischerweise Dateiname und -pfad. Diese werden wie zuvor beschrieben zusammengesetzt. Wenn der Zugriff innerhalb der Anwendung immer auf dieselbe Datei erfolgen soll, ist es naheliegend sich den Pfad als Konstante anzulegen.

Abbildung 3: Beispielhaftes Datei-Picker-Popup

Den sicherlich häufiger auftretenden Anwendungsfall stellt jedoch ein Benutzerdialog dar, über den der Anwender die Möglichkeit besitzt, eine Datei aus einem Verzeichnis auszuwählen. Realisierbar wäre diese Option über eine ABAP List Viewer (ALV) Ausgabe mittels Klasse CL_SALV_TABLE, wie in Abbildung 3. Als Wertetabelle für die Ausgabe wird eine Liste von Dateien eines bestimmten, für die jeweilige Anwendung vorgesehen AL11-Verzeichnis übergeben. Der Funktionsbaustein EPS2_GET_DIRECTORY_LISTING stellt eine Möglichkeit dar, die Dateiliste eines Verzeichnisses zu ermitteln (Abbildung 4).

Abbildung 4: Dateiliste eines Verzeichnisses ermitteln

Auf die Realisierung der ALV-Ausgabe mit der Benutzerauswahl der Datei wird an dieser Stelle nicht näher eingegangen. Dazu finden sich in jedem SAP-System und im Internet zahlreiche Beispiele. Einen guten Einstieg bieten dieser Beitrag der SAP-Community und das Berater Wiki.

Nachdem eine Datei ausgewählt wurde, kann sie mit dem Schlüsselwort OPEN DATASET, wie in Abbildung 5 gezeigt, beispielsweise als Binärdatei gelesen werden.

Abbildung 5: Lesen von Dateien mit OPEN DATASET

Die Datei steht fortan im Programmverlauf zur Verfügung und kann beliebig verwendet werden. Ein simpler Use Case wäre beispielsweise der Download der Datei mit Hilfe der Methoden FILE_SAVE_DIALOG und GUI_DOWNLOAD der Klasse CL_GUI_FRONTEND_SERVICES. Denkbar wäre auch ein Mailversand der gelesenen Datei.

Zuletzt überführen wir diese mehr oder weniger abstrakte Idee in einen konkreten Anwendungskontext im SAP-System: Auf diese Weise ließe sich über eine über das Customizing definierte Aktivität einer Qualitätsmeldung eine Datei auswählen und anschließend per Mail an einen Business Partner senden. Das könnte im Rahmen einer Reklamation beispielsweise ein Fragebogen sein, der durch den Sachbearbeiter über den Dialog ausgewählt und direkt per E-Mail an den Kunden verschickt wird.

Dabei spielt es keine Rolle, ob Sie SAP ERP ECC 6.0 im Einsatz haben, die SAP S/4HANA Conversion antreten oder diese bereits abgeschlossen haben. Unser erfahrenes Team von Beratern und Entwicklern hält den richtigen Ansprechpartner für Sie bereit. Kontaktieren Sie uns gerne!

 

Kostenfreie Websession

Unsere Websessions sind ein kostenloser Service für Kunden und Interessenten der DHC.