ABAP-Quellcode-Analyse als Static Code Analysis (SCA)
-----------------------------------------------------

In der Praxis wird die SCA häufig eher gemieden als geschätzt, was vor allem an der starren,
regelbasierten Arbeitsweise traditioneller Werkzeuge liegt. Diese Scans produzieren regelmäßig 
eine überwältigende Anzahl an Ergebnissen, die sich jedoch oft als „False Positives“ entpuppen 
– also Fehlalarme, die zwar formal gegen eine Regel verstoßen, im spezifischen Kontext der 
Anwendung jedoch kein reales Risiko darstellen. Für die Beschäftigten bedeutet dies einen enormen 
manuellen Aufwand, um in einer Flut von Zufallsfunden die tatsächlich kritischen Schwachstellen zu
identifizieren. Zudem sind die Einstiegshürden hoch: Die Bedienung und korrekte Konfiguration 
dieser Experten-Funktionen erfordert spezialisiertes Wissen, das in vielen Teams nicht 
flächendeckend vorhanden ist. Das Ergebnis ist eine zeitaufwendige Analyse, die Probleme 
aufzeigt, den Nutzer aber ohne konkrete Lösungsideen mit der Behebung allein lässt. 

Trotzdem ist es mit einem Report wie ZABAPDOWN01, der im Internet frei zugänglich ist, zumindest 
möglich, den gesamten Quellcode eines Systems über Transaktionen wie SA38, OODR u.a. 
herunterzuladen und als Textdatei zur Verfügung zu stellen. Steht dieser als Datei bereit, wobei 
die drei Datenfelder NAME (Programmname), ZEILE (Zeile innerhalb eines Programms) und CODE 
(Code-Zeile mit einem oder mehreren Befehlen, Variablenzuweisungen usw.) vorliegen, kann er in 
einer MS Access-Datenbank unter dem Systemnamen gespeichert werden.

Prüfung
-------

Liegen diese Daten als Datei vor, kann mit dem Programm abapcheckstat.exe der Datenbestand geprüft
werden. Die Code-Tabellen aus ZABAPDOWN01 der einzelnen Systeme werden unter dem Systemnamen als
Tabellen in einer Access-Datenbank (mdB, nicht accdb) gespeichert. In der beigefügten Testdatenbank
sind Tabellen des Prüfsystems vorhanden, sie können beliebig erweitert oder reduziert werden.
Die Code-Tabellen müssen jedoch mit r, R, p oder P beginnen, sonst werden sie im Programm nicht angezeigt.
Sofern eine Datenbank alle produktiven SAP-Quellcode-Tabellen beinhaltet, macht es Sinn, auch zwei
weitere Datenbanken für Test / Integration und Entwicklung aufzubauen. Zwischen den Datenbanken kann
dann unkompliziert gewechselt werden, um die Tabellen zu analysieren. Es entstehen, somit Target-Listen
mit Verdachtseinträgen.

Über F10 kann die KI-Bewertung angestoßen werden. Dabei wird der Quellcode des potenziell kritischen
Programms zusammengestellt und mit einer Frage zur KI gesendet. Die Antwort wird dargestellt und mit
als Antwort gespeichert werden. Gern kann jedes so erkannte Programm mehrmals analysiert werden, das
erhöht später die Chancen auf gute Textvorschläge der KI bei der Ergebniszusammenstellung.

Liegen entsprechende Ergebnisdateien zu den einzelnen Programmen (Dateiname <system>-<programmname>(x).txt)
vor, können diese über das Programm abaptgsh.exe angesehen werden. Über den Button Evaluation werden alle
Detailausgaben zu den Programmen nochmals einer Betrachtung unterzogen und es wird über die angebundene
KI eine Kurzzusammenfassung geschrieben. Wie gesagt, gibt es zu den einzelnen Programmen jeweils mehrere
Ergebnisdateien unter c:\temp (diese würde ich immer zielgerichtet nach …\Ergebnisse\ kopieren), gibt
es aus der KI heraus viele gute Formulierungsvorschläge. Diese können hinterher genutzt oder verworfen
werden. 

KI-Connectoren
--------------

Das Programm abapsta1.exe ist der jeweilige Connector, der zur Kommunikation mit der KI-API genutzt wird.
Es gibt aktuell mehrere Connectoren - für Groq, Gemini, DeepSeek und für Azure. Die ersten drei sind
logischerweise nur Test-Connectoren, die aber sehr gut und schnell funktionieren, der Azure-Connector
wurde entwickelt, um den DSGVO-konformen Azure-KI-Zugang zu nutzen. Wichtig ist dabei jeweils, dass
der API-Key gebildet wurde, die Adresse zur Modellnutzungsbereitstellung muss stimmig sein (Groq, Gemini
und DeepSeek sind korrekt, für Azure muss im Unternehmen gefragt werden, dies muss auch explizit 
eingerichtet werden; wenn andere Connectoren, dann konf.ini+abapsta1.exe austauschen). 

In den Dateien konf.ini in allen Verzeichnissen stehen die Zugangsdaten zur Datenbank und zu den KI-Modellen. 
Bitte die ini jeweils anpassen, damit der Weg zur DB und zur KI-Nutzung korrekt definiert ist. Ich nutze 
diese einfachste Art der Konfiguration, da hier schnell Anpassungen möglich sind im Entwicklungsprozess.
Sofern hier Fragen bestehen, können Sie sich gern an mich wenden. Ich habe auch den gesamten Quellcode der 
Connectoren beigefügt, die Funktion SendToAI() ist Anbieter-abhängig und so festgelegt, dass der Zugriff 
100%ig funktioniert. 

Rückfragen? Gern unter der bekannten E-Mail-Adresse.


30. April 2026
Christoph Wildensee


PS: DCA ist natürlich erheblich besser, steht im Unternehmen aber aufgrund der Kosten meist nicht zur Verfügung.


Startanwendung: abapcheckstat.exe
Connectoren: abapsta1.exe (mehrere vorhanden, Zugangsdaten auf das Modell in die ini eintragen)
Target Item Liste: abaptgsh.exe


 



