Testdaten automatisiert erzeugen (Funktionsbaustein)

Funktionsbausteine haben gegenüber Methoden (noch) einen riesigen Vorteil. Man kann Testdaten speichern und diese später wieder laden. Dieses Feature kann man sich bei der Fehleranalyse zu Nutzen machen. Implementieren Sie einfach zu Beginn des Bausteins das Makro, das die Übergebenen Daten speichert.

Erzeugen von Testdaten

Um die Testdaten automatisiert speichern zu können, müssen Sie das Include FBGENMAC in Ihre Funktionsgruppe einbinden. Das geht am Einfachsten im TOP-Include:

INCLUDE fbgenmac.

Die erste Anweisung in Ihrem Programm sollte dann heißen:

fbgenmac 'Z_FUNKTIONSBAUSTEIN'.

Wobei Sie natürlich “Z_FUNKTIONSBAUSTEIN” durch den Namen des Funktionsbausteins ersetzen, in dem Sie das Makro einbinden.

Des Weiteren muss noch der User-Parameter FBGENDAT gesetzt sein, damit die Daten der Importparameter auch wirklich gespeichert werden.

Es werden dann Testdaten mit dem Namen GENERATED BY:SAPUSER erzeugt.

TIPP 1

Das Include kann natürlich einfach kopiert werden und an eigene Bedürfnisse angepasst werden, zum Beispiel um die Abfrage des Parameters zu umgehen oder um ein wichtiges Feld zur Identifikation der “Testdaten” als Namen zu verwenden.

TIPP 2

Über eine Customizingtabelle könnte man dann noch einfach steuern, für welche Funktionsbausteine eine Protokollierung erfolgen soll. Tauchen vermehrt “unerklärliche” oder schwer nachzuvollziehende Fehler auf, kann die Protokollierung eingeschaltet werden.

Löschen von Testdaten

Es gibt keinen Funktionsbaustein zum Löschen der Testdaten. Dies passiert ausschließlich in der Testumgebung des Funktionsbausteins:

DELETE FROM eufunc
 WHERE relid  = 'FL'
   AND gruppe = <Name Funktionsgruppe>
   AND nummer = <Nummer des Testdatensatzes>
   AND Name   = <Name des Funktionsbausteins>
   AND seqid  = space.

Testdaten per RFC Kopieren

Mit diesem Funktionsbaustein RS_RFC_TESTDATA_GROUP_TRANSFER können Sie Testdaten einer Funktionsbausteingruppe per RFC aus einem anderen System kopieren.

Das gleiche funktioniert mit dem Baustein RS_RFC_TESTDATA_TRANSFER_FUNC für einen bestimmten Funktionsbaustein.

Die Funktion ist aus der Testumgebung des Funktionsbausteins nicht direkt erreichbar. Aber indirekt: Geben Sie den Funktionscode TESTTRANS in das OK-Code-Fenster ein. Auf dem Popup erhalten Sie dann die Parameter, die auch im Funktionsbaustein zu füllen wären:


Funktionscode TESTTRANS in der Testumgebung
Enno Wulff