Wie bekomme ich es hin, dass ich bei Klick auf eine Zeile in der Suchhilfe automatisch die richtigen Exportparameter in die passenden Dynprofelder eingetragen bekomme, ohne drei verschiedene Suchhilfen zu programmieren, wo sich jeweils nur der Export-Parameter unterscheidet?Wenn Sie eine Suchhilfe mit mehreren Parametern angeben, wird der erste Parameter der Suchhilfe mit dem Dynpro-Feld verknüpft. Es ist (zurzeit) nicht möglich, weitere Suchhilfeparameter mit anderen Dynpro-Feldern zu verknüpfen. Stattdessen können Sie die Funktion im ABAP Dictionary verwenden, mit der Sie eine Suchhilfe mit einem Feld einer Struktur verknüpfen können.
Ich hoffe das hilft Dir weiter!In SHLP-INTERFACE muss für die Ausgabeparameter, zu denen ein Wert zurückgegeben werden soll, das Feld VALFIELD <> SPACE sein.
Folgende Benutzer bedankten sich beim Autor Lucyalison für den Beitrag:
sapdepp
Code: Alles auswählen.
PROCESS ON VALUE-REQUEST.
FIELD test1 MODULE value_test1.
FIELD test2 MODULE value_test2.
Code: Alles auswählen.
PROCESS ON VALUE-REQUEST.
field S_PERNR module value_pernr.
Code: Alles auswählen.
MODULE VALUE_PERNR INPUT.
CALL FUNCTION 'F4IF_GET_SHLP_DESCR'
EXPORTING
shlpname = 'ZNFPZ_NNCH'
shlptype = 'SH'
IMPORTING
shlp = ls_shlp.
LOOP AT ls_shlp-interface ASSIGNING <if>.
IF <if>-SHLPFIELD = 'PERNR'.
<if>-valfield = 'PERNR'.
ENDIF.
IF <if>-SHLPFIELD = 'NAME1'.
<if>-valfield = 'NAME1'.
ENDIF.
IF <if>-SHLPFIELD = 'NAME2'.
<if>-valfield = 'NAME2'.
ENDIF.
IF <if>-SHLPFIELD = 'TITEL'.
<if>-valfield = 'TITEL'.
ENDIF.
ENDLOOP.
CALL FUNCTION 'F4IF_START_VALUE_REQUEST'
EXPORTING
shlp = ls_shlp
TABLES
return_values = lt_retval.
IF NOT lt_retval IS INITIAL.
* Rückgabetabelle ist gefüllt:
READ TABLE lt_retval INTO ls_retval WITH KEY fieldname = 'PERNR'.
IF sy-subrc = 0.
s_pernr = ls_retval-fieldval.
ENDIF.
READ TABLE lt_retval INTO ls_retval WITH KEY fieldname = 'NAME1'.
IF sy-subrc = 0.
s_name1 = ls_retval-fieldval.
ENDIF.
READ TABLE lt_retval INTO ls_retval WITH KEY fieldname = 'NAME2'.
IF sy-subrc = 0.
s_name2 = ls_retval-fieldval.
ENDIF.
READ TABLE lt_retval INTO ls_retval WITH KEY fieldname = 'TITEL'.
IF sy-subrc = 0.
s_titel = ls_retval-fieldval.
ENDIF.
ENDIF.
ENDMODULE. " VALUE_PERNR INPUT