Transaktion ST22 (Laufzeitfehler)

Aus SAP-Wiki
Wechseln zu: Navigation, Suche

Es passiert während der Entwicklung eines Programms gelegentlich, dass ein Programm mit einem Laufzeitfehler/Shortdump abbricht, meist aufgrund von Programmierfehlern im Coding.

Das System bereitet eigenständig ein Protokoll auf, was in aller Regel sehr bei der Fehleranalyse hilft. Die Protokolle der Laufzeitfehler werden über die Transaktion ST22 angezeigt.

Anzeige Laufzeitfehler in Transaktion ST22

  • Läuft das Programm im Vordergrund und bricht das Programm mit einem Laufzeitfehler ab, so wird der Laufzeitfehler sofort direkt in der Transaktion ST22 angezeigt.

Anzeige Laufzeitfehler

  • In diesem Beispiel wurde ein Funktionsbaustein mit einem Parameter CS_FORMVORLAGE aufgerufen, der im Funktionsbaustein nicht existiert.

DebuggerNew17.jpg

Sprung in Debugger

  • Bei der Anzeige des Laufzeitfehlers ist es oft sehr nützlich direkt von dem Shortdump, der in der Transaktion ST22 angezeigt wird, in den Debugger zu springen.
  • Mit der Schaltfläche DebuggerNew18.jpg wird direkt der Debugger aufgerufen an der Abbruchstelle. Hier kann man auch die Variablen zur Laufzeit des Abbruchs sich anzeigen lassen.
  • In diesem konkreten Fall war der Parameter "CS_FORMVORLAGE" im Funktionsbaustein in "ES_FORMVORLAGE" umbenannt und beim Aufruf nicht ebenfalls umbenannt.

DebuggerNew19.jpg

Selektion Laufzeitfehler in ST22

  • Die Laufzeitfehler lassen sich auch über die Transaktion ST22 anzeigen. Die Laufzeitfehler können v. a. über das Datum und den Benutzer (die den Laufzeitfehler verursacht haben) eingegrenzt werden. Der eigene Benutzername und das Tagesdatum sind defaultmäßig vorbelegt in den Feldern "Benutzer" und "Datum".
  • Hier wird man meistens auf die Schaltfläche Heute.jpg klicken, um die Laufzeitfehler des heutigen Tages anzuzeigen.

ST22 1.jpg


  • Die Liste aller Laufzeitfehler für das Datum und den Benutzer werden angezeigt. In diesem Fall gibt es lediglich ein Laufzeitfehler.
  • In der Spalte "Ausnahme" steht auch die Ausnahmeklasse "CX_SY_ZERODIVIDE", mit der dieser Fehler kontrolliert im Programm abgefangen werden könnte mittels einer klassenbasierten Ausnahme, ohne dass ein Laufzeitfehler erzeugt wird und das Programm komplett abbricht.

ST22 2.jpg


  • Ein Doppelklick auf den Laufzeitfehler öffnet die Detailinformationen zum Laufzeitfehler.
  • Hier liegt eine unzulässige Division durch 0 vor

ST22 3.jpg

Web-Links

Literatur