Dynpros und OO - Königsweg gesucht

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Dynpros und OO - Königsweg gesucht

Beitrag von ralf.wenzel (Top Expert / 3924 / 200 / 280 ) »
Moin,

ich frage auf der Suche nach Anregungen mal herum, wie andere das so machen:

Gegeben sei eine Anwendung mit getrennten Layern für Application Controller, Business Logik und Persistenz. Der Anwender soll (derzeit) per SAPGUI mit dem Programm kommunizieren.

Welchen Weg geht ihr da? Ich hab alles schon gesehen, bis hin zu gigantischen Dialog-Controllern, die sich beim Application Controller als observer registrieren und eine Hammer-Stageverwaltung brauchen, um dann 1-2 Dynpros darzustellen.

Wichtig ist mir, dass der Dialog keine Programmfunktionen ausführt, sondern ich jederzeit statt eines Dialoges einen Workflow oder statt der SAPGUI ein Fiori draufsetzen könnte.

Auf Anregungen gespannt


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: Dynpros und OO - Königsweg gesucht

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
hi!

Hab das ja schon ein paarmal (auch dir) gepostet, aber trotzdem der Vollständigkeit halber für diesen Thread.

https://blogs.sap.com/2005/09/08/oo-aba ... ogramming/
Da es für meinen Geschmack etwas zu wenig Funktionalität hatte, habe ich es noch den POV/POH Feldtransport (DYNPRO_READ_VALUES), Dropdowns (VRM_SET_VALUES) und viele andere Goodies nachgerüstet. Um den Overhead in den Funktionsgruppen (eigene Funktionsbausteine je Dynpro usw.) so gering wie möglich zu halten, werden die Inhalte per DIRTY ASSIGN übergeben (ja, ich weis, ein "no go"). Welche Felder auf den Dynpros existieren wird dazu per IMPORT DYNPRO ausgelesen und analysiert. Die Kommunikation mit der Basis-Klasse erfolgt dann über Events.
Man kann also direkt von der Basis-Klasse ausgehen und muss vorher nicht erst aufwändig einen eigenen Controller/Oberserver aufbauen. Für spezielle Verarbeitungen (z.B. automatisches Versorgen von Dropdowns aus Domänenfestwerten) bietetet es sich jedoch an, zumindest eine neue Dynpro-Klasse von der Basis-Klasse abzuleiten.

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Dynpros und OO - Königsweg gesucht

Beitrag von erp-bt (Specialist / 163 / 4 / 21 ) »
Hi,

eine sehr interessante Frage wie ich finde. Ich befürchte allerdings einen wirklichen Königsweg gibt es nicht. Ich beschäftige mich mit dem Thema auch schon ziemlich lange und habe da die unterschiedlichsten Dinge ausprobiert. Bus-Screen Framework, verschiedene Ansätze aus dem SDN. Das MVC-Pattern habe ich auch nicht so wirklich verstanden, bzw. hab' mich immer gefragt was der Controller da eigentlich zu suchen hat.

Ich bin letztendlich bei dem Presentation Model Pattern gelandet. Ich finde das eigentlich ziemlich elegant, da man hier tatsächlich jede Art von Gui drüber stülpen kann. Meine Motivation war jedoch eine andere und ist meiner Meinung nach auch das entscheidenendere, nämlich das ich damit auch einfach Unit Tests für die Anwendung schreiben kann ohne irgendeine Gui zur Verfügung haben zu müsssen. D.h. man könnte die komplette Anwendung entwickeln ohne auch nur einen Screen zur Verfügung zu haben. Ich habe hier mal ein Link zu einem wie ich finde sehr guten Microsoft-Artikel, der die unterschiedlichen Ansätze sehr gut beschreibt.

https://blogs.msdn.microsoft.com/erwinv ... -patterns/

Ich habe das ganze allerdings auch erst ein einziges mal wirklich eingesetzt, fand es aber gut anwendbar. Meine Anwendung hatte ganz vereinfacht gesprochen eine Kalkulationsstruktur, mit mehreren Stufen abgebildet. Die Screens werden wie gehabt in der Funktionsgruppe abgebildet. Das "Rendern" der Kalkulationsstruktur, also wie das dargestellt wird, erfolgt in lokalen Klassen innerhalb der Funktionsgruppe mit dem ALV-Tree, da dies ja unabhängig von der eigentlichen Anwendung ist und ja auch nur für eben genau für die SAPGui gebraucht wird.

Die eigentlich Kalkulationsstruktur, also in welcher Beziehung/Hierarchie stehen die einzelnen Kalkulationen zueinander, welche Werte besitzen sie und welche Operationen können darüber abgebildet werden stehen dann im Presentation Model. Im konkreten Fall eine globale Klasse. Anwendungslogik und Persistenz stehen dann wiederum in einer separaten globalen Model Klasse.

Ich fand' den Ansatz gut, insbesondere der Möglichkeit der Unit Tests. Ob das jetzt der Königsweg ist. Keine Ahnung. Liegt bestimmt auch am persönlichen Geschmack.

Off-Topic:
Vielleicht noch ein Wort von mir zu Fiori. Fiori macht aus meiner Sicht nur wirklich dann Sinn, wenn Du diese ganzen Annotations aus den neuen CDS-Views nutzen kannst und Du Dir die Screens automatisch darauf basierend rendern Lässt. Erfahrungemäß will der Anwender dann doch was anderes. Unabhängig davon halte ich es für eine Toy-Gui für Smartphones und Tablets. Ein professionelles arbeiten ist damit aus meiner Sicht nicht möglich. Das sieht man z.B. an dem völlig desaströsen Auftritts des "Neuen" SDN's. Leider sehen das einige SAP-Verantwortliche völlig anders.

Viele Grüße,
Tapio
...entwickelnder Berater...beratender Entwickler

Seite 1 von 1

Vergleichbare Themen

0
Antw.
1694
Views
1
Antw.
1482
Views
Dynpros
von yorck » 17.01.2007 11:49 • Verfasst in SAP - Allgemeines
4
Antw.
2907
Views
Liste in Dynpros
von Marietta » 07.12.2005 11:12 • Verfasst in Dialogprogrammierung
10
Antw.
5211
Views
Listen in Dynpros
von Jurko » 10.09.2005 13:15 • Verfasst in Dialogprogrammierung
4
Antw.
2895
Views
3 Dynpros in TabStrips
von lernen.2007 » 09.01.2008 17:04 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 11 Stunden von DeathAndPain gelöst 22 / 3072
Daten an Tabelle binden
vor 16 Stunden von Lukas Sanders 2 / 1008
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 577

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

Dialog-Container mit Toolbar/Status
vor 11 Stunden von DeathAndPain gelöst 22 / 3072
Daten an Tabelle binden
vor 16 Stunden von Lukas Sanders 2 / 1008
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 577

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2586
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9169