Speichern von Eingabe des Selektionscreens

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

Speichern von Eingabe des Selektionscreens

Beitrag von msfox (Specialist / 374 / 57 / 76 ) »
Ich habe einen Report mit Selektionsscreen. Dieser ist nun so programmiert, dass nach der Auswahl ein Dynpro prozessiert wird. Verlässt man dieses Dynpro, so wird der Report bzw. die Transaktion neu gestartet (ist aus irgendeinem Grund so programmiert). Im Ergebnis sind alle Benutzereingaben weg. Vom Kunden ist nun gewünscht, das diese Eingaben erhalten bleiben.

Die saubere Variante wäre, hierfür Benutzerparameter anzulegen und diese an das Selektionsfeld zu binden. Jedoch sind es sehr viele Parameter und am Ende auch 3 Reports die angepasst werden müssen.

Also hatte ich die Idee im START-OF-SELECTION via FuBa RS_REFRESH_FROM_SELECTOPTIONS diese Werte auszulesen pro Feld per SET PARAMETER wegzuschreiben. Dieses dann im INITIALIZATION wieder via GET zu lesen.
Das klappt aber nicht für Select-Options, welche mehre Zeilen als Eingabewerte haben.

Nun war meine Plan, dies über Shared Memory Objects zu machen. Dort wollte ich die gesamte Tabelle aus Fuba RS_REFRESH_FROM_SELECTOPTIONS ablegen.

FRAGE: Das Shared Memory ist doch benutzerübergreifend - oder?
Würde also auch nicht klappte. Oder kann man die Daten im Shared Memory pro Benutzer ablegen?

Was hätte ich noch für eine Möglichkeit, den Wunsch des Kunde zu erfüllen?

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


Re: Speichern von Eingabe des Selektionscreens

Beitrag von ewx (Top Expert / 4854 / 313 / 644 ) »
msfox hat geschrieben:
21.08.2019 15:48
Die saubere Variante wäre, hierfür Benutzerparameter anzulegen und diese an das Selektionsfeld zu binden.
Die saubere Variante wäre, den Neustart der Transaktion zu entfernen.
Das, was du möchtest, ist das Standardverhalten eines Reports!

Mit Benutzerparametern kommst du nicht weit, da du so keine Select-Options speichern kannst.

Re: Speichern von Eingabe des Selektionscreens

Beitrag von black_adept (Top Expert / 4103 / 128 / 945 ) »
Hallo msfox,

du hast doch schon alles parat um das zu bewerkstellligen. Der FuBa RS_REFRESH_FROM_SELECTOPTIONS gibt dir all deine Informationen in einer Tabelle vom Typ "RSPARAMS" zurück. Und zufälligerweise besitzt der SUBMIT-Befehl einen Zusatz "WITH SELECTION TABLE" ( Doku hier) der genau so einen Tabellentyp erwartet.

Falls der Neustart des Programm über "SUBMIT" erfolgt brauchst du das nur mitzugeben. Wenn es über "CALL TRANSACTION" erfolgt musst du dich eines kleinen Tricks bedienen: Zunächst stellst du die RSPARAMS-Tabelle mittels "EXPORT TO MEMORY ID " ins globale ( nicht shared ) Memory ( als ID verwende ich in so einem Fall immer den Reportnamen ). Und in das Programm selber baust du zum Zeitpunkt "INITIALIZATION" ein IMPORT FROM MEMORY ein und wenn da etwas gefunden wird machst du dort dann den SUBMIT auf sich selbst mit den Parametern.

P.S. Es empfiehlt sich in letzerem Fall nach dem IMPORT FROM MEMORY dieses explizit zu löschen um nicht in eine amüsante Endlosschleife zu geraten.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Speichern von Eingabe des Selektionscreens

Beitrag von msfox (Specialist / 374 / 57 / 76 ) »
black_adept hat geschrieben:
21.08.2019 20:07
Zunächst stellst du die RSPARAMS-Tabelle mittels "EXPORT TO MEMORY ID " ins globale ( nicht shared ) Memory ( als ID verwende ich in so einem Fall immer den Reportnamen ). Und in das Programm selber baust du zum Zeitpunkt "INITIALIZATION" ein IMPORT FROM MEMORY ein und wenn da etwas gefunden wird machst du dort dann den SUBMIT auf sich selbst mit den Parametern.
Danke für die Infos. Ich bin leider nicht Dynpro-Entwickler um die Tricks zu kennen. Eher Webdynpro. Trotzdem hatte ich mit dem EXPORT und IMPORT TO MEMORY schon probiert. Wenn aber die Transaktion neu gestartet, was bei einem LEAVE TO TRANSACTION passiert, so ist die alte Session weg und der IMPORT im INITIALIZATION liefert nix.

Ander Varianten:
Es gibt die Funktion "Syste->Benutzervorgaben->Daten halten". Laut Doku aktiviert man diese Funktion mit SET HOLD DATA ON. Das habe ich im INITIALIZATION eingebaut. Das schein rudimentär zu funktionieren. Nicht immer sind die gehaltenen Daten nach einem LEAVE TO TRANSACTION noch da.

Wenn ich mir ab den Code bei meinem Report so anschaue, scheint die Funktion so gewollt zu sein, dass die Daten verloren gehen.

Re: Speichern von Eingabe des Selektionscreens

Beitrag von black_adept (Top Expert / 4103 / 128 / 945 ) »
Das ist falsch. Export to Memory geht auch über Transaktionsgrenzen hinaus
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Seite 1 von 1

Vergleichbare Themen

3
Antw.
1591
Views
ALV Eingabe
von SAP_ENTWICKLER » 26.05.2014 07:44 • Verfasst in ABAP® Core
4
Antw.
6854
Views
Eingabe im ALV
von RiffRaff » 07.02.2005 08:39 • Verfasst in ABAP® Core
8
Antw.
3226
Views
Eingabe mit '*'
von andreas.l » 17.11.2016 09:14 • Verfasst in ABAP® für Anfänger
1
Antw.
4677
Views
dynpro pop-up mit eingabe?
von ismailer » 16.02.2005 11:16 • Verfasst in ABAP® Core
1
Antw.
1448
Views
ALV GRID als Eingabe
von ryd » 06.01.2006 15:58 • Verfasst in ABAP Objects®

Über diesen Beitrag


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.

Unbeantwortete Forenbeiträge

SD_PRINT_TERMS_OF_PAYMENT
vor einer Woche von Manfred K. 1 / 1831
BUSOBJEKT zu CMIS PHIO ermitteln
vor 4 Wochen von snooga87 1 / 3665