Fuba oder Methode

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

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
43 Beiträge • Seite 1 von 3 (current) Nächste
43 Beiträge Seite 1 von 3 (current) Nächste

Fuba oder Methode

Beitrag von 4byte (Specialist / 124 / 37 / 35 ) »
Hallo liebes Forum,

folgende Frage habe ich mir selber schon oft gestellt und nach ein paar Recherchen noch keine zufriedenstellende Antwort gefunden:

- Warum sollte ich einen Fuba erstellen, wenn ich auch einfach eine statische Methode erstellen kann? Ich könnte doch einfach eine Klasse erstellen, die mir die Funktion X durch Methoden bereitstellt.

- Was spricht für / gegen die Erstellung von neuen Fubas

Kurz gesagt: Ich weiß nicht, wann ich lieber einen Fuba oder Methoden erstellen soll :roll:


Gibt es da Best Practise Erfahrungen??

Vielen Dank schonmal im voraus

MFG 4Byte
Es gibt 10 Menschen die binär verstehen :)

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


Re: Fuba oder Methode

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
Er hat "Jehova" gesagt :D

Grundsätzlich ist eine Methode etwas vollkommen anderes als ein Funktionsbaustein, auch wenn die Funktionalität bei einer statischen Methode in einer Klasse nicht unähnlich ist. In aller Regel ist die Struktur einer Methode auch anders als die eines Funktionsbausteins. Eine Methode soll genau EINE Sache atomar durchführen, Funktionsbausteine sind meistens ziemliche Monolithen.

Also, bei jeder statischen Methode frage ich mich, warum die statisch ist, weil einem das viele Möglichkeiten nimmt. Der ganze Vererbungskram z. B. beruht auf einer Instanz, die vorliegt.

Zudem ist (wenn wir uns vom Statischen jetzt mal lösen) ein Objekt immer die Gemeinsamkeit von Coding und Zustand (Attribute), so kann ich eine Klasse / ein Interface an eine Methode übergeben und in dieser Methode eine Methode der übergebenen Klasse / Interface ausführen. Ein Beispiel dafür hab ich hier mal beschrieben. Das geht bei Funktionsbausteinen nicht so einfach, einem Funktionsbaustein das Coding einer Funktionsgruppe zu übergeben, damit dann einer der darin enthaltenen Funktionsbausteine ausgeführt wird.

Und auch, wenn es Leute gibt, die behaupten, Polymorphie führe zu unlesbarem Coding, kann ich der viel abgewinnen -- weil ein Coding auf einer höheren Abstraktionsebene zumeist nur so gut ist, wie seine Dokumentation. Und das ist vielen Entwicklern dann schon zu anstrengend. Natürlich bedeutet Polymorphie abstrakteres Coding, aber die Gegenmaßnahme kann nicht sein, auf die Vorteile der Polymorphie zu verzichten, sondern gescheit zu dokumentieren! Wir verzichten ja auch nicht auf Computer, weil die meisten nicht verstehen, wie sie funktionieren. Und diese Abstraktionsebene hat halt eine Menge Möglichkeiten, die ich sonst mühsam selbst "nachprogrammieren" müsste, um meine Ziele zu erreichen.

Methoden haben Vorteile, die andere hier als Nachteile sehen - zum Beispiel kann man das Ergebnis einer funktionalen Methode direkt weiterverwenden, ohne eine Variable dafür zu brauchen. Ein Funktionsbaustein zerschneidet einem immer das Coding, was ich zum Beispiel ziemlich furchtbar finde. Für andere ist die "Geschwätzigkeit" von ABAP ein Feature. Mich lenkt eben diese "Geschwätzigkeit" vom eigentlichen Kernproblem ab.

Außerdem finde ich gut, dass Typfehler bei Methodenparametern schon von der Syntaxprüfung angemeckert werden und nicht erst durch einen Dump zur Laufzeit. Aber die Diskussion hatten wir hier auch schon....

Ich hab gerade mal überlegt - einen Vorteil einer Funktionsgruppe zu einer Klasse könnte ich jetzt nicht nennen, abgesehen von RFC. Vielleicht fällt einem anderen ein Vorteil ein.


Ralf *schreibt FuBas nur für RFC und bestenfalls als Träger eines Dynpros

