SPA/GPA Parameter
SPA/GPA-Parameter werden im SAP-Memory gespeichert. Hier können Felder transaktionsübergreifend gefüllt werden. Der SAP-Memory steht dem Benutzer während einer Anmeldung zur Verfügung. Die Speicherung von Werten in SPA/GPA-Parametern ist benutzerspezifisch.
Verwandt mit den SPA/GPA-Parametern (SAP-Memory) ist der ABAP-Memory.
Füllen eines SPA/GPA-Parameters
SET PARAMETER ID <pid> FIELD <f>.
Diese Anweisung speichert den Inhalt des Felds <f> unter der Kennung <pid> im SAP-Memory. Die Kennung <pid> kann aus zwanzig Zeichen bestehen. Sie lässt sich auch länger anlegen, aber dann gibt es einen Laufzeitfehler beim Lesen der Parameter-ID im Coding.
Die Anweisung überschreibt einen schon vorhandenen Wert mit der Kennung <pid>.
Anlegen einer neuen Parameter-ID
Data: lv_test type xfeld.
GET PARAMETER ID 'Z_UPDATE_INVOICE' FIELD lv_test.
if lv_test = 'X'.
...
endif.
- Durch Doppelklick auf <pid> im ABAP-Editor können nichtvorhandene Parameter als Repository-Objekt erzeugt werden.
- Alternativ über SE80: Button "Objekt bearbeiten". Es öffnet sich ein Fenster. Hier beim Radiobutton "SET/GET-Parameter-ID" den neuen Parameter-ID eintragen und Button "Anlegen".
Lesen eines SPA/GPA Parameters
GET PARAMETER ID <pid> FIELD <f>.
- Diese Anweisung stellt den unter der Kennung <pid> abgelegten Wert in die Variable <f>. Falls das System keinen Wert zu <pid> im SAP-Memory findet, wird SY-SUBRC auf 4, ansonsten auf 0 gesetzt.
Identifizieren Parameter-ID
- Sehr häufig werden Felder eine Parameter-ID haben, die genutzt werden kann.
- Die Parameter ID lässt sich über die technische Info identifizieren.
- Hier möchte man z. B. die Parameter-ID identifizieren, die das Auftragsfeld (Transaktions VA03) hat.
- Hier sieht man im Feld "Parameter-ID" den Wert "AUN".
Pflege Werte von Parameter-ID in Eigene Daten
Die Pflege von Parameter-IDs bei "Eigene Daten" (Menü: System - Benutzervorgaben - Eigene Daten) kann genutzt werden, um komfortabel pro User die Parameter-ID vorzubelegen oder man nutzt es als einfache Berechtigungsabfragen, wo man nicht den klassischen Weg über Berechtigungsvergabe gehen will.
In diesem Beispiel sind u. a. die Parameter-IDs "SCL" und "SOST" gepflegt und z. B. der Wert "G" von dem Parameter-ID "SCL" kann dann im Programmcode ausgelesen werden.
Data: lv_test type char10. GET PARAMETER ID 'SCL' FIELD lv_test.