[ABAP] Eigene F4-Suchhilfe anzeigen (Funktionsbaustein)

TYPES: BEGIN OF ty_mara,
         matnr TYPE mara-matnr,
         ernam TYPE mara-ernam,
       END OF ty_mara.

DATA: it_mara TYPE TABLE OF ty_mara.
DATA: it_return TYPE TABLE OF ddshretval.

PARAMETERS: p_matnr TYPE mara-matnr.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_matnr.

  CLEAR: it_mara.

  SELECT matnr, ernam FROM mara
    INTO CORRESPONDING FIELDS OF TABLE @it_mara
    UP TO 20 ROWS
    ORDER BY matnr.

* F4-Hilfe mit Übergabe der anzuzeigenden Werte in interner Tabelle
  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield        = 'MATNR'       " Spalte der internen Tabelle bei value_tab
      dynpprog        = sy-repid
      dynpnr          = sy-dynnr
      dynprofield     = 'P_MATNR'     " Name des Dynpro-Feldes für die automatische Werterückgabe
      value_org       = 'S'           " Werteübergabe: C: zellenweise, S: strukturiert
      window_title    = 'Auswahl'
    TABLES
      value_tab       = it_mara       " Übergabe-Tabelle mit Werten für die Anzeige und Auswahl
      return_tab      = it_return     " Rückgabe-Tabelle mit den ausgewählten (geklickten) Elementen
    EXCEPTIONS
      parameter_error = 1
      no_values_found = 2
      OTHERS          = 3.

  IF sy-subrc = 0.
    IF lines( it_return ) > 0.
      MESSAGE it_return[ 1 ]-fieldval TYPE 'S'.
    ENDIF.
  ENDIF.