Klassen und Methoden als Obsolet markieren

Hinweise, Tips und Tricks, FAQs - keine Anfragen!!
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Klassen und Methoden als Obsolet markieren

Beitrag von SaskuAc (Specialist / 321 / 37 / 44 ) »
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..

Folgende Benutzer bedankten sich beim Autor SaskuAc für den Beitrag (Insgesamt 3):
abuma4byteralf.wenzel


gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Klassen und Methoden als Obsolet markieren

Beitrag von black_adept (Top Expert / 4080 / 125 / 935 ) »
Ich würde 3. und 4. implementieren. 4. hat den großen Vorteil, dass der User schon beim Entwickeln darauf hingewiesen wird, dass die Methode obsolet ist und nicht erst beim Freigeben. Und ich bevorzuge immer proaktive über reaktive Fehlermeldungen.
Allerdings hat 3. die schöne Eigenschaft, dass beim Transportieren eines Programms, welches eine obsolete Methode/Klasse verwendet dann auch noch mal darauf hingewiesen wird, auch wenn man selber gar nicht an dem Methodenaufruf rumgefummelt sondern eine andere Änderung gemacht hat, so dass hier dann im Laufe einer aktuellen Entwicklung nebenbei noch eine Programmbereinigung und somit eine schleichende Ablösung des obsoleten Codes durchgeführt werden kann.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Klassen und Methoden als Obsolet markieren

Beitrag von Thomas R. (Expert / 755 / 78 / 34 ) »
Hallo,
eine gute Idee, doch klappt 4. nicht falls eine gesamte Klasse über den CLASS_CONSTRUCTOR als obsolet gekennzeichnet werden soll.
Der CLASS_CONSTRUCTOR erlaubt keine Exceptions.

Sollte es sich also um eine abstrakte Klasse handeln bleibt m.E. nur jede einzelne Methode auf obsolet zu setzen.

Wer hat einen besseren Vorschlag bzw. kennt einen Trick um den CLASS_CONSTRUCTOR mit einer Exception zu verbinden?

MfG
Thomas R.

Seite 1 von 1

Vergleichbare Themen

7
Antw.
2250
Views
Mathoden und Klassen als veraltet markieren
von sapnup » 30.01.2018 09:33 • Verfasst in ABAP® für Anfänger
23
Antw.
15807
Views
Kommunikation von Klassen und Methoden
von Abapsocke » 14.08.2018 14:25 • Verfasst in ABAP® für Anfänger
20
Antw.
2625
Views
Globale Klassen oder Lokale Klassen
von ZF_SAPler » 29.11.2022 13:47 • Verfasst in ABAP® für Anfänger
8
Antw.
9031
Views
Architektur von Abap-Klassen (Klassen Attribute)
von snooze » 12.04.2005 12:56 • Verfasst in ABAP Objects®
2
Antw.
1687
Views
CL_ABAP_EXPIMP und alle Subklassen obsolet?
von ralf.wenzel » 20.03.2018 12:44 • Verfasst in ABAP Objects®

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1668
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8270