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 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

ABAP Tipp - Clean Core

Kategorie - ABAP

In diesem Artikel mal etwas zum Thema Clean Core, was bedeutet es für den Entwickler, was sind Vorraussetzungen und auf was muss man achten.

17.06.2022

ABAP Tipp - Verarbeitung in neuem Task

Kategorie - ABAP

In diesem Tipp geht es um die asynchrone Verarbeitung in einem neuen Prozess und auf was du dabei achten solltest.

07.01.2022

ABAP Tipp - Konvertierung JSON nach Intern

Kategorie - ABAP

In diesem kleinen Tipp gehen wir darauf ein, wie du einen JSON Stream in ein internes Format konvertierst und dann ordentlich verwenden kannst.

10.12.2021

ABAP Tipp - Externe Währung nach Intern

Kategorie - ABAP

Ein kleiner Tipp um Daten aus einer Excel oder CSV-Datei in das korrekte interne Währungsformat zu konvertieren. Eine einfach Konvertierung kann schnell zu Fehlern führen.

03.12.2021