Hallo zusammen,
hin und wieder passiert es. Klassen oder einzelne Methoden werden obsolet und durch andere abgelöst.
Nun habe ich in einem Post (
https://www.abapforum.com/forum/viewtop ... =1&t=22512 ) hier mitbekommen, dass nur wenige einen effizienten Weg kennen die Entwickler darauf aufmerksam zu machen. Diese werden die Klassen, einfach weil man es nicht mitbekommt, weiter verwenden.
Nun gibt es verschiedene Möglichkeiten:
1. Über die Tabelle SEOCLASSDF den Status der Klasse auf 2 setzten:
Dann kommt neben der Klassenbeschreibung noch der Zusatz "Obsolet".
Allerdings ist dies nicht wirklich auffallend .. ( s. Bild Obsolet SE24 ) - heißt der Entwickler sieht es nicht auf dem ersten Blick.
2. Über die Dokumentation:
Mal ehrlich ... wer schaut denn bei jeder Verwendung in die Dokumentation einer Klasse? Eher nicht ..
3. Code Inspector:
Man kann im Code Inspector eine Prüfung einbauen, um auf Klassenverwendung zu prüfen. Nun dies ist schon eine sehr gut Variante, denn ein QM kann bei Verwendung einer obsoleten Klasse den Transport sperren. Allerdings bin ich mir jetzt nicht 100%ig sicher ob es hierfür schon eine Prüfung gibt, daher müsste man die sich eventuell selber bauen. Auch wenn dies nicht das große Problem ist, hat dies trotzdem eine Schwäche. Die Einstellungen am Code Inspector kann man schnell mal ausversehen löschen... gut darf nicht passieren, aber hey, immer mit dem worst case rechnen. Und wenn man den SCI ( eigentlich eher ATC ) so konfiguriert wie bei uns ( so dass man ins Testsystem kann, aber danach gesperrt wird - für den fall das schnelle änderungen getestet werden müssen und somit auf Performance oder sonstiges nicht geachtet wird .. dämlich, meiner meinung nach ) dann braucht man, wenn man das denn anpassen möchte(!), wieder einen Transportauftrag usw.. heißt es wird wieder Zeit verschwendet, die man anders verwenden könnte.
4. Eine Exception ( mein liebling! ):
Man kann, im Falle der gesamten Klasse, beim (class_-)Constructor eine Exception mit dem Namen ZCX_CLASS_OBSOLETE und bei einer Methode die Exception ZCX_METHOD_OBSOLETE definieren. Aber wirklich nur definieren ( bisherige Verwender sollen ja weiter funktionieren! )! Dann wird der Entwickler beim Entwickeln darauf aufmerksam gemacht ( in Eclipse direkt, in der SE80 / SE38 erst bei der Prüfung ) dass eine Exception nicht abgefangen wird. Dann kann man ja theoretisch in die Dokumentation schauen ( wenn eine Klasse die man schon oft verwendet hat auf einmal eine Exception wirft schaut man wohl in die Doku .. ^^ ) und siehe da, eine Alternative Verwendung wird vorgeschlagen ( ohne diese sollte man sowieso nix obsolet setzen .. ) und es steht da warum die Klasse obsolet ist.
Das waren meine 4 Vorschläge wie man eine Klasse als obsolet markieren kann.
Vielleicht ist eine Mischung aus 3. und 4. Empfehlenswert. Allerdings muss dies wahrscheinlich immer von Fall zu Fall entschieden werden..