This is a test message to test the length of the message box.
Login
ABAP Tipp Aufbau von Testdaten
Erstellt von Software-Heroes

ABAP Tipp - Aufbau von Testdaten

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

Werbung

Beim heutigen Tipp geht es um eine leichte Erstellung von Testdaten, eine Migration der Testanwendung in andere Systeme und die schnelle Wiederherstellung der Daten im System. Dabei schauen wir uns die verschiedenen Möglichkeiten einmal genauer im Detail an.

 

Daten bereitstellen

Du baust gerade eine neue Tabelle auf und möchtest diese direkt mit Daten befüllen? Hierbei gibt es zwei Wege die Daten in die Tabelle zu bekommen:

  • Anlage eines Pflegeviews
  • Einfügen per Programm

 

Setzen wir dazu erst einmal eine Tabelle auf. Der einfache und schnelle Weg ist dabei die Anlage über die ABAP Development Tools (ADT), da hier die Tabelle in einfacher Form definiert wird. Im Anschluss sparst du dir die Einstellung der technischen Details und den Absprung in die Erweiterungskategorie. Unsere Testtabelle sieht dabei wie folgt aus:

 

Pflegeview

Hierbei wird nach dem Erstellen der Tabelle ein Tabellenpflegeview angelegt. Mit diesem kannst du dann neue Datensätze einfügen, bearbeiten und löschen. Dabei wird eine Funktionsgruppe und Pflegebausteine generiert, es werden also relativ viele Objekte benötigt.

  • Funktionsgruppe mit Bausteinen
  • Dynpros
  • Includes mit Events

 

Programm

Hierbei legst du eine ausführbare Klasse oder einen Report an und übernimmst das Befüllen der Daten auf Knopfdruck. Es wird nur ein einfaches Objekt (Klasse, Report) benötigt. Wie könnte so eine ausführbare Klasse also aussehen?

CLASS zcl_bs_demo_fill_account DEFINITION PUBLIC FINAL CREATE PUBLIC.
  PUBLIC SECTION.
    INTERFACES if_oo_adt_classrun.

  PROTECTED SECTION.
  PRIVATE SECTION.
ENDCLASS.


CLASS zcl_bs_demo_fill_account IMPLEMENTATION.
  METHOD if_oo_adt_classrun~main.
    DATA:
      lt_account TYPE STANDARD TABLE OF zbs_dy_account WITH EMPTY KEY.

    lt_account = VALUE #(
      ( identifier = '1000000010' amount = '12.34' currency = 'EUR' account_active = abap_true )
      ( identifier = '1000000011' amount = '200.00' currency = 'USD' account_active = abap_true )
      ( identifier = '1000000012' amount = '55.50' currency = 'EUR' account_active = abap_false )
      ( identifier = '2000000010' amount = '13.37' currency = 'CHF' account_active = abap_false )
    ).

    DELETE FROM zbs_dy_account.
    INSERT zbs_dy_account FROM TABLE @lt_account.

    out->write( |Datasets inserted { sy-dbcnt }| ).

    COMMIT WORK.
  ENDMETHOD.
ENDCLASS.

 

Hinweis: Damit die Klasse weiterhin ausführbar bleibt, solltest du vorm Einfügen der Daten die Tabelle erst einmal wieder aufräumen. Am Ende den sauberen Commit nicht vergessen.

 

Vergleich

Beim Vergleich der beiden Varianten ist der Pflegeview am Flexibelsten, du kannst die Einträge direkt anpassen und auf von Excel direkt in die Tabelle kopieren. Einzig negativer Punkt ist die große Anzahl an angelegten Objekten zur Pflege der Tabelle. Möchtest du die objekte in ein anderes System umziehen, ist dies nicht möglich, außer du würdest die Daten nach Excel exportieren. Hier bist du aber von einem automatische Prozess weit enfernt.

  • + Flexibel
  • - Anzahl Objekte
  • - Keine Migration der Daten

 

Dazu ist das Konstrukt mit ausführbarer Klasse relativ flexibel, da du immer wieder die Daten in der Klasse anpassen kannst. Hier arbeitest du aber immer mit dem vollen Datenpaket, wenn du die Daten änderst. Bei einer Migration der Objekte werden auch Dateninhalte mit verschoben und sind jederzeit im Zielsystem wieder verfügbar. 

  • - Relativ flexibel
  • + Anzahl Objekte
  • + Migration der Daten

 

Verwendung

Du möchtest dem Kollegen schnell mal eine kleine Anwendung zeigen und benötigst dazu Testdaten, dann ist die ausführbare Klasse ein schneller und einfacher Weg Daten zur Verfügung zu stellen und immer wieder anpassen zu können, ohne damit deinen eigentlichen Entwicklungsprozess zu stören. Ebenfalls ist die Anlage von Testdaten ein beliebtes Beispiel, wo man immer wieder mal die Daten anpassen muss, wenn man seine Testfälle anpasst. Wenn du eine übergreifende Anwendung geschrieben hast, dann möchtest du diese vielleicht auch in andere Systeme ausrollen und benötigst dort für deine ABAP Unit Testfälle die entsprechenden Daten.

Die Zahl der Fälle ist groß, bei denen du die Daten immer wieder benötigst. Dabei wird die Pflege über den Pflegeview zwar immer effektiv und die Einfachste bleiben, doch das Ausrollen des Pflegeviews über abapGit zum Beispiel, wird dir mehr Stolpersteine in den Weg legen, als du eigentlich brauchst. Die Deinstallation von solchen Pflegeviews wird aktuell noch nicht sauber unterstützt und am Ende werden dir die Daten zur Pflege fehlen.

Aus diesem Hintergrund heraus empfehlen wir die Verwendung des ausführbaren Objekts, wenn du nicht anderen Anforderungen hast, da es die flexibelste Variante ist beim Transfer von Objekten, die Migration und Bereitstellung von Daten in einem leeren System.

 

Hinweis: Ein Anlegen von Testdaten wird auch in der Cloud Umgebung (Steampunk) erschwert, da es keine GUI und keinen Tabellenpflegegenerator gibt. Hier ist der einfachste Weg die Anlage über die ausführbare Klasse.

 

Produktiv

Solche Anlageobjekte solltest du natürlich speziell sichern, damit niemand sie im produktiven System einfach so oder ausversehen ausführen kann. Am Einfachsten ist hier wahrscheinlich die Prüfung der Berechtigungen gegen Debug & Change, da in jedem sauberen Produktivsystem debuggen möglich ist, aber kein Debug & Change. Zumindest solltest du diesen Punkt im Auge behalten, wenn du solche Objekte in Produktion bringst.

 

Fazit

Wie bekommst du am Einfachsten Testdaten ins System und diese auch weiter ins nächste System übertragen? Hier gibt es verschiedene Ansätze und du solltest je nach Situation entscheiden, was dir am Besten passt.


Enthaltene Themen:
TippTestdatenAnlage von Testdaten
Kommentare (0)
Werbung

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

ABAP Tipp - Icons

Kategorie - ABAP

Icons oder auch Ikonen in SAP finden und richtig nutzen? Hier ein kleiner Guide zum Umgang mit den Bildern für unterschiedliche Zwecke.

06.03.2020