[SAP] Benutzerparameter pflegen

SE80

  • Paket auswählen
  • Rechtsklick auf Paketname -> Anlegen -> Weitere (1) -> SET/GET-Parameter-ID
  • Parameter-ID (z.B. ‘ZXYZ’) und Kurzbeschreibung eingeben

SU3 (Pflege eigener Benutzervorgaben)

  • Reiter “Parameter”
  • Set-/Get-Parameter-Id: zuvor angelegten Parameter auswählen
  • Parameterwert: beliebigen Wert zur späteren Auswertung eintragen, z.B. “X”

Tabellen

  • TPARA (Verzeichnis der Memory-Ids (vorlaeufig))
  • TPARAT (Kurztexte zu den Memory-Ids)
  • USR05 (Benutzerstamm Parameter-ID)

Links

[ABAP] Eigene SET/GET-Parameter-ID im Programm verwenden

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

[ABAP] Verwendung SAP-Memory

  • Der SAP-Memory arbeitet im Gegensatz zum ABAP-Memory Session-(Modus-)übergreifend.
  • Es können also Daten zw. zwei Programmen ausgetauscht werden.
  • Speicherung ist nutzerspezifisch
  • Speicherung erfolgt solange der Nutzer angemeldet ist

Report 1 (Sender)

* Variablenname im SAP-Memory
CONSTANTS: co_mem TYPE usr05-parid VALUE 'MEM1'.

* Wert zum Abspeichern
PARAMETERS: p_parval TYPE usr05-parva DEFAULT 'Test1'.
* Schalter speichern / löschen
PARAMETERS: p_delete TYPE abap_bool DEFAULT abap_false.

START-OF-SELECTION.

  IF p_delete = abap_false.
* Wert im SAP-Memory setzen
    SET PARAMETER ID co_mem FIELD p_parval.
    WRITE: / 'Wert gesetzt.'.
  ELSE.
* Wert in SAP-Memory schreiben
    SET PARAMETER ID co_mem FIELD space.
    WRITE: / 'Wert gelöscht.'.
  ENDIF.

Report 2 (Empfänger)

* Variablenname im SAP-Memory
CONSTANTS: co_mem TYPE usr05-parid VALUE 'MEM1'.

DATA: lv_parval TYPE usr05-parva.

* Wert aus SAP-Memory lesen
GET PARAMETER ID co_mem FIELD lv_parval.
IF sy-subrc = 0.
  WRITE: / lv_parval.
ELSE.
  WRITE: / co_mem, 'nicht vorhanden.'.
ENDIF.

Links