Konstanten als Domänenfestwerte


Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV

Moderatoren: Jan, Steff

Konstanten als Domänenfestwerte

Beitragvon ralf.wenzel » 08.12.2018, 13:42

Gegeben sei eine Domäne, die ein Entwickler anlegen und mit Festwerten belegen will. Diese Festwerte will er aber auch mit sprechenden Konstantennamen ansprechen können, wie das z. B. mit öffentlichen Klassenkonstanten geht. Klar, man kann die zweimal pflegen, aber gerade das gilt es zu vermeiden.

Fällt euch ein Weg ein, wie man das lösen könnte?


Gruß

Ralf
ralf.wenzel
Top Expert
 
Beiträge: 3306
Registriert: 18.09.2004, 13:03
Wohnort: Hamburg
Dank erhalten: 201 mal
Ich bin: Freiberufler/in

Sponsor

Alte ABAP-Entwicklerweisheit: Weißt du weder aus noch ein, baust du einen BADI ein

Re: Konstanten als Domänenfestwerte

Beitragvon ewx » 09.12.2018, 00:13

Hatte das Problem auch gerade diese Woche und habe leider auch keine bessere Lösung gefunden.
Je nachdem wofür man die Festwerte gedacht hat (fremdschlüsselprüfung oder Orientierungshilfe für den Anwender) könnte man eine Suchhilfe bauen, die alle Konstanten einer Klasse mot dem entsprechenden Datenelements ausliest und anzeigt. Funktioniert natürlich nicht als fremdschlüsselprüfung...
ewx
Top Expert
 
Beiträge: 3839
Registriert: 04.08.2003, 19:55
Wohnort: Schleswig-Holstein
Dank erhalten: 322 mal

Re: Konstanten als Domänenfestwerte

Beitragvon Thomas R. » 10.12.2018, 06:59

Ohne es völlig durchdacht zu haben:
An den Festwerten der Domäne kann man vermutlich kaum drehen, d.h. diese müssen gepflegt werden.
Um trotzdem "Konstantennamen" zu haben kann man Klassenattribute verwenden, die im CLASS_CONSTRUCTOR mit den aus der Domäne gelesenen Festwerten gefüllt werden. Dies ist aber in keiner Weise dynamisch was die Anzahl der Festwerte angeht.
Und wenn die Bedeutung (Bezeichnung) aus irgendeinem Grund geändert werden muss tragen die "Konstantennamen" die falschen Namen...

MfG
Thomas R.
Thomas R.
Expert
 
Beiträge: 671
Registriert: 11.12.2002, 08:04
Dank erhalten: 25 mal

Re: Konstanten als Domänenfestwerte

Beitragvon ralf.wenzel » 10.12.2018, 11:36

Leider auch eine sehr wackelige Konstruktion....


Ralf
ralf.wenzel
Top Expert
 
Beiträge: 3306
Registriert: 18.09.2004, 13:03
Wohnort: Hamburg
Dank erhalten: 201 mal
Ich bin: Freiberufler/in

Re: Konstanten als Domänenfestwerte

Beitragvon black_adept » 10.12.2018, 12:10

Was soll denn führend sein? Die Klasse mit den Klassenkonstanten oder die Domäne mit den Festwerten?

Frage zurückgezogen - es kann eigentlich nur die Klasse sein!
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de
black_adept
Top Expert
 
Beiträge: 3139
Registriert: 08.01.2003, 13:33
Wohnort: Lehrte ( bei Hannover )
Dank erhalten: 534 mal
Ich bin: Freiberufler/in

Re: Konstanten als Domänenfestwerte

Beitragvon ralf.wenzel » 10.12.2018, 12:23

Das Problem ist: Egal, wo man es ändert, man wird es nie idiotensicher hinbekommen, dass sich das andere parallel mitändert. Man könnte (!) eine Methode in so eine Festwerteklasse bauen, die eben die Domänenfestwerte pflegt (und einen Transportauftrag dafür anlegt bzw. sich in denselben reinschreibt wie die Klassenänderung), aber es gibt keine Garantie, dass der Entwickler das Starten der Methode nicht vergisst.


