[ABAP] Suchhilfe zu DDIC-Feld bestimmen

DATA: lv_shlp_descr TYPE shlp_descr.

* Die einem DDIC-Feld zugeordnete Suchhilfe bestimmen
CALL FUNCTION 'F4IF_DETERMINE_SEARCHHELP'
  EXPORTING
    tabname           = 'MARA'
    fieldname         = 'MATNR'
    selection_screen  = abap_true " auch die Wertetabelle der Domäne für die F4-Hilfe heranziehen
  IMPORTING
    shlp              = lv_shlp_descr
  EXCEPTIONS
    field_not_found   = 1
    no_help_for_field = 2
    inconsistent_help = 3
    OTHERS            = 4.

IF sy-subrc = 0.
* Hier Objekte für die Ausgabe hinzufügen
  cl_demo_output=>write_data( lv_shlp_descr ).

* HTML-Code vom Demo-Output holen
  DATA(lv_html) = cl_demo_output=>get( ).

* Daten im Inline-Browser im SAP-Fenster anzeigen
  cl_abap_browser=>show_html( EXPORTING title       = 'Suchhilfe'
                                        html_string = lv_html
                                        container   = cl_gui_container=>default_screen ).

* cl_gui_container=>default_screen erzwingen
  WRITE: space.
ENDIF.

[ABAP] Expliziter Aufruf einer vorhandenen Suchhilfe

* generischer Parameter für den manuell eine Suchhilfe 'AUFK' angezeigt werden soll
PARAMETERS: p_test TYPE char32.
  
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_test.
  TRY.
      DATA: lv_shlp TYPE shlp_descr.

* shlptype:
* SH	Suchhilfe
* CH	Prüftabelle
* CT	Prüftabelle mit Texttabelle
* FV	Domänenfestwerte
* DV	Festwerte aus Ablauflogik
* CA	Kalender-Hilfe
* CL	Uhrzeit-Hilfe
* SR	Suchhilfe am Datenelement (temporär)
* MC	Matchcode
* MI	Matchcode-Id
* IN	interne Tabelle
      CALL FUNCTION 'F4IF_GET_SHLP_DESCR'
        EXPORTING
          shlpname = 'AUFK'
          shlptype = 'CH'
        IMPORTING
          shlp     = lv_shlp.

* Suchhilfefeld festlegen
* wenn mehrere Felder benötigt werden -> für jedes Feld extra
      ASSIGN lv_shlp-interface[ shlpfield = 'AUFNR' ] TO FIELD-SYMBOL(<fs_shf>).
      <fs_shf>-valfield = abap_true.
      <fs_shf>-value = '*'. " Vorgabewert / Einschränkung für die Suchhilfe

      DATA: f_rc TYPE sy-subrc.
      DATA: it_values TYPE STANDARD TABLE OF ddshretval.

      CALL FUNCTION 'F4IF_START_VALUE_REQUEST'
        EXPORTING
          shlp          = lv_shlp
          disponly      = abap_false
          maxrecords    = 0           " alle Ergebnisse auflisten
          multisel      = abap_false  " Einfachauswahl
        IMPORTING
          rc            = f_rc
        TABLES
          return_values = it_values.  " Rückgabewerte

      IF f_rc = 0.
* Rückgabewert an Parameter übergeben
        p_test = it_values[ fieldname = 'AUFNR' ]-fieldval.
      ENDIF.
    CATCH cx_root INTO DATA(e_txt).
      MESSAGE e_txt->get_text( ) TYPE 'S' DISPLAY LIKE 'E'.
  ENDTRY.

Weiterführende Infos: Link und Link