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

ABAP Tipp - Aufbau von Testdaten

Kategorie - ABAP

Welche Herausforderungen hat man beim Aufbau von Testtabellen und Testdaten und wie kann dir die maschinelle Verarbeitung dabei helfen.

25.06.2021

ABAP Tipp - RFC Puffer

Kategorie - ABAP

Hier ein kleiner Tipp von uns, was beim Lesen über RFC mit dem Puffer so alles schief gehen kann und auf was du dabei unbedingt achten solltest.

23.04.2021

ABAP Tipp - Wait for Task

Kategorie - ABAP

Heute einmal einen Tipp für die asynchrone Verarbeitung oder wenn ihr in speziellen Situationen die Verarbeitung in einen separaten Task geben wollt. Wie geht es im Anschluss weiter?

05.03.2021

ABAP Tipp - Performance INSERT vs VALUE

Kategorie - ABAP

In diesem Artikel schauen wir uns einmal die Performance der Einfüge-Operationen APPEND, INSERT und VALUE im Hinblick auf Tabellen an und bewerten die Performance und Stabilität bei der Entwicklung.

26.02.2021

ABAP Tipp - Suche im Quellcode

Kategorie - ABAP

Manchmal ist die Suche über verschiedene Quellcode in einem System nötig. Wir zeigen dir wie es in der SAP GUI und in Eclipse funktioniert.

24.04.2020