Oft ist es hilfreich, wenn man sich eigene Parameter festlegen kann, über die man in einem Programm Funktionen steuert.
Anlegen eines Parameters
- SE80 -> Paket -> Rechtsklick -> Anlegen -> Weitere (1) -> SET/GET-Parameter-ID
- Parameter-ID (z.B. ‘ZADM_SHOW_PARAMS’) und Kurzbeschreibung eingeben
Wert für Parameter setzen
- SU3 -> Reiter “Parameter”
- Set-/Get-Parameter-Id: zuvor angelegten Parameter (z.B. ‘ZADM_SHOW_PARAMS’) auswählen
- Parameterwert: beliebigen Wert zur späteren Auswertung eintragen, z.B. ‘X’
Werte werden in folgenden Tabelle abgelegt
- TPARA (Verzeichnis der Memory-Id’s (vorlaeufig))
- TPARAT (Kurztexte zu den Memory-Id’s)
- USR05 (Benutzerstamm Parameter-ID)
Auslesen eines Parameters im Code
* Konstante für angelegten Parameter 'ZADM_SHOW_PARAMS'
CONSTANTS: co_parameter_id TYPE usr05-parid VALUE 'ZADM_SHOW_PARAMS'.
* Parameter mit einer Modifikationsgruppe namens 'ADM'
PARAMETERS: p_matnr TYPE matnr MODIF ID adm.
PARAMETERS: p_bukrs TYPE bukrs MODIF ID adm.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN INTO DATA(lv_scr).
* Name der Modifikationsgruppe ermitteln
CASE lv_scr-group1.
* wenn in Modifikationsgruppe 'ADM'
WHEN 'ADM'.
* Wert vorbelegen
DATA(lv_adm_show_params) = CONV usr05-parva( abap_false ).
* Benutzerparameter lesen, muss in Tabelle TPARA enthalten sein
GET PARAMETER ID co_parameter_id FIELD lv_adm_show_params.
* wenn Parameter vorhanden
IF sy-subrc = 0.
* anhand des Benutzerparameters die Anzeige der Modifikationsgruppe namens 'ADM' aktivieren / deaktivieren
lv_scr-active = COND #( WHEN lv_adm_show_params = abap_true THEN '1' ELSE '0' ).
* Adminparameter zur Info als hervorgehoben darstellen
lv_scr-intensified = 1.
ENDIF.
ENDCASE.
* geänderte Anzeigewerte setzen
MODIFY screen FROM lv_scr.
ENDLOOP.
Links