Zugriff auf Merkmale im Coding

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

Zugriff auf Merkmale im Coding

Beitrag von LGiesken (ForumUser / 40 / 14 / 5 ) »
Hallo Experten,

wie der Titel schon sagt habe ich eine Frage zur Verwendung von Merkmalen im Coding.

An verschiedenen Stellen im SAP haben wir aktuell User-Exits oder selbstständige Programme, welche mit verschiedenen (Material-)Merkmalen arbeiten. Die jeweiligen Merkmale sind dabei hart im Coding hinterlegt. Zurzeit läuft bei uns ein Projekt, in dessen Umfang wir die Merkmale umbenennen (z.B. von "WM0000499" auf "VM_ANZ_ACHS). Somit müssen auch sämtliche Coding-Stellen entsprechend angepasst werden.

Soweit zur Vorgeschichte. Diese Situation möchte ich dazu nutzen, die Wartbarkeit unseres Codings zu verbessern. Optimal wäre es, wenn wir unser Coding so umstellen könnten, dass die Merkmale nicht mehr hart hinterlegt sind, sondern an einer zentralen Stelle gepflegt werden können. Ich hatte hier z.B. an eine eigene Klasse gedacht, in der alle Zugriffe auf Merkmale in entsprechenden Get-/Set-Methoden zusammengefasst sind. Somit müsste man dann nur noch eine einzelne Klasse pflegen und nicht mehr das gesamte Coding durchsuchen.

Gibt es hier Leute, die in einer ähnlichen Situation stecken? Wie habt ihr den Zugriff auf Merkmale gelöst? Gibt es hier eventuell eine bessere/elegantere Lösung?

Bereits im Voraus vielen Dank für eure Vorschläge

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


Re: Zugriff auf Merkmale im Coding

Beitrag von jocoder (Specialist / 338 / 3 / 101 ) »
Handelt es sich um Klassifizierungsmerkmale?
Dann ist die Idee mit einer globalen Klasse, die alle Merkmale als Konstanten enthält, durchaus eine gute Lösung.

Folgende Benutzer bedankten sich beim Autor jocoder für den Beitrag:
LGiesken


Re: Zugriff auf Merkmale im Coding

Beitrag von black_adept (Top Expert / 3943 / 105 / 886 ) »
Klasse gefällt mir. Allerdings sehe ich nicht wozu du die SETTER Methode brauchen könntest.
Wenn ich es machen müsste würde ich entweder pro Merkmal eine statische Read-Only-Variable ( nicht Konstante ) anlegen und dort dann die ATINN oder den Merkmalsnamen im CLASS_CONSTRUCTOR füllen, damit man dann über diese Variable im Programm drauf zugreifen kann.
Alternativ eine Customizingtabelle anlegen, die zu diversen Merkmalen jeweils den aktuell gültigen Merkmalsnamen zuordnet und dann via GETTER-Methode über das Merkmal den Namen oder die ATINN aus der Customizingtabelle ableiten. Aber auch hier wären Konstanten für die Merkmale per se ganz nett, da man über einen Verwendungsnachweis rausfindet wo die jeweiligen Merkmale dann verwendet werden, auch wenn das für eine wie von dir benannte Umstellung ohne Belang wäre.

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
LGiesken

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Zugriff auf Merkmale im Coding

Beitrag von DeathAndPain (Top Expert / 1795 / 213 / 396 ) »
Je nach Ansprüchen reicht vielleicht auch eine Nummer kleiner. Soweit ich das verstanden habe, stehen die Werte derzeit als Literale überall im Code. Eine programmglobale Konstante, am Anfang des Programms deklariert, kann da schon einen großen Unterschied machen, ist aber für spätere Leser einfacher nachzuvollziehen, als wenn man eine Klasse definiert und die Werte darin versteckt, so dass man als Leser einen pompösen Methodenaufruf sieht, wo einfach nur ein fester Wert gefragt ist. Hängt natürlich davon ab, in wie vielen Programmen man das braucht und wie wahrscheinlich es ist, dass sich der Wert später nochmal ändert. Werte, die sich schon mal ändern können, gehören in eine Customizingtabelle - deren SELECT-Zugriff man aber nach meiner Überzeugung auch nicht durch eine Wasserkopfklasse verschleiern muss, damit der Leser ja nicht sieht, an welcher Stelle er den Wert bei Bedarf ändern kann.

Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
LGiesken


Re: Zugriff auf Merkmale im Coding

Beitrag von LGiesken (ForumUser / 40 / 14 / 5 ) »
Vielen Dank erstmal für die ganzen Vorschläge.
black_adept hat geschrieben:
17.02.2020 16:25
Allerdings sehe ich nicht wozu du die SETTER Methode brauchen könntest.
Die Idee hinter den Setter-Methoden war, dass man alles, was mit Merkmalen zu tun hat, zentral an einer Stelle hat. Wir müssen die Merkmale nämlich nicht nur auslesen, sondern überschreiben Sie unter Umständen auch noch. Das wäre jedoch wahrscheinlich zu viel des Guten. Die Schreibzugriffe kann man ja auch mit Gettern vernünftig aufbauen.
DeathAndPain hat geschrieben:
17.02.2020 18:38
Eine programmglobale Konstante, am Anfang des Programms deklariert, kann da schon einen großen Unterschied machen, ist aber für spätere Leser einfacher nachzuvollziehen, als wenn man eine Klasse definiert und die Werte darin versteckt, so dass man als Leser einen pompösen Methodenaufruf sieht, wo einfach nur ein fester Wert gefragt ist.
Wir greifen leider an allen möglichen Stellen auf Merkmale zu. Das wären nicht nur Programme, sondern auch Methoden, User-Exits und Enhancement-Points. Durch programmlokale Konstanten könnte man das jeweilige Coding zwar leichter pflegen. Jedoch müsste man dann immer noch die entsprechenden FuBas usw. finden und einzeln anpassen. Da wir keine vernünftige Dokumentation unseres Codings haben, bestünde hier dann natürlich die Gefahr, dass man etwas übersieht.

Ich denke, dass ich das ganze über eine Klasse löse, in der ich entsprechende Konstanten für die jeweiligen Merkmale anlege.

Re: Zugriff auf Merkmale im Coding

Beitrag von jocoder (Specialist / 338 / 3 / 101 ) »
Die Idee hinter den Setter-Methoden war, dass man alles, was mit Merkmalen zu tun hat, zentral an einer Stelle hat. Wir müssen die Merkmale nämlich nicht nur auslesen, sondern überschreiben Sie unter Umständen auch noch.
GETTER und SETTER-Methoden sollten grundsätzlich nicht gemischt werden (Überaschungsarme Programmierung). Wenn ich eine GETTER-Methode aufrufe, erwarte ich nicht, dass sie irgendwelche Modifikationen vornimmt.
Wenn ich es richtig verstanden habe, geben deine GETTER-Methoden die Merkmalswerte zurück und die SETTER-Methoden überschreiben Merkmalswerte? Dann würde ich die Unterteilung so lassen.

Seite 1 von 1

Vergleichbare Themen

1
Antw.
4489
Views
Klassifizierung und Merkmale
von JohnLocklay » 25.08.2017 08:31 • Verfasst in ABAP® Core
0
Antw.
855
Views
Rubrikunterteilung der Merkmale
von liberado » 23.04.2007 14:24 • Verfasst in ABAP® Core
0
Antw.
1080
Views
Merkmale Klassifizierung
von SUSI » 22.08.2005 08:16 • Verfasst in Sales and Distribution
0
Antw.
2518
Views
Mehrwertige Merkmale mit FB bewerten
von oliver_1971 » 27.09.2006 11:11 • Verfasst in ABAP® Core
1
Antw.
3377
Views
VC Oberflächendesign Merkmale lesen
von carlie » 24.11.2017 14:18 • Verfasst in Sonstige Module

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

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.

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 107
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 140