Crear Matchcode (Search Help) con una tabla interna.

En un momento dado me pidieron hacer un reporte donde el matchode del campo lgort, traía todos los lgort (almacenes) de todos los centros y el requerimiento era solamente los de un determinado centro.

Descubrí que se puede realizar un matchode dinamicamente con una tabla interna nuestra directamente desde el código.

Código:

At selection-screen on value-request for s_lgort-low.
Select LGORT LGOBE
from T001L
into table it_lgort
where werks = '2000'.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'LGORT'
WINDOW_TITLE = 'Depósitos'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = it_lgort
RETURN_TAB = it_ret
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3.

IF SY-SUBRC = 0.
read table it_ret index 1.
move it_ret-fieldval to S_lgort-low.
ENDIF.

Esto muestra el almacén, la descripción del mismo, y al elejir uno nos lleva al select option la opción elejida.