Application Development Blog Posts
Learn and share on deeper, cross technology development topics such as integration and connectivity, automation, cloud extensibility, developing at scale, and security.
cancel
Showing results for 
Search instead for 
Did you mean: 
Former Member

Hy everybody,

i recently had the requirement to get the values of an existing searchhelp. Pretty simple when u are dialog modus. But unfortunatly the requirement was, that the search help had to be called in backgroud without opening the searchhelp dynpros (it's called in a oData Service Implementation). I didn't want to recreate the existing search logic, because it wasn't a simple search help. Most of the logic has been put in a search help exit and i didn't want to write any kind of wrapper by myself or implement the search logic again. I would like to share following code with u, so next time somebody has this requirement, less research has to be done as i found nothing on scn. For my requirement this solution works fine, as all dynpro fields are supressed. I think you can use it as approach when u have similiar requirements. I've also provided the source as attachment.

If you are using this approach, test it well, as i made the experience, that search helps can be called in various ways & behaviour might be different on your system depending on release & user settings.

Any comments & improvements are kindly welcomed.

Have a nice day.

Best regards,

Michael


*&---------------------------------------------------------------------*
*& Report  ZZTAB_SHLP_BG *&
*&---------------------------------------------------------------------*
*& Albrecht Michael, 28.01.2015 *&
*&---------------------------------------------------------------------*
REPORT zztab_shlp_bg.
DATA:
lv_search_help      TYPE ddobjname,
lv_search_help_f4if TYPE shlpname,
lt_return_tab        TYPE STANDARD TABLE OF ddshretval,
ls_search_help_infos TYPE dd30v.
PARAMETER: p_shlp TYPE string DEFAULT 'Z_YOURHELP'.
START-OF-SELECTION.
lv_search_help = p_shlp.
lv_search_help_f4if = lv_search_help.
* Get Search Help Information
CALL FUNCTION 'DDIF_SHLP_GET'
EXPORTING
name          = lv_search_help
IMPORTING       dd30v_wa      = ls_search_help_infos
EXCEPTIONS
illegal_input = 1
OTHERS        = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
* Call Search Help in Background
CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
EXPORTING
tabname             = ls_search_help_infos-selmethod
fieldname           = ''
searchhelp          = lv_search_help
value               = '*'
display             = ' '
suppress_recordlist = 'X'
selection_screen    = ' '
TABLES
return_tab          = lt_return_tab
EXCEPTIONS
field_not_found     = 1
no_help_for_field   = 2
inconsistent_help   = 3
no_values_found     = 4
OTHERS              = 5.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.


2 Comments