Abap Objektorientierte Get-Methode

Getting started ... Alles für einen gelungenen Start.
39 Beiträge • Vorherige Seite 2 von 3 (current) Nächste
39 Beiträge Vorherige Seite 2 von 3 (current) Nächste

Re: Abap Objektorientierte Get-Methode

Beitrag von ralf.wenzel (Top Expert / 4011 / 209 / 283 ) »
Genau, ich schreibe dir hier einen generischen Persistenzlayer LOL Dass ich keinen vom Kunden hier reinstellen darf und ich mich sicher nicht ne Woche für lau hinsetze und einen neuen schreibe, sollte wohl auf der Hand liegen, hm? Ich mach ja Vieles kostenlos, aber irgendwo hört es sicher auf....

Das ist bei uns eine dreistufige Klassenhierarchie mit zig Ausnahmeklassen. Und um eine (!) DAO-Klasse zu zeigen, werde ich nicht die ganzen Ober- und Serviceklassen schreiben.



Ralf
Bild
Ralf Wenzel Heuristika SAP-Development -- 25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

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


Re: Abap Objektorientierte Get-Methode

Beitrag von msfox (Specialist / 412 / 61 / 79 ) »
OT:
In Java ist das einfacher - wenn man weiß wie. Da kann man sich so etwas generieren lassen.
Ich hab das mal beim Kunden mit Hibernate gemacht.
Hier war es möglich, sich aus einem ER-Model gleich die Persistenz-Klassen für Hibernate genieren zu lassen.

Re: Abap Objektorientierte Get-Methode

Beitrag von DeathAndPain (Top Expert / 2036 / 274 / 427 ) »
black_adept hat geschrieben:Davon abgesehen haben statische Methoden Vorteile gegenüber FORM-Routinen wegen ihres flexibleren Interfaces.
Und FORM-Routinen gegenüber Methoden, weil bei FORM-Routinen das Interface gut sichtbar über der Codedefinition steht und nicht am anderen Ende des Programms. Außerdem werden FORM-Routinen gefunden, egal wo sie im Programmcode stehen und nicht nur, wenn ihre Definition hinter der Aufrufstelle steht (wodurch man sich bei FORM-Routinen auch Unsinn wie DEFINITION DEFERRED-Anweisungen sparen kann).

Und so muss man halt abwägen, welche Vorteile für einen im jeweiligen Anwendungsfall überwiegen. Perfekt sind weder FORM-Routinen noch Methoden, denn nach meiner Überzeugung ließen sich die genannten Vorteile beider Welten problemlos kombinieren, wenn die SAP es denn wollte.
black_adept hat geschrieben:Aber ich gebe Ralf insofern recht, dass es im Allgemeinen wenig andere Gründe gibt, so dass die Performance als dann einziges Kriterium dann doch zur Verwendeung des Feldsymbols führt.
Das für mich mindestens ebenso gewichtige Argument ist, dass man sich damit die Definition einer separaten Workarea-Variable spart, sondern ein Feldsymbol nutzen kann, das (bei mir) immer genauso wie die zugehörige interne Tabelle heißt, mit dieser aufgrund der umschließenden Feldsymbolwinkel aber nicht verwechselt werden kann. Eine Workarea muss, wenn man nicht mit Kopfzeilen arbeiten möchte, WA_tabellenname heißen, was sperrig und hässlich ist. Viele nehmen stattdessen sogar LV_tabellenname, wodurch man dem Feld nicht mal mehr ansieht, welchem Zweck es dient. <tabellenname> hingegen ist schön prägnant (wenngleich etwas blöd zu tippen).
Ralf hat geschrieben:Überrollen mit einem Wort wie „Feldsymbol“???
Durchaus. Wenn jemand erst die Grundlagen lernt, dann muss er erst mal begreifen, wie man mit Feldern, internen Tabelle und Datenbanktabellen hantiert. An der Stelle schon mit Zeigern auf Feldwerte im Hauptspeicher zu kommen, ist verfrüht und Overkill.
msfox hat geschrieben:Ich hab das mal beim Kunden mit Hibernate gemacht.
Ich nutze auch immer Hibernate, wenn ich den Akku meines Notebooks schonen möchte. :D

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

