PROCESS ON VALUE-REQUEST.
FIELD: wa_emp-name MODULE fill_on_f4.
MODULE fill_on_f4 INPUT.
DATA: step LIKE sy-stepl,
tab TYPE dfies-tabname,
field TYPE dfies-fieldname.
DATA: t_dynpfields TYPE TABLE OF dynpread,
s_dynpfields TYPE dynpread,
t_return TYPE TABLE OF ddshretval,
s_return TYPE ddshretval.
CALL FUNCTION 'DYNP_GET_STEPL'
IMPORTING
povstepl = step.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
READ TABLE it_emp INTO wa_emp INDEX step.
CASE wa_emp-id.
WHEN ...
tab = ...
field = ...
WHEN ...
ENDCASE.
CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
EXPORTING
tabname = tab
fieldname = field
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'WA_EMP-NAME'
stepl = step
TABLES
return_tab = t_return
EXCEPTIONS
field_not_found = 1
no_help_for_field = 2
inconsistent_help = 3
no_values_found = 4
OTHERS = 5.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
READ TABLE t_return INTO s_return INDEX step.
s_dynpfields-fieldname = 'WA_EMP-NAME'.
s_dynpfields-fieldvalue = s_return-fieldval.
APPEND s_dynpfields TO t_dynpfields.
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
dyname = sy-repid
dynumb = sy-dynnr
TABLES
dynpfields = t_dynpfields
* 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.
* Implement suitable error handling here
ENDIF.
ENDMODULE.