Professional Documents
Culture Documents
Search Helps: The Possibilities of Possible Values
Search Helps: The Possibilities of Possible Values
Or
by Allan Davidson
Overview
1. Different types of value help A. Simple list 1. From check table / text table - used for value list that changes by application or by configuration 2. From domain fixed value list - doesn't change except by development 3. Programmed using an internal table and function module TR_F4_HELP (or others) B. Search help ( Formerly matchcode ) 1. Elementary search help - list of values 2. Collective search help (set of elementary helps) 2. Using search helps A. Help settings (Menu path Help/Settings) B. Shortcuts C. Personal help lists - these are generated and handled by the system. They show when no matches are found or if you leave the field blank. D. Tips & Tricks 3. Programming search helps A. Creating search helps with SE11 B. Programming in reports C. Programming in screens
iv_no_of_key_columns = 1 iv_with_printer_icon = 'X' tables it_sel_table changing cv_selected_index exceptions no_lines no_line_picked others check sy-subrc = 0. read table t_cecat index sel_idx. p_lc = t_cecat-cecat. endform. " F4_LEGEND_CODE = 1 = 2 = 3. = sel_idx = t_cecat
S1 to S3 are the restrictions that are entered in this order in the corresponding dialog box for restricting values. Each entry is considered to be a pattern with a final '*'. Restrictions for fields that could not accept input are ignored.
Example: =b.lh.frankfurt is entered in the input field. There is a collective search help with several elementary search helps for the field. If you press F4, the hit list is displayed immediately.
The search help with short cut B is selected invisibly for the user. The hit list is selected with the restriction 'LH*' for the first field and 'FRANKFURT*' for the second field of the dialog box for restricting values.
Note When you select an elementary search help with the short cut, no new default search help is stored. The default search help stored for each user and collective search help is only reset when you select an elementary search help using the selection dialog box.
1. Pressing F4 even when there is no down arrow sometimes gets you value help.
2. In technical info for a field, when you see "=" for the search help, it means that the search help for that field is used. To find the name of the search help used, double-click the field name in the popup, which takes you to the dictionary. Then double-click on the table field, which gives you the field details.
Parameter ID
About the Parameter ID - it looks like you just create a name and description (via transaction SE80, Edit Object soft button). You define the data type via the command "SET PARAMETER ID." Later you can use this Parameter ID, 'KRD' to set a date. w_date = sy-datum. SET PARAMETER ID 'ZRD' FIELD w_date. Todays date will appear in the transport request field
CALLCONTROL-STEP 1
1. SELONE Call before selecting an elementary search help. The possible elementary search helps are already in SHLP_TAB. This timepoint can be used in a search help exit of a collective search help to restrict the selection possibilities for the elementary search helps. Entries that are deleted from SHLP_TAB in this step are not offered in the elementary search help selection. If there is only one entry remaining in SHLP_TAB, the dialog box for selecting elementary search helps is skipped. You may not change the next timepoint. The timepoint is not accessed again if another elementary search help is to be selected during the dialog. 2. PRESEL1 After selecting an elementary search help. Table INTERFACE has not yet been copied to table SELOPT at this timepoint in the definition of the search help (type SHLP_DESCR_T). This means that you can still influence the attachment of the search help to the screen here. (Table INTERFACE contains the information about how the search help parameters are related to the screen fields). 3. PRESEL Before sending the dialog box for restricting values. This timepoint is suitable for predefining the value restriction or for completely suppressing or copying the dialog. 4. SELECT Before selecting the values. If you do not want the default selection, you should copy this timepoint with a search help exit. DISP should be set as the next timepoint. 5. DISP Before displaying the hit list. This timepoint is suitable for restricting the values to be displayed, e.g. depending on authorizations.
CALLCONTROL-STEP 2
6. RETURN (usually as return value for the next timepoint) The RETURN timepoint should be returned as the next step if a single hit was selected in a search help exit. It can make sense to change the F4 flow at this timepoint if control of the process sequence of the Transaction should depend on the selected value (typical example: setting SET/GET parameters). However, you should note that the process will then depend on whether a value was entered manually or with an input help. 7. RETTOP You only go to this timepoint if the input help is controlled by a collective search help. It directly follows the timepoint RETURN. The search help exit of the collective search help, however, is called at timepoint RETTOP. 8. EXIT (only for return as next timepoint) The EXIT timepoint should be returned as the next step if the user had the opportunity to terminate the dialog within the search help exit. 9. CREATE The CREATE timepoint is only accessed if the user selects the function "Create new values". This function is only available if field CUSTTAB of the control string CALLCONTROL was given a value not equal to SPACE earlier on. The name of the (customizing) table to be maintained is normally entered there. The next step returned after CREATE should be SELECT so that the newly entered value can be selected and then displayed. 10. APP1, APP2, APP3 If further pushbuttons are introduced in the hit list with function module F4UT_LIST_EXIT, these timepoints are introduced. They are accessed when the user presses the corresponding pushbutton.
*** hit list to transports released within the last 90 days, and to *** sort the hit list in descending order. data delete_date like sy-datum. data w_selopt like line of shlp-selopt. *** Default the selection date to ( sy-datum - 90 ) ~ today. *** Also filter out blank target systems to filter out tasks. if callcontrol-step = 'PRESEL1'. delete_date = sy-datum - 90. w_selopt-shlpfield = 'AS4DATE'. w_selopt-sign = 'I'. w_selopt-option = 'GT'. w_selopt-low = delete_date. append w_selopt to shlp-selopt. w_selopt-shlpfield = 'TARSYSTEM'. w_selopt-sign = 'E'. w_selopt-option = 'EQ'. w_selopt-low = space. append w_selopt to shlp-selopt. endif. *** Sort the hit list. if callcontrol-step = 'DISP'. sort record_tab descending. callcontrol-sortoff = 'X'. endif.
Programming in reports
If there is a search help linked to a dictionary field (either directly to the field or to its data element), then defining a report parameter LIKE the dictionary field will bring in the search help functionality for you. You might want to specify the search help yourself for the following reasons: 1. 2. 3. There is no search help attached to the dictionary field. You want to use a different search help than the one attached to the dictionary field. You want to specify which elementary search help to use, rather than allow the user to see the collective search help.
This example forces the selection screen to adopt the elementary search help ZMIDA, rather than use the collective search help ZMID, which is attached to the dictionary field.
You can program your own possible values directly. Code the event AT SELECTION-SCREEN ON VALUE REQUEST FOR <field name>, then write the code to produce the list. The system creates the possible values button for you.
Programming in screens
Specify the search help name in the screen element list. If you specify a reference field which has a search help attached, leave the search help field blank and the system will use the attached search help.
You can also code your own value-help. Define the screen field with a possible entries key (set in field attributes). Then code a module for the field under PROCESS ON VALUE-REQUEST. You can use the function modules DYNP_VALUES_READ and DYNP_VALUES_UPDATE to effect field transfer to / from the screen, since this is not done during value request.