Wenn wir einer Partei die Regierungsbeteiligung verweigern, die von einer Mehrheit gewählt worden ist, weil wir diese Partei für schlecht halten, da wir einer anderen Partei angehören, wie ist dann unsere eigene demokratische Gesinnung zu bewerten?

Re: Abap Objektorientierte Get-Methode

Beitrag von ralf.wenzel (Top Expert / 4011 / 209 / 283 ) »
Ich finde bei Feldsymbolen auch wichtig, dass ein fehlgeschlagener Zugriff zu einem richtig laut hörbaren Dump führt und nicht zu einer leeren Feldleiste. Wenn man damit rechnet, kann man den „Knall“ vermeiden, aber dann hat man das explizit getan.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development -- 25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Abap Objektorientierte Get-Methode

Beitrag von DeathAndPain (Top Expert / 2036 / 274 / 427 ) »
Ja, wobei das im LOOP nicht von Belang ist, da der Code im Loop ja gar nicht erreicht wird, wenn der Loop nichts Passendes findet.
Wenn wir einer Partei die Regierungsbeteiligung verweigern, die von einer Mehrheit gewählt worden ist, weil wir diese Partei für schlecht halten, da wir einer anderen Partei angehören, wie ist dann unsere eigene demokratische Gesinnung zu bewerten?

Re: Abap Objektorientierte Get-Methode

Beitrag von black_adept (Top Expert / 4159 / 136 / 960 ) »
DeathAndPain hat geschrieben:Das für mich mindestens ebenso gewichtige Argument ist, dass man sich damit die Definition einer separaten Workarea-Variable spart, sondern ein Feldsymbol nutzen kann, das (bei mir) immer genauso wie die zugehörige interne Tabelle heißt, mit dieser aufgrund der umschließenden Feldsymbolwinkel aber nicht verwechselt werden kann. Eine Workarea muss, wenn man nicht mit Kopfzeilen arbeiten möchte, WA_tabellenname heißen, was sperrig und hässlich ist. Viele nehmen stattdessen sogar LV_tabellenname, wodurch man dem Feld nicht mal mehr ansieht, welchem Zweck es dient. <tabellenname> hingegen ist schön prägnant (wenngleich etwas blöd zu tippen).
Bei dir scheinen Variablen via HN definiert zu sein ( wa_..., lv_... ) - aber warum darf dann ( außer im Ausnahmefall Tabelle von Tabellen ) ein Feldsymbol genau so heißen wie eine zugehörige interne Tabelle ( gt_... lt_..., o.ä.)? Ich finde nicht, dass <lt_tabellenname> eine sehr gut gewählter Name ist.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Abap Objektorientierte Get-Methode

Beitrag von ralf.wenzel (Top Expert / 4011 / 209 / 283 ) »
Welcher Querulant hat eigentlich mit dieser unsäglichen HN-Diskussion angefangen?


Ralf *sie war’s, sie war’s - er war’s, er war’s.... LOL
Bild
Ralf Wenzel Heuristika SAP-Development -- 25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Abap Objektorientierte Get-Methode

Beitrag von ralf.wenzel (Top Expert / 4011 / 209 / 283 ) »
Tja, kein Input => kein Lösungsbeispiel....


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development -- 25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Abap Objektorientierte Get-Methode

Beitrag von nickname8 (Specialist / 134 / 17 / 19 ) »
ralf.wenzel hat geschrieben:Tja, kein Input => kein Lösungsbeispiel....
Du meinst wohl result = kein_input=>kein_loesungsbeispiel( ). Dann bleiben wir wenigstens bei statischen Methoden und der Kreis zur Threaderöffnung ist geschloßen :D

Re: Abap Objektorientierte Get-Methode

Beitrag von IHe (Specialist / 174 / 39 / 57 ) »
nickname8 hat geschrieben:
ralf.wenzel hat geschrieben:Tja, kein Input => kein Lösungsbeispiel....
Du meinst wohl result = kein_input=>kein_loesungsbeispiel( ). Dann bleiben wir wenigstens bei statischen Methoden und der Kreis zur Threaderöffnung ist geschloßen :D

