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

232

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)



Und weiter ...

Bist du zufrieden mit dem Inhalt des Artikels? Wir posten jeden Freitag neuen Content im Bereich ABAP und unregelmäßig in allen anderen Bereichen. Schaue bei unseren Tools und Apps vorbei, diese stellen wir kostenlos zur Verfügung.


ABAP in Praxis - String Verarbeitung

Kategorie - ABAP

In diesem praktischen Beispiel schauen wir uns die String Verarbeitung zur Ermittlung der CDS Namen in CamelCase an und wie du das mit ABAP umsetzen kannst.

15.10.2024

ABAP in der Praxis - Test Driven Development

Kategorie - ABAP

Wie funktioniert eigentlich TDD in der Praxis und gibt es einfache Beispiele zum Lernen in ABAP? In dieser Übung gehen wir auf den praktischen Teil ein.

24.09.2024

ABAP in der Praxis - Datenmenge zusammenführen

Kategorie - ABAP

Wir führen wir zwei unterschiedliche Datenmengen in ABAP zusammen, vor allem im Hinblick auf das Moderne ABAP? Eine praktische Aufgabe zum Thema.

17.09.2024

ABAP in der Praxis - Modern ABAP

Kategorie - ABAP

In dieser kleinen Aufgabe schauen wir uns bestehenden klassischen ABAP Quellcode an und versuchen diesen nach Modern ABAP zu optimieren.

27.08.2024

ABAP Tipp - Performance Datenfilterung

Kategorie - ABAP

Welche Anweisung verwendest du in ABAP zur Filterung von internen Tabellen und ist diese performant? In diesem Artikel mehr dazu.

13.08.2024