Anfang des Inhaltsbereichs

Hintergrunddokumentation Lokale Klasse des Debugger-Scripts  Dokument im Navigationsbaum lokalisieren

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.

Achtung

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->prologuelöschen.

Syntax

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.

Syntax

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.

Syntax

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_continueauslö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.

Syntax

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

 

 

 

Ende des Inhaltsbereichs