Ansicht
Dokumentation

ABENEXTENDED_PROGRAM_CHECK_GUIDL - EXTENDED PROGRAM CHECK GUIDL

ABENEXTENDED_PROGRAM_CHECK_GUIDL - EXTENDED PROGRAM CHECK GUIDL

BAL_S_LOG - Application Log: Log header data   BAL_S_LOG - Application Log: Log header data  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Erweiterte Programmprüfung

Die erweiterte Programmprüfung kann für aktivierte Programme entweder aus der ABAP Workbench heraus oder über die Transaktion SLIN aufgerufen werden. Sie führt statische Prüfungen durch, die für die normale Syntaxprüfung zu aufwendig sind. Es können entweder einzelne oder mehrere Teiltests oder eine ATC-relevante Prüfung durchgeführt werden, welche die wichtigsten Teiltests umfasst.

Die erweiterte Programmprüfung gibt Fehler, Warnungen und Meldungen aus. Von der ATC-relevanten Prüfung werden die Fehler und Warnungen gemeldet, die besonders kritisch sind. Umgekehrt werden diese Prüfungen auch bei einer Überprüfung eines Programms mit dem ABAP Test Cockpit (ATC) ausgeführt. Die Einstufung eines einzelnen Ergebnisses als Fehler, Warnung oder Meldung variiert, je nachdem, ob eine ATC-relevante Prüfung oder explizit ausgewählte Einzelprüfungen durchgeführt werden. Darüber hinaus werden immer auch die Fehler und Warnungen der Syntaxprüfung angezeigt.

Im Einstiegsbild der erweiterten Programmprüfung kann auch eine Prüfung von Programmierrichtlinien ausgewählt werden, welche die Einhaltung einiger der in dieser Dokumentation vorgestellten Regeln, die statisch verifiziert werden können, überprüft.

Die Meldungen der erweiterten Programmprüfung, die in speziellen Sonderfällen unzutreffend sind, können über Pragmas ausgeblendet werden. Meldungen, die direkt von der normalen Syntaxprüfung kommen, ließen sich vor der Einführung von Pragmas nicht ausblenden.

Hinweis

Die erweiterte Programmprüfung umfasst auch Sicherheitsprüfungen zur Überprüfung von ABAP-Programmen auf mögliche Sicherheitsrisiken. Diese unterliegen in Kundensystemen einem eigenen Lizenzierungsverfahren.

Erweiterte Programmprüfung verwenden

Verwenden Sie die erweiterte Programmprüfung, und nehmen Sie ihre Ergebnisse ernst. Für ein fertiggestelltes Programm dürfen keine Meldungen der ATC-relevanten Prüfungen mehr auftreten.

Die von der erweiterten Programmprüfung ausgegebenen Fehler, Warnungen und Meldungen sind genauso wichtig wie die Syntaxfehler und Syntaxwarnungen der Syntaxprüfung. Ein von der erweiterten Programmprüfung gemeldeter Fehler kann zum Beispiel darauf hinweisen, dass ein Programm bei der Ausführung sicher zu einem Laufzeitfehler führt. Warnungen und Meldungen weisen in der Regel auf die fragwürdige Verwendung von Sprachelementen hin, die aller Voraussicht nach zu unerwartetem Programmverhalten führt.

In den seltenen Fällen, in denen ein von der erweiterten Programmprüfung gemeldetes Prüfergebnis unberechtigt ist, muss dies durch ein geeignetes Pragma dokumentiert werden (das geeignete Pragma wird in der Meldung genannt). Dadurch wird diese Meldung der erweiterten Programmprüfung unterdrückt. Idealerweise sollte in weniger offensichtlichen Situationen ein zusätzlicher Kommentar erläutern, warum an dieser Stelle die Meldung nicht zutreffend ist.

Hinweis

Die erweiterte Programmprüfung ist eine wertvolle Hilfe beim Schreiben korrekter ABAP-Programme. Dieser Vorteil darf nicht durch Verwendung unspezifischer Pseudokommentare oder Pragmas zunichte gemacht werden. Insbesondere sollte die Anweisung

SET EXTENDED CHECK OFF.

niemals verwendet werden, die alle Meldungen der erweiterten Programmprüfung für einen gesamten Quelltextabschnitt unterdrückt.

Wird ein ABAP-Programm einem Code-Review unterzogen, sollten die Ergebnisse der erweiterten Programmprüfung zur Beurteilung der Qualität mit herangezogen werden.

Wenn folgender Quelltext mit der erweiterten Programmprüfung überprüft wird, kommt es zu einer Warnung. Sie macht auf eine äußerst fragwürdige Abfrage des Inhalts des Rückgabewerts sy-subrc aufmerksam.

ASSIGN field TO <fs>.
IF sy-subrc <> 0.
  ...
ENDIF.

Der Programmabschnitt zeigt einen typischen Fehler in einem syntaktisch korrekten Programm. Der Entwickler nimmt fälschlicherweise an, dass die statische Form der Anweisung ASSIGN das Systemfeld sy-subrc setzt, was aber nicht der Fall ist. Dies hat zur Folge, dass er sich zum einen in der falschen Sicherheit wiegt, sein Programm abgesichert zu haben, und zum anderen ein falsches Programmverhalten auftritt, wenn sy-subrc von vorhergehenden Anweisungen her einen Wert ungleich null hat. Der große Vorteil der erweiterten Programmprüfung ist daher, dass nicht nur einzelne Anweisungen auf syntaktische Korrektheit, sondern ganze Programmabschnitte auf semantische Fehler hin untersucht werden.

Folgender Quelltext zeigt die korrigierte Fassung des obigen Beispiels. Statt der falschen Abfrage von sy-subrc wird der in der Dokumentation empfohlene Prädikatsausdruck IS ASSIGNED verwendet. Die Meldung der erweiterten Programmprüfung wäre zwar auch durch ein Pragma ##subrc_read ausblendbar, aber das wird in einem solchen Fall wie hier gerade nicht empfohlen, da die erweiterte Programmprüfung auf ein echtes Problem hinweist.

ASSIGN field TO <fs>.
IF <fs> IS ASSIGNED.
  ...
ENDIF.






ROGBILLS - Synchronize billing plans   Addresses (Business Address Services)  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 6422 Date: 20240523 Time: 165619     sap01-206 ( 122 ms )