Anfang des Inhaltsbereichs

Programmüberprüfungen Dokument im Navigationsbaum lokalisieren

ABAP-Programme werden statisch bei ihrer Erstellung und dynamisch während ihrem Ablauf überprüft.

Statische Prüfung

Bei der statischen Prüfung wird mit der Syntaxprüfung die Korrektheit der Syntax überprüft und mit der erweiterten Programmprüfung eine semantische Prüfung vorgenommen, z.B. ob bei einen externen Prozeduraufruf Anzahl oder Typ der übergebenen Schnittstellenparameter korrekt sind.

Syntaxprüfung

Die Syntaxprüfung prüft ein Programm statisch hinsichtlich Syntax und interner Semantik. Sobald ein Fehler auftritt, wird die Prüfung beendet und eine entsprechende Fehlermeldung erzeugt. In vielen Fällen wird vom System in einem Dialogfenster eine Korrektur vorgeschlagen, die man übernehmen kann. Danach wird eine erneute Prüfung vorgenommen.

Bei der Syntaxprüfung in Include-Programmen wird das aktuelle Programm mit einem eventuellen TOP-Include zu einem prüffähigen Programm zusammengebunden. Nur bei der Prüfung eines Rahmenprogramms werden alle Include-Programme auf Konsistenz und Abgeschlossenheit geprüft z.B., ob alle gerufenen Unterprogramme definiert sind.

Gegebenenfalls werden Warnungen ausgegeben. Dabei wird der Syntaxcheck nicht beendet und das Programm ist im Prinzip ausführbar. Syntaxwarnungen sollten dennoch immer korrigiert werden, da sie im allgemeinen zu unvorhersehbaren Fehlern während der Laufzeit führen können und da Warnungen in späteren Releases zu echten Syntaxfehlern werden können.

Erweiterte Programmprüfung

Viele Prüfungen werden bei der Standard-Syntaxprüfung aus Laufzeitgründen nicht vorgenommen. Bei der erweiterten Programmprüfung wird eine komplette Prüfung durchgeführt, die auch die Schnittstellen von extern aufgerufenen Prozeduren umfaßt.

Fehler in der erweiterten Programmprüfung führen bei Programmablauf zu Ausnahmesituationen und diese wiederum zu Laufzeitfehlern und müssen daher eliminiert werden. Eine Ausnahme ist der Hinweis auf unerreichbares Coding, das aber ebenfalls gelöscht werden sollte, um die Programmgröße zu minimieren und den Quelltext lesbar zu halten.

Warnungen in der erweiterten Programmprüfung sollten ebenfalls korrigiert werden. Warnungen die sich auf Anweisungen beziehen, die sicher so sein sollen, wie sie sind, können durch die Verwendung von Pseudokommentaren ( "#EC ... ) in der Programmzeile ausgeblendet werden.

Das Ausführen der erweiterten Programmprüfung gehört immer zur Programmentwicklung. Erst nach erfolgreicher Prüfung ohne Fehler und Warnungen ist die Entwicklung eines Programms abgeschlossen. Zum Schluß des Entwicklungsprozeß sollten nur noch Meldungen vorhanden sein, die i.A. nicht kritisch sind.

Auch bei der erweiterten Programmprüfung handelt es sich um eine statische Prüfung, die Ausnahmesituationen bzw. Laufzeitfehler nicht vollständig ausschließen kann. Beispielsweise sind alle Stellen, an denen Argumente von Anweisungen dynamisch als Feldinhalte angegeben werden, wie beim dynamischen Prozeduraufruf, nicht statisch überprüfbar.

Dynamische Prüfung

Fehlerhafte Zustände, die statisch nicht vorhersehbar sind und erst zur Laufzeit auftreten werden von der ABAP-Laufzeitumgebung dynamisch erkannt. Solche Zustände führen zu Ausnahmen. Falls eine Ausnahme nicht behandelt wird oder nicht behandelbar ist kommt es zu einem Laufzeitfehler. Bei einem Laufzeitfehler beendet die ABAP- Laufzeitumgebung die Ausführung des Programms, erzeugt einen sogenannten Kurzdump und verzweigt in ein besonderes Bild zur Analyse des Kurzdumps.

Ein Kurzdump ist in verschiedene Blöcke unterteilt, die den Fehler dokumentieren. In der Übersicht kann man sehen, welche weiteren Informationen im Kurzdump noch ausgegeben werden, wie z.B. Inhalte von Datenobjekten, Aktive Aufrufe, Kontrollstrukturen etc. Aus der Kurzdump-Ansicht kann im ABAP-Debugger an die Abbruchstelle verzweigt werden.

Es können folgende Fehlersituationen unterschieden werden:

Der Kernel erkennt einen fehlerhaften Zustand. In diesem Fall ist die SAP zu benachrichtigen.

Hier trat ein Fehler ein, der durch falsche Systeminstallation oder durch fehlende Ressourcen (z.B. Datenbank ist geschlossen) verursacht wurde.

Typische Fehlerursachen sind :

Inhalt eines numerischen Felds nicht im richtigen Format.

Arithmetischer Überlauf.

Externe Prozedur ist nicht vorhanden.

Typkonflikt bei der Parameterübergabe an eine externe Prozedur.

Kurzdumps werden standardmäßig 14 Tage im System gespeichert. Die Transaktion zum Verwalten der Kurzdumps ist ST22. Mit der Funktion Aufbewahren können einen Kurzdumps ohne zeitliche Begrenzung gespeichert werden. Mit der Funktion Reorganisation können Kurzdumps entsprechend einer Zeitvorgabe gelöscht werden. Aus Kurzdumps, die in der ST22 angezeigt werden, kann nicht mehr in den Debugger verzweigt werden.

Treten Probleme mit ABAP-Programmen auf, die man selbst nicht lösen kann, kann ein Auszug des Kurzdumps an die SAP gesendet werden. Ein Kurzdump stellt sowohl für die SAP-Hotline als auch für die Remote-Beratung die Grundlage für Lösung der Probleme dar.

Ende des Inhaltsbereichs