Klasse: CL_ABAP_GZIP

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

ABAP Web Dynpro, BusinessServerPages; Erstellung von Webapplikationen.
19 Beiträge • Vorherige Seite 2 von 2 (current)
19 Beiträge Vorherige Seite 2 von 2 (current)

Beitrag von Frank Dittrich (Expert / 674 / 0 / 15 ) »
Jens hat geschrieben:Alternativ wäre auf dem Applikationsserver möglich, mit open bzw. close dataset zu arbeiten und dann ebenfalls mit einem Betriebssystemkommando zu arbeiten um die Files zu zippen.
Das Betriebssystemkommando kann man ausführen mit:

Code: Alles auswählen.

data: l_result type standard table of char100.
CALL 'SYSTEM' ID 'COMMAND' FIELD <KOMMANDO mit vollständigen Pfaden>
ID 'TAB' FIELD l_result.
CALL 'SYSTEM' scheint ja wirklich sehr beliebt zu sein.

Wenn man einfach eine komprimierte Datei auf dem Applikationsserver erzeugen will, kann man auch gleich den Zusatz FILTER ... bei OPEN DATASET verwenden.
(Der Benutzer braucht für Zusatz FILTER die Berechtigung für eine andere ACTVT als für das normale Schreiben ohne Filter.
Und auch die Abhängigkeiten vom OS des Applikationsservers müssen beachtet werden.)

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Klasse: CL_ABAP_GZIP

Beitrag von UdoB (ForumUser / 1 / 0 / 0 ) »
Sehr gute Tipps hier. Das ein oder andere werde ich ausprobieren. Hätte nicht gedacht, dass sich das Stöbern in alten Beiträgen so lohnt.

Re: Klasse: CL_ABAP_GZIP

Beitrag von Tron (Top Expert / 1327 / 35 / 333 ) »
Moin,
für das Einrichten von Betriebssystem-Kommandos gibt es 2 Transaktionen : SM49 und SM69.
Das Starten des hier definierten Kommandos erfolgt z.B. mit dem Baustein SXPG_COMMAND_EXECUTE bzw SXPG_COMMAND_EXECUTE_LONG.
Das direkte Aufrufen von Kernel-Funktion sollte als letztes Mittel in Betracht gezogen werden, da Diese ohne Vorankündigung geändert werden können.

gruß TRon
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: Klasse: CL_ABAP_GZIP

Beitrag von edwin (Specialist / 306 / 12 / 68 ) »
Hallo,
ich habe diese Klasse bereits benutzt um gezippte BIN Daten auf einem SAP-Server abzulegen:
SAP Release ECC 6.0 Unicode

Code: Alles auswählen.

importing : 
IMP_FILENAME	TYPE STRING	"der Name der Daten,  IM Zipfile
IMP_ZIPFILENAME	TYPE STRING	"der Name des Zipfiles
IMP_TABLE	TYPE TABLE	"beliebige Tabelle 
exporting :
RETC	TYPE SYSUBRC	

METHOD CREATE_ZIP_BIN.
*------------------------------------------------------------------------------*
* Änderungen       ------------------------------------------------------------*
*------------------------------------------------------------------------------*
*------------------------------------------------------------------------------*
* K    User       Datum     Grund                                              *
*------------------------------------------------------------------------------*
*xxxxx wxxxxx     yyyymmdd   ..........................................        *
*------------------------------------------------------------------------------*
  DATA: ref_zip           TYPE REF TO cl_abap_zip.
  DATA: va_file_name      TYPE string.
  DATA: va_xstring        TYPE xstring.
  DATA: ex_xstring        TYPE xstring.
  FIELD-SYMBOLS <fs_rec>  TYPE any.
  FIELD-SYMBOLS <x>       TYPE x.
  CLEAR va_xstring.

  retc = 0.
  TRY.
* Convert to xstring
      LOOP AT imp_table ASSIGNING <fs_rec>.
        ASSIGN <fs_rec> TO <x> CASTING TYPE x.
        CONCATENATE va_xstring <x> INTO va_xstring IN BYTE MODE.
      ENDLOOP.
    CATCH cx_root.
      retc = 1.
      RETURN.
  ENDTRY.

  IF va_xstring IS INITIAL.
    retc = 4.
    RETURN.
  ENDIF.

* compress and create output file
  TRY.
      CREATE OBJECT ref_zip.

      ref_zip->add( EXPORTING  name    = imp_filename
                               content = va_xstring
                    EXCEPTIONS OTHERS  = 1  ).

      ref_zip->save( RECEIVING  zip = ex_xstring
                     EXCEPTIONS OTHERS = 1  ).

* Transfer to SAP Server 
      OPEN DATASET imp_zipfilename FOR OUTPUT IN BINARY MODE .
      TRANSFER ex_xstring TO imp_zipfilename.
      CLOSE DATASET imp_zipfilename.
    CATCH cx_root.
      retc = 2.
  ENDTRY.
ENDMETHOD.

Beispiel (macht zwar wenig Sinn, veranschaulicht aber die  Funktion):

FORM check_zip .
  DATA it_mara TYPE TABLE OF mara.
  DATA retc TYPE sy-subrc.
  SELECT * FROM mara UP TO 10 ROWS
           INTO TABLE it_mara.

  z_cl_zip_tools=>create_zip_bin( EXPORTING imp_filename    = 'MARA_TAB.BIN'
                                            imp_zipfilename = '/usr/sap/mara_tab.zip'
                                            imp_table       = it_mara
                                  IMPORTING retc            = retc ).


ENDFORM.                    " CHECK_ZIP
Textdateien sind ähnlich, da nur beim convert in Xstring CRLF bei Bedarf hinzugesteuert werden.

/Edwin

*edit: UUPS habe erst jetzt gesehen, daß der Thread ja schon etwas älter ist

Vergleichbare Themen

4
Antw.
1260
Views
Workflow ABAP Klasse
von ZF_SAPler » 12.05.2022 21:46 • Verfasst in ABAP® für Anfänger
1
Antw.
3188
Views
Methode dynamisch zu Klasse hinzufügen in ABAP Cloud
von Saftladen » 17.02.2026 13:14 • Verfasst in ABAP Objects®
1
Antw.
5858
Views
Lokale Klasse autom. in globale Klasse ändern
von JohnLocklay » 09.01.2019 09:10 • Verfasst in ABAP Objects®
5
Antw.
7024
Views
Klasse soll Typdefinition von anderer Klasse nutzen
von debianfan » 24.05.2017 11:30 • Verfasst in ABAP Objects®
0
Antw.
1606
Views
Hilfe zur Klasse
von supermario73 » 29.02.2008 08:54 • Verfasst in ABAP® Core

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

LSMW-Problem
vor 2 Tagen von mazu gelöst 5 / 1025
ATC Finding in Smartforms
vor 6 Tagen von sap_enthusiast 2 / 995

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

LSMW-Problem
vor 2 Tagen von mazu gelöst 5 / 1025
ATC Finding in Smartforms
vor 6 Tagen von sap_enthusiast 2 / 995

Unbeantwortete Forenbeiträge

SFP/SEGW - Fehler beim Rendering
letzen Monat von Manfred K. 1 / 86791
Benutzerdefinierte Felder PSP
January 2026 von Rabea1103 1 / 140057