• Header exxsens Developer Blog

ZIP File mit ABAP auslesen

In diesem Artikel möchten wir Ihnen zeigen wie Sie aus ABAP heraus den Inhalt einer ZIP-Datei auslesen können.

Als Vorbereitung haben wir zuerst eine Struktur angelegt:


und darauf aufbauen einen Tabellentypen


Dieser Tabellentyp wird uns in der Methode dafür dienen den Inhalt des ZIP-File zurückzuliefern.

Unsere Methode erhält als Importing-Parameter das ZIP-File im XSTRING-Format. Innerhalb der Methode wird zuerst ein Objekt des Typs CL_ABAP_ZIP instanziiert. Anschließend wird das übergebene ZIP-File über die LOAD-Methode der Instanz übergeben.

Der Inhalt (Inhaltsverzeichnis) der ZIP-Datei ist nun im Instanz-Attribut files enthalten. Dieses Attribut wird im nächsten Schritt abgeloopt und die einzelnen Dateien werden entsprechend über die GET Methode der Instanz gelesen und im letzten Schritt innerhalb des Loops an unseren Returning-Parameter übergeben.

Der Returning-Parameter enthält nun die entsprechenden Dateinamen und den Content im XSTRING-Format und kann so weiterverarbeitet werden.

​und hier der Code zum kopieren

METHOD get_files.

  TYPES:
    BEGIN OF t_file,
           name TYPE string,
           date TYPE d,
           time TYPE t,
           size TYPE i,
         END OF t_file .
  TYPES:
    t_files TYPE STANDARD TABLE OF t_file .


  DATA: lo_zip    TYPE REF TO cl_abap_zip,
        ls_file   TYPE /exxsens/i_s_zip,
        lt_files  TYPE t_files.
  FIELD-SYMBOLS: <ls_files>  TYPE t_file.
************************************************************************


  CREATE OBJECT lo_zip.

  CALL METHOD lo_zip->load
    EXPORTING
      zip             = im_v_zip
    EXCEPTIONS
      zip_parse_error = 1
      OTHERS          = 2.
  lt_files = lo_zip->files.


  LOOP AT lt_files ASSIGNING <ls_files>.
    lo_zip->get(
      EXPORTING
        name                    = <ls_files>-name
      IMPORTING
        content                 = ls_file-content
      EXCEPTIONS
        zip_index_error         = 1
        zip_decompression_error = 2
        OTHERS                  = 3 ).

    ls_file-filename = <ls_files>-name.
    APPEND ls_file TO re_t_files.
  ENDLOOP. 
Download eines XSTRING aus dem SAP GUI
Report per Job im Hintergrund einplanen

Ähnliche Beiträge

Empfehlen Sie uns weiter