Aus einer OO-Transaktion Dynpro aufrufen und wieder zurück

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

Benutzeroberflächen in SAP®-Systemen.
9 Beiträge • Seite 1 von 1
9 Beiträge Seite 1 von 1

Aus einer OO-Transaktion Dynpro aufrufen und wieder zurück

Beitrag von FelixFICO (ForumUser / 22 / 9 / 0 ) »
Hallo Forum,

ich entwickle zum ersten Mal etwas objektorientiert mit Dynpros und habe wie von SAP empfohlen versucht Präsentations- und Anwendungslogik zu trennen:
- Über eine OO-Transaktion wird die statische "main" Methode meiner Klasse aufgerufen
- In der Klasse bereite ich einige Dinge auf und stelle dann eine editierbare ALV-Liste dar
- Dazu ist die Oberfläche in einer Funktionsgruppe ausgelagert. Über einen Funktionsbaustein rufe ich dann mit CALL SCREEN ein Dynrpo auf, auf welchem die editierbare ALV-Liste dargestellt wird

Das funktioniert bisher eigentlich auch alles. Aber: Nachdem die ALV-Liste editiert und "SAVE" gedrückt wird möchte ich wieder hinter den Aufrufpunkt des Funktionsbausteins in meiner main Methode zurückspringen. D.h. in der main Methode soll die Verarbeitung weiter gehen. Nur leider komme ich aus der Dynpro-Verarbeitung nicht mehr hinaus.

Habe ich evtl. gerade einen ganz groben Denkfehler in meinem Design? Oder gibt es einen Befehl um wieder zurück vor den Aufruf des Funktionsbausteins zu kommen?

Vielen Dank im Voraus für Eure Hilfe!

Viele Grüße
Felix

P.S. Hier die Beschreibung des Konzepts mit den Funktionsgruppen:
https://help.sap.com/doc/abapdocu_751_i ... _guidl.htm

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


Re: Aus einer OO-Transaktion Dynpro aufrufen und wieder zurü

Beitrag von Legxis (Specialist / 160 / 90 / 28 ) »
Würde das nicht schon reichen? Schwer zu sagen, ohne Code

Code: Alles auswählen.

FORM user_command.
  ...
  WHEN 'SAVE'.
    RETURN.
  ...
ENDFORM.

Folgende Benutzer bedankten sich beim Autor Legxis für den Beitrag:
FelixFICO

( SAP ECC 6.0, NetWeaver 7.0, ohne unicode, ohne support/enhancement packages )

Re: Aus einer OO-Transaktion Dynpro aufrufen und wieder zurü

Beitrag von FelixFICO (ForumUser / 22 / 9 / 0 ) »
Das hört sich gut an und habe ich glaube noch nicht versucht (Knoten im Kopf heute). Teste es morgen gleich und melde mich ob es funktioniert hat.

Danke und einen schönen Abend!

Viele Grüße
Felix

Re: Aus einer OO-Transaktion Dynpro aufrufen und wieder zurü

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
Du brauchst LEAVE[ TO] SCREEN[ 0].
Damit springt die Verarbeitung zurück auf den CALL SCREEN.

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
FelixFICO

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: Aus einer OO-Transaktion Dynpro aufrufen und wieder zurü

Beitrag von FelixFICO (ForumUser / 22 / 9 / 0 ) »
Vielen Dank an alle für den Input!

Ergebnis:
- Die Anweisung "RETURN" funktioniert nicht, ich bleibe trotzdem in der Dynpro-Endlosschleife "gefangen"
- LEAVE TO SCREEN 0 funktioniert! :-)

Ich hatte glaube ich schon LEAVE SCREEN versucht, aber damit ging es auch nicht. Das "LEAVE TO SCREEN 0" war der Baustein der noch gefehlt hat damit mein Design funktioniert. Puh! Ich dachte schon, dass ich alles neu machen muss und nichts vom Konzept verstanden hätte.

DANKE nochmals und einen schönen und erfolgreichen Tag!

Viele Grüße
Felix

Re: Aus einer OO-Transaktion Dynpro aufrufen und wieder zurü

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
FelixFICO hat geschrieben:Ich hatte glaube ich schon LEAVE SCREEN versucht, aber damit ging es auch nicht. Das "LEAVE TO SCREEN 0" war der Baustein der noch gefehlt hat damit mein Design funktioniert.
Zur Info:
LEAVE SCREEN funktioniert nur dann, wenn bei deinem Dynpro in den Grundeinstellungen KEIN Folgedynpro hinterlegt ist.
Meist wird hier defaultmäßig das aktuelle Dynpro eingetragen. Deswegen wird nach dem LEAVE SCREEN automatisch das aktuelle Dynpro erneut aufgerufen.
Mit LEAVE TO SCREEN 0 (Kurzform von SET SCREEN 0 und LEAVE SCREEN) wird die Einstellung des Folgedynpros überschrieben. Man könnte mit dieser Anweisung auch auf ein anderes Dynpro der aktuellen Funktionsgruppe "weiterspringen".

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag (Insgesamt 2):
LegxisFelixFICO

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: Aus einer OO-Transaktion Dynpro aufrufen und wieder zurü

