Die lokale Klasse des Debugger-Scripts lcl_debugger_script enthält den Script-Quelltext Ihres Debugger-Scripts. Es handelt sich hierbei um eine normale lokale Klasse, die Sie an Ihre Bedürfnisse anpassen können. Sie können beispielsweise Methoden und Attribute hinzufügen.
Benennen Sie die Klasse nicht um und ändern Sie auch nicht die Vererbung oder die Deklaration der Script-Methoden INIT, SCRIPT und END.
Ändern Sie nicht den Tag-Kommentar. Die Tags werden beim Sichern des Scripts automatisch generiert.
Script-Methoden
Die lokale Klasse des Debugger-Scripts stellt folgende Methoden zur Verfügung:
Methode |
Funktion |
---|---|
prologue |
Technische Initialisierung des Scripts |
init |
Initialisierung des Scripts |
script |
Methode, die für jeden Trigger aufgerufen wird |
end |
Ende des Scripts |
Methode PROLOGUE
Nachdem das Script gestartet wurde, ruft das Debugger-Framework zuerst die Methode prologue des Scripts auf.
Die Standardimplementierung registriert die Instanz abap_source für das Ereignis debug_step, damit die von der Instanz abap_source gelieferten Quelltextinformationen immer auf dem neuesten Stand sind.
Wenn Sie die Performance Ihres Scripts verbessern möchten und abap_source nicht benötigen, können Sie den Standardaufruf super->prologue löschen.
METHOD prologue. *** generate abap_source (source handler for ABAP) super->prologue( ). ENDMETHOD.
Methode INIT
Im nächsten Schritt ruft das System die Methode init des Debugger-Scripts auf. Diese Methode wird nur einmal und zwar direkt nach der Methode prologue aufgerufen.
Sie dient zur Initialisierung des Scripts. An dieser Stelle können Sie außerdem Benutzerinteraktionen hinzufügen, z.B. ein Dialogfenster, auf dem der Benutzer zur Eingabe von Daten aufgefordert wird, die für das Script benötigt werden.
METHOD init. RAISING cx_tpda_stop_scripting_request. ENDMETHOD. "init
Methode SCRIPT
Diese Methode wird aufgerufen, wenn das Script angestoßen wird. Sie enthält den größten Teil der Script-Funktionalität.
METHOD script. IMPORT !p_trigger type tpda_script_trigger. RAISE: cx_tpda_stop_scripting_request, cx_tpda_script_continue. ENDMETHOD. "script
Der Import-Parameter p_trigger wird mit dem Typ des Triggers gefüllt, der das Script angestoßen hat.
Die Komponenten von p_trigger sind folgende Kennzeichen:
bp_reached
wp_reached
single_step
single_run.
Es ist möglich, mehrere Trigger parallel zu definieren, beispielsweise einen Breakpoint bei der Anweisung SELECT, einen Breakpoint beim Ereignis stack-change sowie einen Watchpoint.
Sie können die Script-Ausführung stoppen, in dem Sie die Ausnahme cx_tpda_stop_scripting_request auslösen.
Mit der Service-Methode me->break( ) können Sie dem Benutzer die Entscheidung überlassen, ob das Script gestoppt oder fortgesetzt werden soll.
Sie können das Script (ohne Benutzerinteraktion) bis zum Erreichen des nächsten Triggers fortsetzen, indem Sie die Ausnahme cx_tpda_script_continue auslösen.
Methode END
Wenn das Ende des Scripts erreicht ist oder das Script durch den Benutzer gestoppt wird, wird die Methode endaufgerufen.
An dieser Stelle können Sie Daten für den Benutzer anzeigen lassen, Ressourcen schließen oder Daten vor dem Abspeichern aggregieren.
METHOD end. *** insert your code which shall be executed at the end of the ***scripting (before trace is saved) here ENDMETHOD. "end
Services der Script-Superklasse
Instanzmethode break
Diese Methode stoppt die Ausführung des Scripts. Die Kontrolle wird wieder an den Benutzer übergeben.
Sie können die Script-Ausführung beenden oder fortsetzen. Das Script wird nach dem Erreichen des nächsten Triggers erneut angestoßen.
Instanzmethode raise_error
Mit dieser Methode können Sie das Script abbrechen und eine entsprechende Meldung für den Benutzer anzeigen lassen.
Diese Methode löst eine Ausnahme aus, um das Script abzubrechen. Wenn Sie diese Ausnahme im Script abfangen, führt die Methode raise_error nicht zum Abbruch des Scripts.
Die Superklasse stellt außerdem Instanzen der wichtigsten Debugger-Services zur Verfügung:
Service |
Beschreibung |
---|---|
abap_source |
ABAP-Programm- und Quelltext-Informationen. Beispiel: currr_prog = abap_source->program( ) |
BP |
Breakpoint-Services |
WP |
Watchpoint-Services |
debugger_control |
Beispiele: Einzelschritt und Gehe zu Anweisung |
debugger_status |
Debugger-Einstellungen und -Status |
dynpro |
Dynpro-Informationen |
memory |
Informationen über Speicherauslastung und Komponenten mit dem höchsten Speicherverbrauch |
special |
Systembereiche und weitere Details |