Code: Alles auswählen.

TRY.
    lo_loesung = lo_abapforum->get_loesung_instance( io_input = lo_input ).
    lo_loesung->apply( ).
  CATCH zcx_no_input INTO lo_error.
    lv_message = lo_error->get_text( ).
    MESSAGE lv_message TYPE 'I'.
ENDTRY.
:evil:
Ingo Hoffmann

ECC|S/4HANA|BTP
dbh SAP Solutions

Re: Abap Objektorientierte Get-Methode

Beitrag von DeathAndPain (Top Expert / 2036 / 274 / 427 ) »
black_adept hat geschrieben:Bei dir scheinen Variablen via HN definiert zu sein ( wa_..., lv_... )
Nein. An der Stelle habe ich es schon immer mit Ralf gehalten (schon bevor ich ihn überhaupt kannte :D ). Aber wenn ich ohne Feldsymbol über eine interne Tabelle loope und keine Kopfzeile verwenden möchte, dann habe ich ja keine Wahl. Dann muss ich mir irgendeinen Krückennamen für die Workarea einfallen lassen, und der sprechendste ist halt der, der den Tabellennamen um einen Hinweis ergänzt, dass es eine Workarea ist.

Genau aus diesem Grund bin ich immer ein glühender Verfechter von Tabellenkopfzeilen gewesen, weil man da diesen hässlichen Fax nicht benötigt, sondern die Workarea genauso heißt wie die zugehörige Tabelle! (Ich weiß, manche sind der Meinung, dass diese Abstraktion Programmierer überfordert, Programmierer, denen es aber selbstverständlich nicht zu abstrakt ist, mit REF TO DATA namenlose Datenobjekte zu erzeugen, dann über Dereferenzierung ein Feldsymbol zu erzeugen, dass auf den Inhalt dieser Datenobjekte im Hauptspeicher zeigt, diesen Inhalte anderer Felder zuzuordnen, die völlig anders typisiert sind, wobei das mit einem Casting auf wundersame Weise so gemappt wird, dass die Felder der Struktur passen, und damit dann zu arbeiten. Ich finde das lächerlich, aber das ist ein anderes Thema.)

Erst über Feldsymbole, die man neuerdings so schön sprechend inline definieren kann, gibt es eine brauchbare Alternative, so dass ich seitdem kaum noch Kopfzeilen verwende. Davon abgesehen nutze ich die HN nicht und freue mich über volle 30 Zeichen maximale Namenslänge für meine Felder (oder auch nicht, weil ich zuweilen gerne noch mehr hätte. Sicher ist aber, dass 8 Zeichen Maximallänge für Report-Parameter in der heutigen Zeit eine Frechheit sind und es der SAP problemlos möglich wäre, dieses Limit voll abwärtskompatibel aufzubohren. Aber das ist auch wieder ein anderes Thema).
Wenn wir einer Partei die Regierungsbeteiligung verweigern, die von einer Mehrheit gewählt worden ist, weil wir diese Partei für schlecht halten, da wir einer anderen Partei angehören, wie ist dann unsere eigene demokratische Gesinnung zu bewerten?

Re: Abap Objektorientierte Get-Methode

Beitrag von black_adept (Top Expert / 4159 / 136 / 960 ) »
DeathAndPain hat geschrieben:(oder auch nicht, weil ich zuweilen gerne noch mehr hätte. Sicher ist aber, dass 8 Zeichen Maximallänge für Report-Parameter in der heutigen Zeit eine Frechheit sind und es der SAP problemlos möglich wäre, dieses Limit voll abwärtskompatibel aufzubohren. Aber das ist auch wieder ein anderes Thema).
Parameter ==> Selektionsbild ==> Dynpro ==> keine Blümchen und kein UI5 ==> die User wollen das nicht ==> wird ab 2025 nicht mehr unterstützt ==> Weiterentwicklung von Zombies überflüssig
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Abap Objektorientierte Get-Methode