Ralf
ralf.wenzel
Top Expert
 
Beiträge: 3306
Registriert: 18.09.2004, 13:03
Wohnort: Hamburg
Dank erhalten: 201 mal
Ich bin: Freiberufler/in

Re: Konstanten als Domänenfestwerte

Beitragvon black_adept » 10.12.2018, 12:33

Idiotensicher machen:
Habt ihr den Codeinspector bei der Transport/Aufgabenfreigabe aktiviert? Dann könnte dort ein Konsistenzcheck durchgeführt werden, der die Freigabe ablehnt, wenn Abweichungen gefunden werden.

P.S. Muss nicht mal der Codeinspector sein. Einfach den BADI bei der Transport/Auftragsfreigabe das machen lassen.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de
black_adept
Top Expert
 
Beiträge: 3139
Registriert: 08.01.2003, 13:33
Wohnort: Lehrte ( bei Hannover )
Dank erhalten: 534 mal
Ich bin: Freiberufler/in

Re: Konstanten als Domänenfestwerte

Beitragvon SaskuAc » 12.12.2018, 07:32

Das:

ralf.wenzel hat geschrieben:Das Problem ist: Egal, wo man es ändert, man wird es nie idiotensicher hinbekommen, dass sich das andere parallel mitändert. Man könnte (!) eine Methode in so eine Festwerteklasse bauen, die eben die Domänenfestwerte pflegt (und einen Transportauftrag dafür anlegt bzw. sich in denselben reinschreibt wie die Klassenänderung), aber es gibt keine Garantie, dass der Entwickler das Starten der Methode nicht vergisst.


Und das:

black_adept hat geschrieben:Idiotensicher machen:
Habt ihr den Codeinspector bei der Transport/Aufgabenfreigabe aktiviert? Dann könnte dort ein Konsistenzcheck durchgeführt werden, der die Freigabe ablehnt, wenn Abweichungen gefunden werden.

P.S. Muss nicht mal der Codeinspector sein. Einfach den BADI bei der Transport/Auftragsfreigabe das machen lassen.


funktioniert aber leider auch nur, wenn ihr Transportaufträge direkt im Entwicklungssystem anlegen könnte ohne ChaRM ( vom SolMan ). Bzw. muss der Entwickler dann dran denken, dass er das ganze über den SolMan noch transportieren muss. Und dafür gibt es dann wieder keine Garantie. Bei uns wäre das so gar nicht möglich, weil wir immer den SolMan dazwischen haben ( leider! ). Und standardmäßig sperrt der SolMan den Aufruf von FuBas die transportieren können von außen. - Heißt, wenn wir unsere Audits nicht versauen wollen, wäre das auch nicht möglich... oder übersehe ich hier etwas?
SaskuAc
Specialist
 
Beiträge: 215
Registriert: 01.06.2015, 10:16
Dank erhalten: 21 mal
Ich bin: Entwickler/in

Re: Konstanten als Domänenfestwerte

Beitragvon ralf.wenzel » 12.12.2018, 08:02

Heißt das, dass man keinen Transportauftrag maschinell anlegen kann, wenn man mit SolMan arbeitet?


Ralf
ralf.wenzel
Top Expert
 
Beiträge: 3306
Registriert: 18.09.2004, 13:03
Wohnort: Hamburg
Dank erhalten: 201 mal
Ich bin: Freiberufler/in

Re: Konstanten als Domänenfestwerte

Beitragvon zzcpak » 12.12.2018, 08:47

Doch, sollte man können, allerdings dann möglicherweise ohne Projektzuordnung, da, wie ich das kenne, der Projekt Status Swicht meist so gesetzt ist, dass keine Transporte mit Projektzuordnung angelegt werdern können.
zzcpak
Expert
 
