Variante 1 (ein Wert mit SET_DYNP_VALUE)
PARAMETERS: p_test TYPE char32 DEFAULT ''.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_test.
DATA: lv_value TYPE char32 VALUE 'Test123'.
CALL FUNCTION 'SET_DYNP_VALUE'
EXPORTING
i_field = 'P_TEST'
i_repid = sy-repid
i_dynnr = sy-dynnr
i_value = CONV dynpread-fieldvalue( lv_value ).
Variante 2 (mehrere Werte mit DYNP_UPDATE_FIELDS für Screens mit PBO/PAI-Event)
MODULE status_0100 OUTPUT.
IF NOT sy-ucomm = 'QUIT'.
* nur durchlaufen, wenn Kommando 'QUIT' nicht getriggert wird
DATA(it_dyn_update) = VALUE dynpread_tabtype( ( fieldname = 'P_TEST' fieldvalue = 'Testwert' ) ).
CALL FUNCTION 'DYNP_UPDATE_FIELDS'
EXPORTING
dyname = sy-repid
dynumb = sy-dynnr
TABLES
dynpfields = it_dyn_update
EXCEPTIONS
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
undefind_error = 7
OTHERS = 8.
IF sy-subrc = 0.
ENDIF.
ELSE.
* wenn Kommando "QUIT", dann Programmende
LEAVE PROGRAM.
ENDIF.
ENDMODULE.
Variante 3 (mehrere Werte mit DYNP_VALUES_UPDATE, funktioniert bei Screens ohne PBO/PAI-Event (z.B. Selektionsbild, F4-Hilfe))
* https://www.berater-wiki.de/Funktionsbaustein_DYNP_VALUES_UPDATE
PARAMETERS: p_test TYPE char32 DEFAULT ''.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_test.
* Tabelle mit Feldern / GUI-Elementen, deren Werte gesetzt werden sollen
DATA(it_dyn_update) = VALUE dynpread_tabtype( ( fieldname = 'P_TEST' fieldvalue = 'Testwert' ) ).
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
dyname = sy-repid " sy-cprog
dynumb = sy-dynnr
TABLES
dynpfields = it_dyn_update
EXCEPTIONS
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
undefind_error = 7
OTHERS = 8.
IF sy-subrc = 0.
* ggf. Screen-Update über Setzen eines Funktionscodes triggern
* CALL FUNCTION 'SAPGUI_SET_FUNCTIONCODE'.
ENDIF.