Title: Search Helps
1Search Helps
- Or
- The Possibilities of Possible Values
- by
- Allan Davidson
2Overview
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
3Simple list check table
Example Table T001 is a list of
company codes maintained by configuration.
The check table is linked to the field in the
dictionary by maintaining the foreign
key relationship. (Shown here linked to
BKPF-BUKRS)
4Simple list domain
Example Field BKPF-BSTAT is linked to data
element BSTAT_D, which is linked to domain
BSTAT, which has a fixed list of values.
5Simple list programmed
Internal table T_CECAT has already been filled
with a list of legend codes and descriptions. See
program ZFMANAL8, screen parameter Legend
Code form f4_legend_code changing p_lc. data
begin of w_title, code(2) type c value
'LC', descr(20) type c value
'Description(053), end of w_title.
data sel_idx like sy-tabix. call function
'TR_F4_HELP' exporting
iv_title 'Select Legend Code'(054)
is_sel_title1 w_title
iv_number_of_rows 12
iv_no_of_key_columns 1
iv_with_printer_icon 'X' tables
it_sel_table t_cecat
changing cv_selected_index
sel_idx exceptions no_lines
1 no_line_picked
2 others 3. check
sy-subrc 0. read table t_cecat index
sel_idx. p_lc t_cecat-cecat. endform.
" F4_LEGEND_CODE
6Search help elementary
An elementary search help provides the list of
values
7Search help collective
A collective search help is the object that holds
a set of elementary search helps.
8Using search helps Help settings
Menu path Help?Settings
9Using search helps shortcuts
The short cut for the input help permits you to
restrict the hit list and reduce the number of
dialog steps even before selecting the input help
(F4).
The short cut
permits you to select an elementary search help
from a collective search help and to assign the
selection fields in the dialog box for
restricting values.
Your entry must have the
following pattern in the input field before you
press F4 or call the input help.
Pattern of the
short notation
HK.S1.S2.S3 etc.
where
HK short cut of
the elementary search help. It does not have to
be specified if only one elementary search help
is assigned to the field or if the
elementary search help stored as default search
help should be used. The separator '.' following
the short cut can be omitted if S1
consists of more than one character.
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.
10Using search helps 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. Example ABAP editor
search help for program name. You can delete
entries from this list or navigate to other
search helps.
11Using search helps tips tricks
- 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.
12Creating search helps
You create search helps in the data dictionary.
Description of fields Selection method name of
table or view where the data is stored. Text
table Filled in by system, if a text table is
attached to the selection method. Dialog type
Determines whether the user is presented with a
selection screen before the hit list is
displayed. Possible values A Dialog depends
on set of values. If there are more than 100
hits, a selection screen is displayed.
Otherwise, the hit list is displayed
immediately. D - Display values immediately. C
Dialog with value restriction. A selection
screen is always displayed. Hot key allows user
to type a shortcut into the field to bypass
selection of elementary search help. Search help
exit - specify the name of a function module to
be called during the search help process (more
later).
Search help parameters Specify the names of
parameters to be passed in / out, or additional
fields to be used as filters for data. IMP Check
this box to indicate that the field is an input
field, that is, to be passed to the search
help. EXP Check this box to indicate that the
field is an output field, that is, to be passed
from the search help to the screen. LPOS The
position of the as it appears in the hit
list. SPOS The position of the field as it
appears in the selection screen. SDIS Causes the
field to be display only in the selection
screen. Data element Sets the attributes of the
search help parameter. Normally filled in by the
system. MOD Check this box to assign a
different data element than the one supplied by
the system. Default value Specify the default
value in one of 3 ways a literal(in quotes),
a parameter ID(ZRD), or
a system field (SY-UNAME).
13Search Help Hierarchy
14Parameter 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
15Search help exits - 1
- You can change the behavior of search helps with
a search help exit. Copy the SAP supplied
function module F4IF_SHLP_EXIT_EXAMPLE. This
module is well documented (for a change!), but
here are some highlights - TABLE parameters
- SHLP_TAB - contains information about the search
help fields and structures. - RECORD_TAB contains the hit list.
- CHANGING parameters
- SHLP additional information about the
parameters. (Deep structure) - CALLCONTROL instructions for controlling the
search help process.
- Callcontrol-step This field is set by the
system and can be changed by your code. The
function module will be called once for each step
of the process, with some conditional exceptions
noted below. - SELONE before selecting an elementary search
help. - PRESEL1 after selecting an elementary search
help. - PRESEL before sending the dialog box for
restricting values. - SELECT - before selecting the values.
- DISP - before displaying the hit list.
- RETURN - set by your code if one hit was found
during selection. - RETTOP follows RETURN if called from a
collective search help - EXIT set by your code. Terminates the search
help process - CREATE - if the user selects the function Create
new values".
16CALLCONTROL-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.
17CALLCONTROL-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.
18Search help exits - 2
This function is a search help exit for
Z_TRKORR - search help for transport request
number. It's purpose is to limit the 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.
Sample code from function module
Z_UT_F4_TRKORR_SH_EXIT
19Programming 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 - 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.
Parameters p_mitid like zmitid-mitid.
Parameters p_mitid like zmitid-mitid matchcode
object ZMIDA.
You can program your own possible values
directly. Code the event AT SELECTION-SCREEN ON
VALUE REQUEST FOR ltfield namegt, then write the
code to produce the list. The system creates the
possible values button for you.
20Programming 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.