ich habe ein Dynpro 0100. Wenn ich in der Toolbar auf einen Icon clicke, öffnet sich ein Popup(Dynpro 0200) mit dem Eingabefeld. Hier gebe ich mein Value an und clicke auf OK.
Dann soll sich mein Feld aus dem Popup 0200 im Dynpro 0100 aktualiesieren.
Das tut es leider nicht...
Mein Vorgehen:
-> Button Click Haupdynpro (0100)
-> Value Popup Field (0200)
-> OK -> update table
-> call function 'DYNP_VALUES_READ' -> vom Dynpro 0100
-> call function 'DYNP_VALUES_UPDATE' -> vom Dynpro 0100
-> refresh control 'TC_0100' from screen 0100.
call screen 0100.
Ich lande dann schon im 0100 Dynpro, leider ist das Feld Value das alte.
Ich gehe dann aus der Transaktion raus, dann rein, dann wird das geänderte Feld richtig angezeigt. Aber ist auch verständlich, er lädt die Daten neu.
Nicht das bereits angezeigte Dynpro erneut aufrufen (CALL SCREEN 0100) sondern das Dynpro 0200 verlassen (LEAVE SCREEN bzw. LEAVE TO SCREEN 0)
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.
Eigentlich ist das ein recht einfacher Fall. Ich würde methodisch vorgehen und das Problem in zwei Teile zerlegen.
Wenn Du das Dynpro 0200 verlässt (egal ob per LEAVE TO SCREEN '0' oder einfach indem es kein Folgedynpro hat oder Dynpro '0100' das Folgedynpro ist), ist dann der gewünschte Wert tatsächlich in dem dafür von Dir vorgesehenen Feld angekommen? Das solltest Du als erstes (mit Hilfe des Debuggers) prüfen. Wenn nein, dann musst Du erst mal das beheben und brauchst Dir über alles, was Dynpro 0100 betrifft, keine Gedanken zu machen.
Ist der Wert im Zielfeld, dann kannst Du Dynpro 0200 vergessen und musst Dir nur noch Gedanken darüber machen, wie Du ihn in Dynpro 0100 angezeigt bekommst.
Die von Dir genannten Funktionsbausteine brauchst Du normalerweise gar nicht, außer allenfalls für Werthilfen im "PROCESS ON VALUE-REQUEST"-Block. Du hast aber nicht davon gesprochen, dass es um so einen Block geht. (Wenn doch, dann hast Du deutlich zu wenig Informationen geliefert.)
Das Dynpro 0100 wird automatisch refresht, sobald es wieder angezeigt wird. Es muss nur das entsprechende Dynprofeld den richtigen Wert haben.
ich würde vorschlagen, dass Du ein bisschen mehr Code (insbesondere Dynpro-Ablauflogik) und Screenshots bietest (und Dir dabei nicht zu viele Sorgen machst, wenn man erkennen kann, wie Deine Variablen heißen und welche Namen und Nummern Deine Dynpros haben. Das ist noch keine Untreue Deinem Arbeitgeber gegenüber; damit kann nämlich keiner was anfangen).