Beiträge: 610
Registriert: 29.07.2003, 15:10
Dank erhalten: 52 mal

Re: Konstanten als Domänenfestwerte

Beitragvon ralf.wenzel » 12.12.2018, 09:28

Und nachträglich zuordnen geht nicht?


Ralf
ralf.wenzel
Top Expert
 
Beiträge: 3306
Registriert: 18.09.2004, 13:03
Wohnort: Hamburg
Dank erhalten: 201 mal
Ich bin: Freiberufler/in

Re: Konstanten als Domänenfestwerte

Beitragvon zzcpak » 12.12.2018, 10:12

doch, das geht auch, sofern der entsprechende Project Status Switch dafür geöffnet ist. Ist normalerweise nicht erwünscht, wenn mit Charme gearbeitet wird.

(Doppelklick auf Project in SE09 oder STMS, Button "Projektstatusschalter" bzw. "Project Status Switch")
zzcpak
Expert
 
Beiträge: 610
Registriert: 29.07.2003, 15:10
Dank erhalten: 52 mal

Re: Konstanten als Domänenfestwerte

Beitragvon ralf.wenzel » 12.12.2018, 10:17

Dass das in der SE09 geht, ist mir klar ;) Die Frage ist: Wie kriege ich maschinell erzeugtes Coding transportiert, wenn ich mit dem SolMan arbeite (und der Switch eben nicht geöffnet ist)?


Ralf
ralf.wenzel
Top Expert
 
Beiträge: 3306
Registriert: 18.09.2004, 13:03
Wohnort: Hamburg
Dank erhalten: 201 mal
Ich bin: Freiberufler/in

Re: Konstanten als Domänenfestwerte

Beitragvon zzcpak » 12.12.2018, 10:35

ich sehe im Moment nicht, wie man das im Rahmen von Charm ohne manuelle Schritte zwischendurch bewerkstelligen sollte, es sei denn, du willst dann auch den Change im Charme automatisiert anlegen und in Bearbeitung setzen.
zzcpak
Expert
 
Beiträge: 610
Registriert: 29.07.2003, 15:10
Dank erhalten: 52 mal

Re: Konstanten als Domänenfestwerte

Beitragvon SaskuAc » 12.12.2018, 11:01

zzcpak hat geschrieben:ich sehe im Moment nicht, wie man das im Rahmen von Charm ohne manuelle Schritte zwischendurch bewerkstelligen sollte, es sei denn, du willst dann auch den Change im Charme automatisiert anlegen und in Bearbeitung setzen.


Man wird immer irgendwelche manuellen Schritte brauchen.
Außer man will den kompletten genehmigungsvorgang von ChaRM umgehen ( vorausgesetzt man hat da etwas konfiguriert )

Was man könnte - theoretisch - ist eine extra change Art anlegen und den nur maschinell nutzen. Kann man bestimmt irgendwie konfigurieren, aber hier ist dann das problem, dass das von anderen Entwicklern "ausgenutzt" werden könnte um etwas ohne genehmigung einzuschleusen. Man wird leider, wahrscheinlich immer ein paar manuelle Schritte haben ...
SaskuAc
Specialist
 
Beiträge: 215
Registriert: 01.06.2015, 10:16
Dank erhalten: 21 mal
Ich bin: Entwickler/in

Nächste

Zurück zu ABAP® Core

  Aktuelle Beiträge   
Umrechnung Stück in KG
vor einer Minute von JHM 1 Antw.
gelöst Sel.Screen in Subscreen - VA06
vor 16 Stunden von bapimueller 2 Antw.
gelöst Prüfen Konfiguration Kundenauftrag gene Type
vor 22 Stunden von mfromg 0 Antw.
Auswertung Orders erhalt per Mail oder FAX oder beides
vor 16 Stunden von ewx 2 Antw.
SAP und Gamification
Gestern von ewx 1 Antw.

  Ähnliche Beiträge beta
Keine Beiträge gefunden - versuche es mit der erweiterten Suche.

 

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]