Folgende Benutzer bedankten sich beim Autor ralf.wenzel für den Beitrag (Insgesamt 2):
gtoXX4byte

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

Re: Fuba oder Methode

Beitrag von 4byte (Specialist / 124 / 37 / 35 ) »
ralf.wenzel hat geschrieben: Ich hab gerade mal überlegt - einen Vorteil einer Funktionsgruppe zu einer Klasse könnte ich jetzt nicht nennen, abgesehen von RFC. Vielleicht fällt einem anderen ein Vorteil ein.
Das war auch bis jetzt das einzige was mir eingefallen ist
Es gibt 10 Menschen die binär verstehen :)

Re: Fuba oder Methode

Beitrag von SaskuAc (Specialist / 321 / 37 / 43 ) »
Naja, man kann mit FuBas halbwegs ordentlich parallelisieren im gegensatz zum OO... oder zumindest finde ich dazu nichts ordenltiches.
Ansonsten hat Ralf alles wissenswerte gesagt. Insbesondere der Funktionale Aufruf von Methoden ist unschlagbar, weil ich es meiner Meinung nach auch die Lesbarkeit immens erhöht.

Also am Besten immer Methoden ( und umso granularer desto besser - und am besten noch instanzgebunden ) erstellen.

Re: Fuba oder Methode

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
SaskuAc hat geschrieben:Naja, man kann mit FuBas halbwegs ordentlich parallelisieren im gegensatz zum OO... oder zumindest finde ich dazu nichts ordenltiches.
Wo genau ist da dein Problem?


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

Re: Fuba oder Methode

Beitrag von 4byte (Specialist / 124 / 37 / 35 ) »
Aber wenn ich z.b. mehrere Berechnungsfunktionen brauche, dann kann ich doch genauso:

methode calc_x
methode calc_y
methode calc_z

in einer Klasse z.B. Calc_Function haben, die diese bereitstellt anstatt Fubas zu erstellen.

Um halt die genannten Vorteile nutzen zu können .

:roll:
Es gibt 10 Menschen die binär verstehen :)

Re: Fuba oder Methode

Beitrag von Daniel (Specialist / 314 / 68 / 44 ) »
ralf.wenzel hat geschrieben: Außerdem finde ich gut, dass Typfehler bei Methodenparametern schon von der Syntaxprüfung angemeckert werden und nicht erst durch einen Dump zur Laufzeit.
Das ist Geschichte. S/4 prüft in der Syntaxprüfung.

Ein wesentlicher Unterschied ist die Speicherverwaltung der Methoden.
Der lineare Speicher wird aufgeteilt so daß das System Inkonsistenzen
nicht mehr erkennt. Das kann zu übelsten Fehlern führen.

Re: Fuba oder Methode

Beitrag von black_adept (Top Expert / 3946 / 105 / 886 ) »
4byte hat geschrieben:Kurz gesagt: Ich weiß nicht, wann ich lieber einen Fuba oder Methoden erstellen soll :roll:
  • Ralf hat ja schon seinen durchaus wohlschmeckenden Senf beigesteuert - aber das Problem bei Ralf ist, dass er nicht mit normalen Usern arbeitet, die noch eine prähistorische Ausgabe via SAPGUI verwenden und damit Dynpros benötigen.FuBas oder Funktionsgruppen sind also schon mal dann nützlich, wenn du irgendwas mit Dynproausgaben machen willst
  • Weiterhin fallen mir spontan Update-Tasks ein, die FuBas und FORM-Routinen unterstützen und halt nur bei Commit oder Rollback asynchron angestoßen werden.
  • Desweiteren werden gewisse Sachen von SAP nur durch FuBa unterstützt. Beispiel gerade in einem anderen Post hier: Die Sondermuster im Editor
  • Dann hätten wir noch Konvertierungsexits und F4-Hilfe, wo nativ auch nur Fubas angesprochen werden.
  • Auch im klassischen SD, PP und wahrscheinlich auch diversen anderen Modulen kann man lediglich FuBa für die Druckprogramme angeben - selbiges für BTEs im FI
  • Und so als Bonuseffekt, den nur FuBa geben: Man kann sich im Debugger Testdaten aus der aktuellen Schnittstelle erzeugen lassen.

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag (Insgesamt 2):
Daniel4byte

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Fuba oder Methode

