Bismillah..
Below is how we can enhance our selection screen with custom search help, and how to refresh the related input before we get the data of search help.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR so_docty-low.
" refresh screen
PERFORM f_read_dynp_values '<FIELDNAME>' '<X/blank>'. " -> key1 = field reference ; key 2 = (boolean) is date type?
" popup f4
PERFORM f_f4_docty USING 'SO_DOCTY-LOW'.
*&---------------------------------------------------------------------*
*& Form f_f4_docty
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
FORM f_f4_docty USING p_field TYPE help_info-dynprofld.
SELECT doc_type, doc_text
FROM ztable
INTO TABLE @DATA(lt_sel).
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' ##FM_SUBRC_OK
EXPORTING
retfield = 'DOC_TYPE'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = p_field
value_org = 'S'
TABLES
value_tab = lt_sel
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form f_read_dynp_values
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
FORM f_read_dynp_values USING p_field p_isdat.
DATA: lt_dynpro_values TYPE TABLE OF dynpread WITH HEADER LINE.
FIELD-SYMBOLS: <fs> TYPE any .
lt_dynpro_values-fieldname = p_field.
APPEND lt_dynpro_values.
CALL FUNCTION 'DYNP_VALUES_READ' ##FM_SUBRC_OK
EXPORTING
dyname = sy-cprog
dynumb = sy-dynnr
translate_to_upper = 'X'
TABLES
dynpfields = lt_dynpro_values[]
EXCEPTIONS
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
invalid_parameter = 7
undefind_error = 8
double_conversion = 9
stepl_not_found = 10
OTHERS = 11.
READ TABLE lt_dynpro_values WITH KEY fieldname = p_field.
IF sy-subrc EQ 0.
IF p_isdat IS INITIAL.
ASSIGN (p_field) TO <fs>.
<fs> = lt_dynpro_values-fieldvalue.
ELSE.
ASSIGN (p_field) TO <fs>.
<fs> = lt_dynpro_values-fieldvalue+6(4) && lt_dynpro_values-fieldvalue+3(2) && lt_dynpro_values-fieldvalue(2).
ENDIF.
ENDIF.
ENDFORM.