08-09-2012 6:29 PM
Hi Experts,
Problem 1: I have created one search help with search help exit. This search help is assigned to a field in table. In SE16 when I do F4 on field, it opens the input help with correct filtered values (as specified in search help exit) but when I select one of them, it returns to screen with last value of the populated list.
Also I created maintenance view for table and in SM30 also when I do F4 and select any value, it returns with last value.
Problem 2: Also in SM30, I can enter any value without going to F4. How to restrict user from entering values which are allowed as per the logic added in search help exit?
Kindly tell me what is more to be done.
Thanks and Regards,
Karam
08-10-2012 9:56 AM
I have created one search help with search help exit. This search help is assigned to a field in table.
SE11 correct
In SE16 when I do F4 on field, it opens the input help with correct filtered values (as specified in search help exit)
Search Help exit steps before DISPLAY are correct
but when I select one of them, it returns to screen with last value of the populated list.
So the problem seems to come from the exit steps after display, value comes from the initial filling of displayed internal table and not the selected record. Check you exit code, or post it here.
Regards,
Raymond
08-10-2012 9:36 AM
08-10-2012 9:56 AM
I have created one search help with search help exit. This search help is assigned to a field in table.
SE11 correct
In SE16 when I do F4 on field, it opens the input help with correct filtered values (as specified in search help exit)
Search Help exit steps before DISPLAY are correct
but when I select one of them, it returns to screen with last value of the populated list.
So the problem seems to come from the exit steps after display, value comes from the initial filling of displayed internal table and not the selected record. Check you exit code, or post it here.
Regards,
Raymond
08-10-2012 10:31 AM
Here is the part of code which is calling F4 values and afterward processing
CALL FUNCTION 'F4UT_RESULTS_MAP' | ||
EXPORTING | ||
source_structure = 'ZCRM_F4' | ||
apply_restrictions = 'X' | ||
TABLES | ||
shlp_tab | = shlp_tab | |
record_tab | = record_tab | |
source_tab | = lt_list | |
CHANGING | ||
shlp | = shlp | |
callcontrol | = callcontrol | |
EXCEPTIONS | ||
OTHERS | = 0. | |
IF sy-subrc EQ 0. | ||
callcontrol-step = 'DISP'. | ||
ELSE. | ||
EXIT. "Don't process STEP DISP additionally in this call. | ||
ENDIF. |
ENDIF. " IF lt_low IS NOT INITIAL.
Thanks and Regards,
08-10-2012 12:36 PM
Before this code did you check the current step, a code like "CHECK callcontrol-step = 'SELECT'." else your code will be executed at/after DISP step again.
Regards,
Raymond
08-10-2012 12:44 PM
Yeah I added it now. And it is working.
*"----------------------------------------------------------------------
* STEP SELONE (Select one of the elementary searchhelps)
*"----------------------------------------------------------------------
IF callcontrol-step = 'SELONE'.
EXIT.
ENDIF.
*"----------------------------------------------------------------------
* STEP PRESEL (Enter selection conditions)
*"----------------------------------------------------------------------
IF callcontrol-step = 'PRESEL'.
EXIT.
ENDIF.
*"----------------------------------------------------------------------
* STEP SELECT (Select values)
*"----------------------------------------------------------------------
IF callcontrol-step = 'SELECT'.
..
CALL FUNCTION 'F4UT_RESULTS_MAP' | |
EXPORTING |
...
ENDIF.
*"----------------------------------------------------------------------
* STEP DISP (Display values)
*"----------------------------------------------------------------------
IF callcontrol-step = 'DISP'.
EXIT.
ENDIF.
Thanks and Regards,