Beitrag von FelixFICO (ForumUser / 22 / 9 / 0 ) »
Hallo a-dead-trousers,

Danke für die Erklärung! So macht das Sinn und ich finde diese "Mischung" aus Oberfläche in einer Funktionsgruppe und Anwendungslogik in Klassen + Aufruf über OO-Transaktion kein schlechtes Konzept.

Bei der Entwicklung ist mir an mehreren Stellen ein Licht aufgegangen, warum OO Sinn macht (z.B. dass ich immer nur eine Objektreferenz "durchschleife" und über diese alle benötigten internen Tabellen, etc. über get/set Methoden bekommen kann).

Viele Grüße,
Felix

Re: Aus einer OO-Transaktion Dynpro aufrufen und wieder zurü

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
FelixFICO hat geschrieben:Danke für die Erklärung! So macht das Sinn und ich finde diese "Mischung" aus Oberfläche in einer Funktionsgruppe und Anwendungslogik in Klassen + Aufruf über OO-Transaktion kein schlechtes Konzept.
Sag das hier im Forum lieber nicht zu laut. :wink:
Da gibt es einige (mich eingeschlossen) die den alten, dafür notwendigen, prozeduralen Mist (PBO, PAI, LOOP AT SCREEN usw.) lieber früher als später in Tonne treten würden.
FelixFICO hat geschrieben:Bei der Entwicklung ist mir an mehreren Stellen ein Licht aufgegangen, warum OO Sinn macht (z.B. dass ich immer nur eine Objektreferenz "durchschleife" und über diese alle benötigten internen Tabellen, etc. über get/set Methoden bekommen kann).
Ja, wenn man das mal verstanden hat, erspart man sich schon einiges an Aufwand, weil die "Logik" näher an die "Daten" gekoppelt wird. Zum Beispiel erspart man sich das "aufwändige" Suchen nach der Verwendung einer (program-)globalen Variable in einer Funktionsgruppe und das anschließenden Interpretieren wie die einzelnen Aufrufstellen miteinander in Verbindung stehen.
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: Aus einer OO-Transaktion Dynpro aufrufen und wieder zurü

Beitrag von FelixFICO (ForumUser / 22 / 9 / 0 ) »
a-dead-trousers hat geschrieben: Sag das hier im Forum lieber nicht zu laut. :wink:
Da gibt es einige (mich eingeschlossen) die den alten, dafür notwendigen, prozeduralen Mist (PBO, PAI, LOOP AT SCREEN usw.) lieber früher als später in Tonne treten würden.
Ich bin ja auch froh, dass ich es in den letzten 15 Jahren mit SAP irgendwie geschafft habe, mich nie mit Dynpros beschäftigen zu müssen (bin aber auch kein "hauptberuflicher" Entwickler). :-) Das war für mich immer eine unlogische black box, so wie andere lustige Konstrukte/Befehlt wie EXTRACT, GET, usw. (wobei ich um logische Datenbanken nicht ganz herum gekommen bin bzw. wir diese immer noch einsetzen).

Nur wenn man schon nicht ganz drum herum kommt, kann man das Dynpro-Zeug mit Funktionsgruppen aus meiner Sicht wenigstens einigermaßen kapseln und von der Anwendungslogik trennen.

Wenn ich mir allerdings Fiori/HTML5 Anwendungen ansehe komme ich zu dem Schluss, dass unsere Power User diese Technologie aufgrund der derzeitigen schlechten Performance nicht annehmen werden. Bin mal gespannt, ob SAP da noch etwas sinnvolles nachlegen kann.

Viele Grüße
Felix

Seite 1 von 1

Vergleichbare Themen

2
Antw.
3114
Views
Vom Dynpro zurück ins Startbild der Transaktion
von Espina » 16.08.2016 16:47 • Verfasst in ABAP® für Anfänger
4
Antw.
12684
Views
externen Webservice aufrufen und XML zurück bekommen
von wayder » 20.04.2009 18:40 • Verfasst in ABAP® für Anfänger
2
Antw.
2823
Views
Absprung von ALV in Transaktion und zurück
von ABAP-Azubi » 29.01.2014 13:10 • Verfasst in ABAP® für Anfänger
3
Antw.
5252
Views
Absprung über Batch Input in eine Transaktion und ZURÜCK
von Jura » 01.09.2005 17:53 • Verfasst in ABAP® für Anfänger
2
Antw.
2933
Views
zurück auf das erste Dynpro
von bohne » 21.02.2007 11:15 • Verfasst in Dialogprogrammierung

Ü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

Aktuelle Forenbeiträge

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

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 6 Stunden von DeathAndPain gelöst 22 / 2801
Daten an Tabelle binden
vor 11 Stunden von Lukas Sanders 2 / 877
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 431

Unbeantwortete Forenbeiträge

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