Die PARAMETERS
-Anweisung ist ein ABAP-Schlüsselwort, das Du ausschließlich im Deklarationsteil von ausführbaren
Programmen (REPORT
), Funktionsgruppen oder Modulpools verwendest. Ihr Zweck ist es, ein einzelnes Eingabefeld auf
dem Standard-Selektionsbild (Dynpro 1000) des Programms zu definieren.
Über dieses Feld kann der Benutzer genau einen Wert eingeben, der dann im Programm in einer globalen Variablen mit demselben Namen wie der Parameter zur Verfügung steht.
Wichtige Abgrenzung zu SELECT-OPTIONS
:
PARAMETERS
: Für die Eingabe eines einzelnen Wertes (z. B. eine Kundennummer, ein Datum, ein Werk). Erzeugt eine Variable.SELECT-OPTIONS
: Für komplexe Abgrenzungen (z. B. ein Bereich von Kundennummern, mehrere einzelne Materialien, Ausschluss bestimmter Werte). Erzeugt intern eine Tabelle (Ranges-Tabelle).
Syntax
PARAMETERS <param_name> { {TYPE <datentyp> [LENGTH <länge>] [DECIMALS <nachkommastellen>]} | {LIKE <datenobjekt>} } [DEFAULT <standardwert>] [OBLIGATORY] [LOWER CASE] [AS CHECKBOX [USER-COMMAND <funktcode>]] [RADIOBUTTON GROUP <gruppenname> [USER-COMMAND <funktcode>]] [MEMORY ID <pid>] [NO-DISPLAY] [VISIBLE LENGTH <sichtbare_länge>] [MODIF ID <modifikationsgruppe>] [VALUE-REQUEST] " Für benutzerdefinierte F4-Hilfe [HELP-REQUEST]. " Für benutzerdefinierte F1-Hilfe " Ältere / Seltenere Zusätze wie MATCHCODE OBJECT, AS SEARCHPATTERN etc.
Bestandteile
<param_name>
: Der Name des Parameters. Unter diesem Namen wird eine globale Variable im Programm angelegt, und ( wenn nichtNO-DISPLAY
) ein Eingabefeld auf dem Selektionsbild erzeugt.TYPE <datentyp> ...
oderLIKE <datenobjekt>
: (Obligatorisch) Definiert den Datentyp des Parameters und der zugehörigen Variablen.TYPE
: Bevorzugt! Kann ein eingebauter ABAP-Typ (I
,D
,STRING
,C
,P
…), ein Datenelement aus dem ABAP Dictionary (kunnr
,matnr
,werks_d
…) oder ein lokaler Typ sein. Bei Bezug auf Dictionary-Typen werden oft automatisch Eingabeprüfungen, F1- und F4-Hilfen bereitgestellt.LIKE
: Ältere Syntax, bezieht sich auf ein bereits deklariertes Datenobjekt. Sollte durchTYPE
ersetzt werden.
DEFAULT <standardwert>
: (Optional) Gibt einen Wert an, mit dem das Eingabefeld auf dem Selektionsbild vorbelegt wird.OBLIGATORY
: (Optional) Macht das Feld zu einem Pflichtfeld. Der Benutzer muss einen Wert eingeben, bevor er das Programm ausführen kann.LOWER CASE
: (Optional) Erlaubt die Eingabe von Kleinbuchstaben und verhindert die automatische Umwandlung in Großbuchstaben (Standardverhalten bei vielen Datentypen).AS CHECKBOX
: (Optional) Stellt den Parameter als Ankreuzfeld (Checkbox) dar. Die Variable<param_name>
sollte dannTYPE c LENGTH 1
sein ('X'
= angekreuzt,' '
= nicht angekreuzt).RADIOBUTTON GROUP <gruppenname>
: (Optional) Stellt den Parameter als Auswahlknopf (Radiobutton) dar. Alle Parameter mit derselben<gruppenname>
bilden eine Gruppe, von der nur eine Option ausgewählt werden kann. Erfordert mindestens zwei Radiobuttons pro Gruppe.<param_name>
oftTYPE c LENGTH 1
.MEMORY ID <pid>
: (Optional) Verknüpft den Parameter mit einer SAP Memory ID. Das Feld wird mit dem Wert aus dem SAP Memory vorbelegt (GET PARAMETER
), falls vorhanden.NO-DISPLAY
: (Optional) Die Variable<param_name>
wird zwar deklariert, aber es wird kein Eingabefeld auf dem Selektionsbild angezeigt. Nützlich für “versteckte” Parameter, die z. B. über Varianten oderSUBMIT ... WITH ...
übergeben werden.VISIBLE LENGTH <sichtbare_länge>
: (Optional) Steuert die sichtbare Breite des Eingabefeldes auf dem Bildschirm ( kann kürzer sein als die tatsächliche Feldlänge).MODIF ID <modifikationsgruppe>
: (Optional) Weist dem Parameter eine Modifikationsgruppe zu. Dies erlaubt die dynamische Manipulation des Feldes (z. B. Ausblenden, Deaktivieren) im EreignisAT SELECTION-SCREEN OUTPUT
.
Funktionsweise
- Das Programm liest beim Start die Deklarationen.
- Für jeden
PARAMETERS
-Befehl wird eine globale Variable angelegt. - Das System generiert automatisch das Standard-Selektionsbild (Dynpro 1000) mit den entsprechenden Eingabefeldern (
außer bei
NO-DISPLAY
). - Der Benutzer gibt Werte in die Felder ein und führt das Programm aus (F8).
- Nach der Verarbeitung des Selektionsbildes stehen die eingegebenen (oder Standard-) Werte in den globalen Variablen (
<param_name>
) zur Verfügung und können im weiteren Programmverlauf (z. B. abSTART-OF-SELECTION
) verwendet werden.
Beispiele
REPORT z_parameter_demo.
" --- Deklarationsteil ---TABLES: spfli. " Für Dictionary-Bezug
" Einfacher Parameter mit Typisierung über DictionaryPARAMETERS p_carrid TYPE spfli-carrid.
" Pflichtparameter Datum mit Standardwert (heute)PARAMETERS p_date TYPE d OBLIGATORY DEFAULT sy-datum.
" Checkbox für TestlaufPARAMETERS p_test AS CHECKBOX.
" Radiobuttons für AusgabemodusPARAMETERS: p_list RADIOBUTTON GROUP mode DEFAULT 'X' USER-COMMAND radio, p_grid RADIOBUTTON GROUP mode.
" Parameter, der nicht angezeigt wirdPARAMETERS p_intern TYPE i NO-DISPLAY.
" Parameter, der Kleinbuchstaben erlaubtPARAMETERS p_text TYPE c LENGTH 40 LOWER CASE.
" --- Verarbeitungslogik ---START-OF-SELECTION.
WRITE: / 'Fluggesellschaft:', p_carrid. WRITE: / 'Datum:', p_date.
IF p_test = 'X'. WRITE: / 'Testlauf ist aktiv.'. ELSE. WRITE: / 'Echtlauf.'. ENDIF.
IF p_list = 'X'. WRITE: / 'Ausgabe als Liste gewählt.'. ELSE. WRITE: / 'Ausgabe als Grid gewählt.'. ENDIF.
WRITE: / 'Eingegebener Text:', p_text.
" p_intern könnte hier verwendet werden, wenn es z.B. über SUBMIT gefüllt wurde.
Wichtige Hinweise / Best Practice
PARAMETERS
gehört immer in den Deklarationsteil eines Programms.- Nutze den
TYPE
-Zusatz mit Bezug auf Datenelemente oder Tabellenfelder aus dem ABAP Dictionary (SE11
). Dadurch erhältst Du automatisch den korrekten Datentyp, Länge, F1-Hilfe, F4-Wertehilfe und ggf. Eingabeprüfungen. - Verwende
PARAMETERS
für einfache Eingaben, bei denen der Benutzer nur einen einzelnen Wert angeben soll. Für komplexere Abgrenzungen (Bereiche, Mehrfachwerte, Ausschlüsse) sindSELECT-OPTIONS
vorgesehen. - Mache Felder mit
OBLIGATORY
zu Pflichtfeldern, wenn eine Eingabe für die Programmlogik unerlässlich ist. - Nutze
AS CHECKBOX
undRADIOBUTTON GROUP
für einfache Ja/Nein-Entscheidungen oder exklusive Auswahlmöglichkeiten.