Amigos,
Usé el siguiente código para resolver este problema.
FORM F4CALLBACK TABLES RECORD_TAB STRUCTURE SEAHLPRES
CHANGING SHLP TYPE SHLP_DESCR
CALLCONTROL LIKE DDSHF4CTRL.
SHLP-INTDESCR-DIALOGTYPE = 'C'. " Tipo de diálogo (Diálogo con restricción de valor)
SHLP-INTDESCR-TITLE = 'CARRITO DE COMPRAS'.
CALLCONTROL-step = 'PRESEL'. " Antes de que aparezca el cuadro de diálogo de restricción
CALLCONTROL-MAXRECORDS = '500'. " Para obtener el máximo número de resultados
CALLCONTROL-NO_MAXDISP = ' '.
ENDFORM.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = lc_fname
value_org = lc_s
dynpprog = sy-repid
dynpnr = sy-dynnr
CALLBACK_PROGRAM = SY-REPID
CALLBACK_FORM = 'F4CALLBACK'
TABLES
value_tab = lt_sc
return_tab = lt_ret
field_tab = lt_dfies
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.