Automatisches Speichern von Testdaten in FuBas-Aufrufen mit FBGENDAT

In der Transaktion SE37 ist es möglich, Funktionsbaustein-Aufrufe manuell zu starten und Testdatenverzeichnisse anzulegen. Das Eingeben und Anlegen dieser Testfälle kann manuell aber sehr zeitintensiv sein. Mit FBGENDAT gibt es eine Möglichkeit, die Schnittstellen-Aufrufe von eigenentwickelten Funktionsbausteinen automatisch abzuspeichern und damit ein Testdaten-Verzeichnis aufzubauen.
Es besteht zudem die Möglichkeit, FBGENDAT auch für SAP-Standardfunktionsbausteine zu verwenden.

FBGENDAT ist besonders hilfreich, wenn ein Funktionsbaustein etwa über OData-Services, RFC-Schnittstellen oder andere Programme extern aufgerufen wird. Dann ist es mit FBGENDAT möglich, die Aufrufe samt den Übergabedaten zu speichern und damit später zum Beispiel nachvollziehen zu können, warum ein Aufruf Fehler zurückgegeben hat. Mit den Testdaten kann der Aufruf dann ganz einfach nochmal übernommen und gedebuggt werden.

 

Schritte:

  1. Zu trackenden FuBa in FBGENDAT-Programm aktivieren
  2. User-Parameter FBGENDAT pflegen
  3. Code-Zeile mit fbgenmac in FuBa einbauen

 

Fuba in FBGENDAT-Programm aktivieren

Zunächst muss der Funktionsbaustein, dessen Aufrufe im Testdatenverzeichnis automatisch gespeichert werden sollen, in eine Liste eingetragen werden. Hierfür steht das Programm FBGENDAT zur Verfügung, welches über die SE38 gestartet werden kann.

Transaktion SE38 -> Programm FBGENDAT

  • Funktionsbaustein eingeben, welcher überwacht werden soll
  • Modus: B
  • Diesen Eintrag aktivieren: 'X'

Ausführen mit F8:

 

Danach werden die bereits aktivierten Funktionsbausteine angezeigt:

 

Über das Programm können Funktionsbausteine auch wieder deaktiviert werden.

 

User Parameter pflegen

Als zweites muss in den User-Parametern der Parameter 'FBGENDAT ' mit einem 'X' gepflegt werden. Dies sollte für die Anwender geschehen, deren Aufrufe abgespeichert werden sollen.

Transaktion SU3 oder 'System -> Benutzervorgaben -> Benutzerdaten -> Parameter'

 

Oder

Transaktion SU01 -> User eingeben -> Reiter Parameter

-> FBGENDAT = 'X' eintragen

 

Einbindung von fbgendat in Programmcode des FuBa

Nun muss noch ein fbgenmac-Aufruf im Coding des FuBas, zu dem die Testdaten abgespeichert werden sollen, eingebaut werden. Der fbgenmac-Befehl sollte direkt zu Beginn des Funktionsbausteins aufgerufen werden, da hier dann direkt die Import Parameter abgespeichert werden, egal ob der FuBa später noch abbricht.

Hinter dem fbgenmac wird der Name des Funktionsbausteins angegeben, in dem man sich aktuell befindet.

 

Zudem muss im Top-Include der Funktionsgruppe, in dem sich der Funktionsbaustein befindet, das Include fbgenmac eingebunden werden:

 

Ergebnis

Wird der Funktionsbaustein nun von einem User, der den fbgendat User-Parameter gesetzt hat, im Hintergrund oder aktiv ausgeführt, wird automatisch ein Datensatz im Testdatenverzeichnis angelegt. Dieser kann dann nach Datum, Uhrzeit und dem User im Kurztext (immer: 'GENERATED BY: <SAP-Username>) wieder rausgesucht werden in der SE37:

 

FBGENDAT für Standard-Funktionsbausteine

Um auch bei Funktionsbausteinen der SAP von fbgendat zu profitieren, können folgende zwei Möglichkeiten angewandt werden:

  • Den fbgenmac Befehl über eine implizite Erweiterung an den Anfang des Quellcodes einfügen (hierzu muss dann auch das Include eingefügt werden).
  • Den Funktionsbaustein in einem eigenen Funktionsbaustein mit den gleichen Parametern aufrufen.

Hier wird sich auf eine kurze Anleitung für die zweite Möglichkeit beschränkt, da hierfür keine Erweiterung notwendig ist:

  1. SAP Funktionsbaustein in der SE38 -> FBGENDAT bekannt machen (z.B. SD_VBUK_READ_FROM_DOC).



  2. Funktionsbaustein der SAP in einen Funktionsbaustein im Kundennamensraum kopieren (z.B. ZSD_VBUK_READ_FROM_DOC). Dabei werden alle Parameter übernommen.



  3. Coding im kopierten eigenen Baustein löschen. Nun den Fbgenmac-Befehl im kundeneigenem Funktionsbaustein aufrufen. Dort den Namen des SAP-Funktionsbausteins angeben.

  4. Danach im Coding den SAP-Funktionsbaustein mit allen Parametern aufrufen und die Daten auch wieder zurückgeben:

  5. Der neu angelegte, kundeneigene Funktionsbaustein kann nun anstelle des SAP-FuBas in dem Coding aufgerufen werden , in dem sonst der SAP-Baustein aufgerufen worden wäre. Also zum Beispiel in den Methoden zu einem OData-Service.

Bei dem Aufruf werden nun die Testdaten vollständig im Verzeichnis des SAP-Funktionsbausteins abgespeichert.

 

Haben Sie Fragen? Dann nehmen Sie gerne Kontakt zu uns auf

Zurück