Beitrag von 4byte (Specialist / 124 / 37 / 35 ) »
@ Ralf:

So ähnlich wie in deinem Link aus dem 1. Posting habe ich auch schon ein Programm geschrieben. Hier ging es um verschiedene Menüpunkte, die ausgewählt werden können, die aber alle unterschiedliche Funktionen haben. Es wurde auch nur gesagt "Es wurde der folgende Menuüpunkt geklickt" und sagt dann "Hey Knopf mach mal was". Aber was, weiß ja das Objekt ja immer besser... :D
Es gibt 10 Menschen die binär verstehen :)

Re: Fuba oder Methode

Beitrag von 4byte (Specialist / 124 / 37 / 35 ) »
black_adept hat geschrieben: Ralf hat ja schon seinen durchaus wohlschmeckenden Senf beigesteuert - aber das Problem bei Ralf ist, dass er nicht mit normalen Usern arbeitet, die noch eine prähistorische Ausgabe via SAPGUI verwenden und damit Dynpros benötigen.FuBas oder Funktionsgruppen sind also schon mal dann nützlich, wenn du irgendwas mit Dynproausgaben machen willst
Ja so einer bin ich :D
Es gibt 10 Menschen die binär verstehen :)

Re: Fuba oder Methode

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
black_adept hat geschrieben:das Problem bei Ralf ist, dass er nicht mit normalen Usern arbeitet, die noch eine prähistorische Ausgabe via SAPGUI verwenden und damit Dynpros benötigen.FuBas oder Funktionsgruppen sind also schon mal dann nützlich, wenn du irgendwas mit Dynproausgaben machen willst
Ersteres stimmt nicht und Letzteres habe ich selbst als Beispiel angeführt. Hier werden halt Dynpros nicht "von Hand" erzeugt, sondern generisch, weil das Konstrukt schon arg schräg ist und so die meisten Entwickler sich mit diesen "Komisch-Heiten" nicht auseinandersetzen müssen. Und User, die heute mit SAPGUI arbeiten, wollen morgen vllt. etwas anderes haben, da lohnt es sich schon, zu kapseln und möglichst viel möglichst generisch zu machen.



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

Re: Fuba oder Methode

Beitrag von black_adept (Top Expert / 3946 / 105 / 886 ) »
ralf.wenzel hat geschrieben: Und User, die heute mit SAPGUI arbeiten, wollen morgen vllt. etwas anderes haben, da lohnt es sich schon, zu kapseln und möglichst viel möglichst generisch zu machen.
Habe ich diese Woche schon mal erwähnt - Kosten/Nutzen-Relation.
Und nach dem was ich von SAP gehört habe bzgl. Unterstützung von der guten alten SAPGUI ( bzw. es wurde ja mal gesagt, dass dies ein auslaufendes Modell sei ) und von einigen Usern, die die Haptik der GUI einfach besser finden als das was SAP gerade so pusht halte ich die guten alten Dynpros immer noch für ein veritables Ausgabemedium.
ralf.wenzel hat geschrieben:... weil das Konstrukt schon arg schräg ist und so die meisten Entwickler sich mit diesen "Komisch-Heiten" nicht auseinandersetzen müssen.
Kann ich nicht nachvollziehen. So ein Dynpro ist doch ziemlich simpel gestrickt. Eigentlich wäre das ein Paradebeispiel für Objektorientierung, wenn man die Dynproelemente als solche ansteuern könnte statt nur über die LOOP AT SCREEN-Methodik. Nur dass sich SAP gescheut hat das mal auf Vordermann zu bringen und so operabel zu halten wie z.B. in Excel oder Word oder wie die Java-Swingklassen. Aber nachdem die Gui zum Aussterben verurteilt wurde hat man nix mehr reingesteckt und versteckt sich seitdem hinter der Aussage, dass Dinos nicht weiterentwickelt werden, ohne mal auf Anwender zu hören, ob die das überhaupt wollen. ( Irgendwie erinnert mich das an die Aussage, dass Batch-Input sich bald überholt hat, da es ja für alles BAPIs geben wird. Irgendwie hält sich dieser Zombie aber immer noch... )

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

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Fuba oder Methode

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
black_adept hat geschrieben:Und nach dem was ich von SAP gehört habe bzgl. Unterstützung von der guten alten SAPGUI ( bzw. es wurde ja mal gesagt, dass dies ein auslaufendes Modell sei ) und von einigen Usern, die die Haptik der GUI einfach besser finden als das was SAP gerade so pusht halte ich die guten alten Dynpros immer noch für ein veritables Ausgabemedium.
Nicht, wenn du einen Barcodereader hast mit einem Minidisplay, dann bist du froh, wenn du eine ganz normale Browser-UI programmieren kannst.

