Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Search help exit not giving any results

Former Member
0 Kudos

I have a search help exit that is supposed to give me a distinct email address, customer name and customer account number. Currently, it returns no results. Here's my code:


*"----------------------------------------------------------------------

*"*"Local Interface:

*"  TABLES

*"      SHLP_TAB TYPE  SHLP_DESCT

*"      RECORD_TAB STRUCTURE  SEAHLPRES

*"  CHANGING

*"     VALUE(SHLP) TYPE  SHLP_DESCR

*"     VALUE(CALLCONTROL) LIKE  DDSHF4CTRL STRUCTURE  DDSHF4CTRL

*"----------------------------------------------------------------------

   DATA: it_shlp TYPE shlp_descr-fielddescr,

         wa_shlp LIKE LINE OF it_shlp.

   DATA: ld_smtp TYPE adr6-smtp_addr,

         ld_kunnr TYPE kna1-kunnr,

         ld_name TYPE kna1-name1.

   LOOP AT record_tab.

     READ TABLE shlp-fielddescr INTO wa_shlp

                                      WITH KEY tabname   = 'ZSRCH_EMAIL'

                                               fieldname = 'SMTP_ADDR'.

     SELECT DISTINCT b~smtp_addr a~kunnr a~name1

       INTO (ld_smtp,ld_kunnr, ld_name)

       FROM adr6 as b

       INNER JOIN kna1 as a ON a~adrnr = b~addrnumber

      WHERE b~smtp_addr EQ record_tab-string+wa_shlp-offset(241) " smtp_addr length is 241

      ORDER BY a~kunnr DESCENDING.

     ENDSELECT.

   ENDLOOP.

Thank you.

6 REPLIES 6

Former Member
0 Kudos

Hi

Seems you didn`t modify RECORD_TAB in that LOOP.

Regards,

Archer

0 Kudos

Sorry for the confusion. For some reason that didn't show up but I do Modify RECORD_TAB just above the ENDLOOP statement. I don't know why that line of code didn't show up.

Former Member
0 Kudos

*"----------------------------------------------------------------------

*"*"Local Interface:

*"  TABLES

*"      SHLP_TAB TYPE  SHLP_DESCT

*"      RECORD_TAB STRUCTURE  SEAHLPRES

*"  CHANGING

*"     VALUE(SHLP) TYPE  SHLP_DESCR

*"     VALUE(CALLCONTROL) LIKE  DDSHF4CTRL STRUCTURE  DDSHF4CTRL

*"----------------------------------------------------------------------

   DATA: it_shlp TYPE shlp_descr-fielddescr,

         wa_shlp LIKE LINE OF it_shlp.

   DATA: ld_smtp TYPE adr6-smtp_addr,

         ld_kunnr TYPE kna1-kunnr,

         ld_name TYPE kna1-name1.

   LOOP AT record_tab.

     READ TABLE shlp-fielddescr INTO wa_shlp

                                      WITH KEY tabname   = 'ZSRCH_EMAIL'

                                               fieldname = 'SMTP_ADDR'.

     SELECT  b~smtp_addr a~kunnr a~name1

       UP TO 1 ROWS

       INTO (ld_smtp,ld_kunnr, ld_name)

       FROM adr6 as b

       INNER JOIN kna1 as a ON a~adrnr = b~addrnumber

      WHERE b~smtp_addr EQ record_tab-string+wa_shlp-offset(241) " smtp_addr length is 241

      ORDER BY a~kunnr DESCENDING.

     ENDSELECT.

    MODIFY record_tab.

   ENDLOOP.

ENDFUNCTION.

0 Kudos

You are only select into (ld_smtp, ld_kunnr, ld_name), didn`t move those values to RECORD_TAB. Please set a breakpoint at end of 'ENDLOOP' to check RECORD_TAB have correct value.

rosenberg_eitan
Active Contributor
0 Kudos

Hi,

IMHO you need to use callcontrol-step field .

Sample:

*----------------------------------------------------------------------*

FORM select_2

  TABLES

    shlp_tab   TYPE      shlp_desct

    record_tab STRUCTURE seahlpres

  CHANGING

    shlp        TYPE shlp_descr

    callcontrol TYPE ddshf4ctrl .

  

  DATA: it_source TYPE TABLE OF <your result> .

  

* Your logic to fill it_source

CALL FUNCTION 'F4UT_RESULTS_MAP'

    TABLES

      shlp_tab          = shlp_tab

      record_tab        = record_tab

      source_tab        = it_source

    CHANGING

      shlp              = shlp

      callcontrol       = callcontrol

    EXCEPTIONS

      illegal_structure = 1

      OTHERS            = 2.

  callcontrol-step = 'DISP' .

ENDFORM .                                                   "select_2

*----------------------------------------------------------------------*

Regards.

0 Kudos

Hi Michael,

a search help exit is configured for an existing search help.

Why don't you just ceate your own search help bases on a view?

In this case here: did you check i debugger, does the exit get triggered, do you find any values?

Regards

Clemens