Beitrag von DeathAndPain (Top Expert / 2036 / 274 / 427 ) »
Parameter ==> Selektionsbild ==> Dynpro ==> keine Blümchen und kein UI5 ==> die User wollen das nicht
Schon im Jahre 2001 galt die Regel, dass Variablennamen 30 Zeichen lang sein durften und Parameternamen nur 8 Zeichen. Schon damals war das eine sinnlose und unnötige Einschränkung. Es wäre also reichlich Zeit gewesen, es zu korrigieren, auch als das SAPGui noch der letzte Schrei war.
wird ab 2025 nicht mehr unterstützt
Das warten wir mal ab. Totgesagte leben länger. Am heutigen Tag ist das neue SAPGui 7.60 erschienen! Und wenn Du den Verlautbarungen der SAP aus dem ersten Jahrzehnt dieses Jahrtausend Glauben geschenkt hättest, dann hätten wir schon heute längst kein SAPGui mehr.

Ist ja auch immer eine Frage, von wieviel Aufwand wie reden. Wenn ich jetzt sagen würde, macht Dynpros voll objektorientiert usw., dann wäre das richtig ein Projekt, bei dem man darüber nachdenken könnte, ob sich das lohnt. Aber den Kernel zu befähigen, beim Variablennamen von Parametern mehr als acht Zeichen zu schlucken - how hard can it be?!?
Wenn wir einer Partei die Regierungsbeteiligung verweigern, die von einer Mehrheit gewählt worden ist, weil wir diese Partei für schlecht halten, da wir einer anderen Partei angehören, wie ist dann unsere eigene demokratische Gesinnung zu bewerten?

Re: Abap Objektorientierte Get-Methode

Beitrag von black_adept (Top Expert / 4159 / 136 / 960 ) »
DeathAndPain hat geschrieben:Ist ja auch immer eine Frage, von wieviel Aufwand wie reden. Wenn ich jetzt sagen würde, macht Dynpros voll objektorientiert usw., dann wäre das richtig ein Projekt, bei dem man darüber nachdenken könnte, ob sich das lohnt. Aber den Kernel zu befähigen, beim Variablennamen von Parametern mehr als acht Zeichen zu schlucken - how hard can it be?!?
Der Aufwand ist größer als du wahrscheinlich im 1. Moment wahrnimmst. Denn das Problem ist das Selektionsbildgenerierungsprogramm welches diverse andere Namen generiert ( z.B. die Namen der Screenelemente für die Textbezeichner wenn du dir den generierten Dynpro 1000 anschaust ) und die Millionen alter Programme, die darauf vertrauen, dass das alles so ist wie aktuell definiert.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Abap Objektorientierte Get-Methode

Beitrag von DeathAndPain (Top Expert / 2036 / 274 / 427 ) »
Genau die haben kein Problem, weil das ja voll abwärtskompatibel ist. Wenn Parameternamen länger als 8 Zeichen sein dürfen, dann heißt das doch nicht, dass solche, die nicht länger sind, nicht problemlos weiter funktionieren. Ich führe doch keine zusätzliche Einschränkung ein, sondern nehme nur eine weg.

Das ist wie dass Programme ohne Inlinedeklarationen weiter funktionieren, obwohl man jetzt auch welche verwenden darf.
Wenn wir einer Partei die Regierungsbeteiligung verweigern, die von einer Mehrheit gewählt worden ist, weil wir diese Partei für schlecht halten, da wir einer anderen Partei angehören, wie ist dann unsere eigene demokratische Gesinnung zu bewerten?

Vergleichbare Themen

1
Antw.
4907
Views
Zugriff aus ABAP auf eine Java-Methode
von crux » 04.06.2007 15:11 • Verfasst in Java & SAP®
1
Antw.
6910
Views
Methode dynamisch zu Klasse hinzufügen in ABAP Cloud
von Saftladen » 17.02.2026 13:14 • Verfasst in ABAP Objects®
1
Antw.
2987
Views
Exception in BOR Methode
von winter06 » 04.03.2007 19:48 • Verfasst in ABAP Objects®
1
Antw.
2798
Views
Entscheidungsmaker Methode
von erzoo24 » 04.05.2016 16:07 • Verfasst in ABAP® für Anfänger
5
Antw.
6532
Views
BOR methode ausführen
von stroker64 » 27.08.2008 10:44 • Verfasst in ABAP Objects®

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.