Aber sicher!Mark33 hat geschrieben:Würdet Ihr mir hier bitte helfen?
Meine Spezialität.Mark33 hat geschrieben:Ich hab mal eine Frage zu ABAP Objects in Kombination mit Funktionsbausteinen.
Mich würde interessieren wo du das gelesen hast, ist mir nämlich nicht bekannt, dass es da eine Einschränkung gäbe.Mark33 hat geschrieben:Ich hab allerdings im Internet gelesen, dass so etwas nur engeschränkt möglich ist?
Jepp, würde ich auch so machen. Und wenn du irgendwann merkst, dass der FuBa irgendwas nicht kann was du eigentlich brauchen würdest, kannst du dann selbst die Methode ADDIERE programmieren, ohne die Aufrufstellen ändern zu müssen.Mark33 hat geschrieben:Ich könnte doch eine Methode ADDIERE der Klasse TASCHENRECHNER erstellen und dort den Funktionsbaustein aufrufen?
Siehe meine dritte Antwort.Mark33 hat geschrieben:Wie ist es denn dann mit den bereits vorhandenen SAP Funktionsbausteinen?
Die Excel-Bausteine kenn ich jetzt zwar nicht so gut, aber ich sag mal: JaMark33 hat geschrieben:Z.B. wen ich Daten einer Excel Liste in eine interne Tabelle laden möchte?
Ja. Ich würde die Klasse nur nicht gerade DATEI nennen, sondern eher eine Hauptklasse die DATEI heißt und nur einfache Methoden zum Laden und Speichern bietet. Die Excel-spezifischen Sache würde ich dann in der Klasse EXCEL_DATEI implementieren die von DATEI abgeleitet ist... Aber jetzt die Vorteile von Vererbung aufzuzählen würde den Rahmen sprengenMark33 hat geschrieben:Dann könnte ich doch eine Klasse "DATEI" erstellen und in dieser Klasse kann ich eine Methode erstellen, die den Funktionsbaustein aufruft?
Ich frag einfach mal doof: Was bringt das? Da kann ich doch gleich den Funktionsbaustein direkt aufrufen....a-dead-trousers hat geschrieben:Methode CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD (...) Das ist SAP Standard und intern wird der FuBa GUI_UPLOAD aufgerufen.
ralf.wenzel hat geschrieben:Ahhhhhja - weiß jemand vielleicht noch einen wirklich GUTEN Grund?
Die SAP wird sich doch was dabei überlegt haben. Oder etwa nicht?
Also ADT hat meiner Meinung nach die beiden wichtigsten Gründe genannt. Das finde ich ziemlich nachvollziehbar.ralf.wenzel hat geschrieben:Also, ich würde ja verstehen, wenn man eine instanziierbare Klasse baut, die z. B. die Funktionsbausteine für das Application Log oder Batch Input in einer Klasse kapselt, das hätte einen Mehrwert. Aber so verstehe ich es halt nicht.....
Nur, wenn durch den objektorientierten Ansatz Vorteile bei rauskommen (eiweh, Grammattttttttik LOL). Ich denke schon, dass man da etwas hätte basteln können, das den ganzen Weg schön zusammenfasst, der z. B. die Werthilfe mit berücksichtigt und Ähnliches. Normalerweise verwendet man ja nicht nur den Up-/Download. Vielleicht ist das jetzt VON MIR zu kurz gedacht, aber wenn man auf diesem Wege dahin kommen würde, dass man go_datei->delete, go_datei->upload, go_datei->list_dir verwenden kann (und zwar für unterschiedliche Dateien in demselben Programm), hätte man wirklich etwas gewonnen im Sinne von technischem Fortschritt, der weit über das hinausgeht, was man mit einer statischen Methode erreichen kann, die einfach nur den Funktionsbaustein kapselt.ewx hat geschrieben:Also ADT hat meiner Meinung nach die beiden wichtigsten Gründe genannt. Das finde ich ziemlich nachvollziehbar.
Zudem hat die SAP mit den CL_GUI_FRONTEND_SERVICES eine Gruppe von Tools zusammen gestellt, zu dem eben auch der bereits vorhandene Upload und Download von Dateien dazu gehört. Warum das Rad zweimal erfinden?
Also, das mit dem Application-Log ist jetzt ein doofes Beispiel, weil man davon selten mehr als eines in einem Programm braucht Aber gerade das wollte ich mal umsetzen - interessanterweise scheint das nicht so trivial zu sein, wie ich mir das vorstelle. Umso mehr reizt es mich, das mal zu versuchen.ewx hat geschrieben:Zudem vermischst du zwei Dinge: Du verstehst nicht, warum der upload-Baustein in einer statischen Methode verwendet wird und nennst als Grund, dass man das Application Log in einer instanziierbaren Klasse kapseln könnte...
Das wiederum ist übrigens nicht ganz ohne. Ich habe es mehrmals gemacht und bin mehrmals über fiese Fallen bei der Vererbung gestolpert. Angefangen damit, dass zu einem ordentlichen Application Log auch eine eigene Struktur gehört. Die kann aber nicht so einfach vererbt um dann in der Unterklasse redefiniert zu werden...
Dass SAP da einfach die Upload- und Download-FBs gekapselt hat, ist an sich nicht schlimm.ewx hat geschrieben:Zudem hat die SAP mit den CL_GUI_FRONTEND_SERVICES eine Gruppe von Tools zusammen gestellt, zu dem eben auch der bereits vorhandene Upload und Download von Dateien dazu gehört.