This is a test message to test the length of the message box.
Login
ABAP Tipp Backup für Reports
Erstellt von Software-Heroes

ABAP Tipp - Backup für Reports

Die eigenen Reports mit einem Klick lokal sichern? In diesem Artikel zeigen wir dir wie du das machen kannst und zwar ohne viel Mühe.

Werbung

Du benötigst einmal einen Backup deiner bisherigen Programme/Reports die du geschrieben hast? Mit dem heutigen Tipp ist es kein Problem mehr, alles mit einem Klick zu extrahieren und gegebenenfalls zu archivieren. Wir zeigen dir einen effizienten Report, der alles für dich übernimmt.

 

Definition der Daten

Im ersten Schritt definieren wir die Datenstruktur für die Aufbereitung der zu lesenden Daten. Dazu benötigen wir noch eine Tabelle die den Quellcode nach dem Einlesen enthält. Da es sich um einen einfachen Report handelt, sind die Variablen direkt global deklariert.


" Typen
TYPES:
  BEGIN OF ts_data,
    objnr  TYPE versobjnam,
    name   TYPE string,
    path   TYPE string,
  END OF ts_data,
  tt_data TYPE STANDARD TABLE OF ts_data.

" Daten
DATA:
  gt_text TYPE STANDARD TABLE OF abaptxt255,
  gw_text TYPE abaptxt255,
  gt_data TYPE tt_data,
  gw_data TYPE ts_data.

 

Selektionsbild

Als zweiten Schritt definieren wir das Selektionsbild mit den Ablageparametern. Für welchen User sollen die Daten abgezogen werden (in diesem Fall der eigene User) und in welchem lokalen Ordner sollen die fertigen Dateien gesichert werden.


" Parameter
PARAMETERS:
  p_user  TYPE syuname DEFAULT sy-uname,
  p_path  TYPE string LOWER CASE DEFAULT 'C:	empcode',
  p_test AS CHECKBOX DEFAULT abap_true.

 

Lesen und Aufbereiten

Über die Tabelle TRDIR liest du alle Includes und Reports ein und bereitest diese in der Datenstruktur auf. Als Ergebnis bekommst du alle Bestandteile in einer internen Tabelle. Natürlich kannst du dir diesen Schritt auch sparen und direkt mit der Aufbereitung und Ausgabe starten.


" Abzug der Daten
SELECT * 
 FROM trdir
 WHERE cnam = @p_user
   AND ( name LIKE 'LZ%' OR name LIKE 'SAPLZ%' OR name LIKE 'Z%' ).
 INTO TABLE @DATA(gt_dir).
 
" Dateien übernehmen
LOOP AT gt_dir INTO DATA(gs_dir).
  CLEAR gw_data.
  gw_data-objnr = gs_dir-name.
  gw_data-name = gs_dir-name.
  gw_data-path = p_path && gw_data-name && '.txt'.
  APPEND gw_data TO gt_data.
ENDLOOP.

 

Download und Anzeige

Nun verarbeitest du die Daten aus der globalen Tabelle und liest über den READ REPORT Befehl den Inhalt der Ressource ein. Das Testkennzeichen bestimmt, ob der Inhalt nur ausgegeben werden oder die Dateien auf dem Filesystem abgelegt werden sollen.


" Abzug der Daten
LOOP AT gt_data INTO gw_data.
  " Daten löschen
  CLEAR: gt_text.

  " Abruf des Codings
  READ REPORT gw_data-objnr INTO gt_text.
  IF sy-subrc <> 0.
    WRITE: / 'Fehler: ', gw_data-name.
    CONTINUE.
  ENDIF.

  " Testmodus -> keine Dateien schreiben
  IF p_test = abap_true.
    WRITE: / 'Datei ermittelt: ', gw_data-path.
    CONTINUE.
  ENDIF.

  " Pfad öffnen
  cl_gui_frontend_services=>gui_download(
    EXPORTING
      filename = gw_data-path
      write_lf = 'X'
    CHANGING
      data_tab = gt_text
    EXCEPTIONS
      OTHERS   = 1
  ).
  IF sy-subrc = 0.
    WRITE: / 'Datei geschrieben: ', gw_data-path.
  ENDIF.
ENDLOOP.

 

 

Fazit

Das Einlesen des Quelltextes ist mit leichten Mitteln umgesetzt, ebenso wie das Ablegen auf dem lokalen Rechner. Damit steht dir mit dem Report ein einfaches Werkzeug zur Seite, deinen eigenen Quellcode zu verwalten und in Dateiform zu bringen. Ebenso können alte Reports archiviert und abgelegt werden.


Enthaltene Themen:
TippBackupReport
Kommentare (0)

ABAP Tipp - CLEAR right

Kategorie - ABAP

Richtig löschen? In diesem Artikel wollen wir uns einmal anschauen, wann es Sinn macht zu löschen und wie du effektiv vorgehen kannst.

12.05.2023

ABAP Tipp - Performance Kettensätze

Kategorie - ABAP

Schauen wir uns hier einmal die Performance beim Bilden von Kettensätzen mit DATA und FIELD-SYMBOL an. Welche Variante wird bei der Performance vorn liegen?

28.04.2023

ABAP Tipp - Adobe Formulare zu groß

Kategorie - ABAP

In diesem kleinen Tipp wollen wir uns anschauen, wieso im schlechtesten Fall Adobe Formulare größer werden, als sie eigentlich sein sollten.

18.11.2022

ABAP - ALV in 2022 noch relevant?

Kategorie - ABAP

Heute mal die scherzhafte Frage, benötigen wir im Jahr 2022 noch Reports die ALV Ausgaben erzeugen? Der Frage wollen wir in diesem Artikel einmal nachgehen.

01.07.2022

ABAP im Wandel

Kategorie - ABAP

Die Programmiersprache ABAP ist bereits seit Jahren im Wandel und modernisiert sich in verschiedenen Konzepten. In diesem Artikel schauen wir uns das einmal im Detail an.

24.06.2022