10-15-2014 3:17 PM
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.
10-15-2014 3:46 PM
Hi
Seems you didn`t modify RECORD_TAB in that LOOP.
Regards,
Archer
10-15-2014 3:50 PM
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.
10-15-2014 3:53 PM
*"----------------------------------------------------------------------
*"*"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.
10-15-2014 4:15 PM
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.
10-15-2014 4:32 PM
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.
10-15-2014 5:26 PM
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