PARAMETERS (ABAP Keyword)
PARAMETERS is a keyword used in SAP ABAP programming.This tutorial covers its introduction & syntax details.
1. … DEFAULT f
2. … TYPE typ
3. … DECIMALS
4. … LIKE g
5. … MEMORY ID pid
6. … MATCHCODE OBJECT mobj
7. … MODIF ID key
8. … NO-DISPLAY
9. … LOWER CASE
10. … OBLIGATORY
11. … AS CHECKBOX
12 … RADIOBUTTON GROUP radi
13. … FOR TABLE dbtab
14. … AS MATCHCODE STRUCTURE
15. … VALUE-REQUEST
16. … HELP-REQUEST
Definition of report parameters.
statement only makes sense in report programs, i.e. in programs defined
as type ’1′ in the attributes. You execute report programs with the
SUBMIT statement. When this takes place, the parameters and selection
options (SELECT-OPTIONS ) specified in the report program shape the
interface which determines what the user sees on the selection screen.
These parameters and selection options are then presented to the user
who can enter values (see the addition NO-DISPLAY or SUBMIT without the
addition VIA SELECTION-SCREEN ).
Creates internal fields like the DATA statement.
making the appropriate entry in the attributes, you can assign a report
to a logical database ldb . In this case, both the logical database ldb
and the report can define parameters (and selection options). You
define the database-specific parameters (i.e. those belonging to the
logical database) in an ABAP/4 INCLUDE program DBldbSEL (in the logical
database maintenance transaction). Since the system then integrates
this INCLUDE program in the logical database access program SAPDBldb
and (partially) in the report, the database-specific parameters (and
selection options) are available to both.
The (“report-specific”) parameters defined in the report are known only in the report (not in the SAPDBldb ).
Some additions of PARAMETERS are allowed only in the DBldbSEL .
The name of a parameter can be up to 8 characters long.
selecting Goto -> Text elements and then choosing Selection texts
followed by Display , you can enter a description for each parameter;
this is then displayed on the selection screen. You define the
report-specific parameter texts with the text elements of the report
and the database-specific parameter texts with the text elements of the
database program SAPDBldb .
… DEFAULT f
Assigns the default value f to the parameter.
must specify the default value f in internal format, e.g. PARAMETERS
DATE LIKE SY-DATUM DEFAULT ’19931224′ , not … DEFAULT ’24.12.1993′ .
… TYPE typ
Assigns the type typ to the internal field.
PARAMETERS: NUMBER(4) TYPE P DEFAULT ’999′.
… DECIMALS dec
Assigns dec decimal places to the internal field. dec must be numeric.
You can only use the addition DECIMALS dec with the addition TYPE P , i.e. it is only allowed with parameters of type P .
PARAMETERS: NUMBER (4) TYPE P DECIMALS 2 DEFAULT ’123.45′.
… LIKE g
the field p with the same attributes as the field g which is already
defined. g can be either a database field or an existing internal field.
cannot use the addition … LIKE g with the addition … TYPE typ . No
explicit length may be specified for the parameter (for example, a
statement such as PARAMETERS p(len) LIKE g is not allowed).
PARAMETERS PROGRAM LIKE SY-REPID.
g is an ABAP/4 Dictionary field of the type CHAR , length 1 and default
values ‘X’ and ‘ ‘ (according to the relevant domain), the parameter is
always displayed as a checkbox on the selection screen (see also AS
Field attributes on the selection screen:
input/output field which appears on the selection screen for the
parameter has the attributes of the field g specified after LIKE .
These include type, length or – with ABAP/4 Dictionary fields -
conversion exit .
If g is an ABAP/4 Dictionary field, the
selection screen is automatically regenerated after most field
attribute changes. An excception to this rule are the attributes “Check
table” and “Fixed values”. If these change, you must generate the
program in the ABAP/4 Development Workbench. This also generates the
The maximum permitted length of a parameter on the
selection screen is 45 (scrollable up to length 132). If you have
defined it longer than this (either explicitly with p(200) or
implicitly with LIKE ), the parameter is truncated on the selection
screen after the 132nd character. However, you can use SUBMIT to pass
longer parameters to a report (particularly if these are not displayed
on the selection screen at all because of the addition NO-DISPLAY ).
… MEMORY ID pid
the selection screen, assigns the memory ID pid to the parameter, i.e.
when you execute the report, the selection screen displays the last
value which the user entered in a field with the memory ID pid .
The memory ID must be a constant, i.e. a value specified without quotation marks, and can be up to 3 characters long.
… MATCHCODE OBJECT mobj
On the selection screen, assigns the matchcode object mobj to the parameter.
name of the matchcode object must be a constant, i.e. a value specified
without quotation marks, and can be up to 4 characters long.
… MODIF ID key
screen fields contain the specified modification group ( SCREEN-GROUP1
) which you can use for screen modifications (e.g. set to “not ready
for input”) under AT SELECTION-SCREEN .
The name of the
modification group must be a constant, i.e. a value specified without
quotation marks, and can be up to 3 characters long.
PARAMETERS CHARLY MODIF ID ABC.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = ‘ABC’.
SCREEN-INPUT = ’0′.
The parameter is not ready for input on the selection screen.
not display the parameter on the selection screen. With “normal”
parameters, the associated data object is created and the parameter can
be passed when SUBMIT is executed.
These parameters are the part
of the report interface not presented to the user on the selection
screen. You can set the parameter values either internally (with the
routine INIT in the SAPDBldb or at INITIALIZATION ) or pass them when
SUBMIT is executed. These parameters are also stored along with the
If, under certain circumstances (e.g. because of the
values of other parameters or due to the selection options ), you want
to present the parameter to the user for input, you can do this in the
PAI modlue of the database program SAPDBldb (for database-specific
parameters) or under AT SELECTION-SCREEN (for report-specific
parameters) by calling a function module (CALL FUNCTION ) or your own
screen (CALL SCREEN < /> ).
Since the parameter is
not generated on the selection screen, the NO-DISPLAY parameters do not
allow you to use any of the additions concerning the display and
handling of parameters on the selection screen.
… LOWER CASE
The parameter is not case-sensitive (i.e. allows both upper and lower case).
Makes an entry on the selection screen compulsory.
… AS CHECKBOX
Displays the parameter as a checkbox on the selection screen.
you are not allowed to specify type or length when defining this
parameter, it always has the type C and the length 1 as default values.
checkbox is displayed on the left and the associated text on its right.
To define any order other than this, use the SELECTION-SCREEN statement.
LIKE refers to an ABAP/4 Dictionary field, you cannot use the addition
AS CHECKBOX . If the ABAP/4 Dictionary field has the type CHAR , a
length of 1 and the fixed values ‘X’ and ‘ ‘ (according to the relevant
domain), the parameter is always displayed as a checkbox on the
… RADIOBUTTON GROUP radi
the parameter on the selection screen as a radio button (selection
field). All parameters assigned in this way to the same group radi
(which can be up to 4 characters long) form a group of radio buttons on
the selection screen, i.e. if the user presses one of these buttons,
the others are set to “not pressed”.
When you define one of these
parameters, you are not allowed to make type or length specifications.
However, you can use LIKE to point to a field of length 1 and type C .
addition has no effect on the ordering of the parameter (as is the case
with the addition AS CHECKBOX ). You can make changes to the order with
the SELECTION-SCREEN .
A RADIOBUTTON group must contain
at least two parameters. One of these can have a DEFAULT addition and
the DEFAULT value must be ‘X’ .
In the database INCLUDE DBldbSEL , a
RADIOBUTTON parameter must include the addition FOR TABLE dbtab just
like any other parameter. All parameters in a group must belong to the
same table dbtab .
A group name radi used in the DBldbSEL cannot be used in the report.
contrast to “normal” parameters, the event AT SELECTION-SCREEN ON p is
not executed (it is not even allowed syntactically). Instead, the event
AT SELECTION-SCREEN ON RADIOBUTTON GROUP radi exists for the entire
group. If an E message or a W message is output, all radio buttons in
the group are ready for input.
… FOR TABLE dbtab
Assigns the database-specific parameter p to the table dbtab .
This addition only makes sense in a logical database access program.
database-specific parameters, you need this addition to ensure that the
selection screen for a report contains only database-specific
parameters which belong to a table from the currently active report.
… AS MATCHCODE STRUCTURE
the database-specific parameter p as a field string according to the
Dictionary structure MCPARAMS with the fields MCID (matchcode ID ) and
STRING (search string ).
Used for data selection through matchcode entry.
On the selection screen, both sub-fields are displayed in a box with the text “Matchcode selection”.
can get a list of possible entries for the matchcode ID and the search
string by pressing F4 . If you choose a matchcode ID and press F4 in
the field “Search string”, you see a dialog box where you can enter a
search criterion for each field of the matchcode ID. The system
interprets what you enter generically for each sub-field.
addition AS MATCHCODE STRUCTURE only makes sense in a logical database
access program and must therefore be used together with the addition
FOR TABLE . It can also be combined with the addition MODIF ID , but
not with any other additions. The matchcode object to which the
matchcode ID and the search string refer is determined when you define
the logical database.
Input on the selection screen:
Matchcode ID: Customers Search string: Daniel
The effect of this is to select all customers whose names begin with “Daniel”.
selection can improve program performance considerably. This is because
specifying a search string often describes the required set of data
records more accurately than the key fields of the table. For example,
it is easier to select by name (“Daniel”) than by customer number
(“000043010″) and far fewer records are read from the database.
a logical database (e.g. ldb ) contains a parameter p defined with AS
MATCHCODE STRUCTURE , the system always creates an internal table
ldb_MC which includes all the key fields of the selected records. The
structure of ldb_MC is determined by the matchcode object and generated
automatically. In the maintenance transaction for logical databases,
the structure is displayed as a comment in the database program.
Matchcode object for table T1 with key field T1-K1 . The table ldb_MC then has the following structure:
DATA: BEGIN OF ldb_MC OCCURS 100,
T1_K1 LIKE T1-K1,
END OF ldb_MC.
the user has entered values in the matchcode parameter fields, the
program reads the selected data from the matchcode table after
START-OF-SELECTION and makes it available to the logical database
program in the internal table ldb_MC . Then, the database program
processes the records in the subroutine PUT_ldb_MATCHCODE and, with the
help of PUT , triggers the appropriate GET events in the report.
Subsequent processing is exactly the same as that for data selection
direct from the database.
SELECT * FROM T1
WHERE K1 = ldb_MC-T1_K1
FOR ALL ENTRIES IN ldb_MC.
matchcode selection, the system flags all fields in the internal table
MC_FIELDS which are filled with values by the matchcode (the field name
is in MC_FIELDS-FIELDNAME and the flag is in MC_FIELDS-SUPPLIED ).
A field F0 is supplied with a value by the matchcode if the following condition is satisfied:
IF MC_FIELDS-FIELDNAME EQ ‘F0′
AND MC_FIELDS-SUPPLIED NE SPACE.
In the maintenance transaction for logical databases, select Help -> Extended help
In the editor: logical databases ( LDB )
addition is only allowed for database-specific parameters in the
INCLUDE DBldbSEL . It permits self-programmed value help (for
report-specific parameters, this is achieved by specifying the event
key word AT SELECTION-SCREEN ON VALUE-REQUEST FOR … ). The addition
has the following effect:
On the selection screen, the parameter has
a button for requesting possible entries. When the user presses this
button or F4 , this starts the FORM routine p_VAL in the database
access program SAPDBldb (if it exists). Then – even if the parameter
with LIKE points to a Dictionary field – this FORM routine is processed
rather than displaying the check table or the fixed values of the
Dictionary field. You can also branch from the routine p_VAL to a
function module which offers a selection list of possible values. At
the end of the FORM routine, the contents of the field p are copied to
the appropriate input/output field.
* INCLUDE DBXYZSEL
PARAMETERS PL_TYPE LIKE SAPLANE-PLANETYPE VALUE-REQUEST.
REPORT SAPDBXYZ DEFINING DATABASE XYZ.
CALL FUNCTION …
VALUE-REQUEST , this addition is only allowed for database-specific
parameters in the INCLUDE DBldbSEL . It permits self-programmed value
help (for report-specific parameters, this is achieved by specifying
the event key word AT SELECTION-SCREEN ON VALUE-REQUEST FOR … ). When
the user presses F1 , this starts the FORM routine p_HLP in the
database access program SAPDBldb (if it exists). Then – even if the
parameter with LIKE points to a Dictionary field – this FORM routine is
processed rather than displaying the data element documentation of the
Dictionary field. You can also branch from the routine p_HLP to a
function module which displays its own documentation.
* INCLUDE DBXYZSEL
PARAMETERS PL_TYPE LIKE SAPLANE-PLANETYPE HELP-REQUEST.
REPORT SAPDBXYZ DEFINING DATABASE XYZ.
CALL FUNCTION …
- SELECT-OPTIONS ( SAP ABAP Keyword)
- SYNTAX-CHECK ( SAP ABAP Keyword)
- AT – Events on selection screens ( AT SELECTION-SCREEN)
- INITIALIZATION (ABAP keyword)
- FIELD-SYMBOLS (ABAP Keyword)