Auch nicht, wenn du (wie "unser" Produktionsleiter) Produktionsfreigaben vom Handy aus machen willst.

Es gibt 1.000 und noch einen Anwendungsfall, der eben mit der SAPGUI nicht oder nur sehr schwerlich zu bewerkstelligen ist. Man macht solche Entscheidungen nicht über die Köpfe der Anwender hinweg, es sind Anforderungen, die vom Anwender an die Benutzer herangetragen werden.

Man wird sehen, was sich auf der OS-Ebene noch bewegt, wenn MS jetzt dank Cloud Act verpflichtet ist, Kundendaten weiterzugeben an US-Behörden. Ich kenne eine Reihe von Kunden, die das auf gar keinen Fall akzeptieren können, weil sie sich selbst damit strafbar machen. Und dann ist Windows ein Klotz am Bein - die einzige Plattform, für die es eine gescheite SAPGUI gibt.


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

Re: Fuba oder Methode

Beitrag von Daniel (Specialist / 314 / 68 / 44 ) »
Nägel schlägt man mit einem Hammer ein,
Bretter werden mit einer Säge zerteilt...

Es gibt für verschiedene Anwendungen verschiedene
Werkzeuge. Und das ist ja auch sinnvoll.

Im Übrigen sind Browser noch wesentlich anfälliger für
jede Form von Missbrauch als Windows und SAPGUI.

Folgende Benutzer bedankten sich beim Autor Daniel für den Beitrag (Insgesamt 2):
black_adeptST22


Re: Fuba oder Methode

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
Und genau darum wehre ich mich gegen „Wir haben doch einen Hammer (Dynpros), was sollen wir mit einer Säge (UI5)?“ — es sind nicht nur alle Kunden verschieden, sie ändern sich auch stetig. Wem früher die SAPGUI reichte, erkennt irgendwann völlig andere Möglichkeiten, die andere UIs bieten. Bis hin zu völlig neuen Geschäftsideen. Und dann ist eine gekapselte UI Gold wert, da weiß ich zufällig, wovon ich spreche.... Da hat man dann schnell eine zweite geschrieben und eingehängt, womit etliche Funktionen auch auf anderen Geräten nutzbar macht. Wenn ich dürfte, würde ich Beispiele bringen aus dem aktuellen Projekt, wozu ich leider nicht befugt bin.

Und als kleine Lektüre zum Cloud Act vs. EU-DSGVO. Bei meiner Frau laufen gerade die Telefone heiß.... Da gibt es so einige Office365-Kunden, die jetzt Schweißausbrüche kriegen.

Zur Sicherheit eine Frage: Welche Transportverschlüsselung setzt die SAPGUI ein? Und dass Entwickler mehr über Sicherheit lernen müssen, wissen wir beide.


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

Vergleichbare Themen

0
Antw.
1082
Views
FuBa im Report / Methode
von peterpaulandmary » 26.03.2007 16:53 • Verfasst in ABAP Objects®
2
Antw.
2137
Views
1
Antw.
1386
Views
Transformation löschen? (FUBA, METHODE)
von killa12 » 27.07.2010 14:42 • Verfasst in ABAP® Core
0
Antw.
1553
Views
Finanzstrom FuBa oder Methode
von Pepper_Phil » 16.05.2012 16:50 • Verfasst in Financials
5
Antw.
739
Views
FUBA mit FUBA RSPO_OUTPUT_DEVICEDATA eine Liste ausgeben
von Thomas E » 06.05.2021 12:49 • Verfasst in ABAP® Core

Ü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

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.