Parametertransaktionen nutzen
Eingabefehler verhindern und Prozesse beschleunigen – um das zu gewährleisten, sind Parametertransaktionen oft eine gute Wahl. Was sie dabei als Berechtigungsprofi berücksichtigen müssen und wie sie Parametertransaktionen einschränken, erklären wir Ihnen heute.
Eine Parametertransaktion in SAP führt eine Funktion oder einen Report mit spezifischen Parametern aus, die vorher definiert wurden. Parametertransaktionen kommen vor allem dort zum Einsatz, wo Prozesse beschleunigt und vereinfacht werden sollen. Sie reduzieren unnötige Benutzereingaben und verbessern die Replizierbarkeit. Aber: Sie können auch ein hohes Sicherheitsrisiko darstellen und müssen deshalb berechtigungsseitig sauber eingeschränkt werden.
Gut zu wissen: Ein Parameter ist eine variable Eingabe, die von einer Funktion oder einem Report benötigt wird. Ein Parameter kann verschiedene Datentypen haben, wie beispielsweise Text, Zahlen oder Datum und Uhrzeit.
Der Benutzer ruft die Parametertransaktion mit dem entsprechenden Transaktionscode auf. Wenn die Transaktion aufgerufen wird, werden die voreingestellten Parameterwerte für die Transaktion automatisch geladen. Der Benutzer hat die Möglichkeit, die voreingestellten Parameterwerte zu ändern, bevor die Transaktion ausgeführt wird.
Gut zu wissen: Es gibt statische und dynamische Parameterwerte. Statische Werte werden vorausgefüllt und können vom User nicht geändert werden. Dynamische Werte können zwar vorbelegt werden, der Benutzer kann sie aber ändern, bevor die Transaktion ausgeführt wird. Darin liegt ein potenzielles Sicherheitsrisiko, das weitere Berechtigungsanpassungen nötig macht.
Ein Beispiel: Stellen Sie sich vor, Ihre Anwender wollen einen Report ausführen, der alle Materialbewegungen in einem bestimmten Werk und Lagerort an einem bestimmten Datum anzeigt. Ohne Parametertransaktion müssten Sie jedes Mal, wenn Sie den Report ausführen möchten, die Werte für Werk, Lagerort und Datum manuell eingeben. Dies kann sehr zeitaufwändig und fehleranfällig sein, insbesondere wenn Sie den Report häufig ausführen müssen. Eine Lösung besteht darin, eine Parametertransaktion zu erstellen, die alle erforderlichen Parameterwerte im Voraus definiert. Wenn Sie die Parametertransaktion ausführen, werden die voreingestellten Parameter automatisch geladen, und Sie können die Parameterwerte bei Bedarf anpassen.
Aber Achtung: In der Regel sollen die User nur die Materialbewegungen sehen, die in ihrem Verantwortungsbereich liegen. Um Überberechtigungen durch die Parametertransaktion zu verhindern, müssen Sie die relevanten Berechtigungsobjekte einschränken, die zum Beispiel den Zugriff auf Werke steuern.
Wann sind Parametertransaktionen ein Sicherheitsrisiko?
Parametertransaktionen werden auch genutzt, um Funktionen oder Prozesse innerhalb des Systems zu konfigurieren. Darunter fallen Transaktionen wie die SE16 oder SM30, die – wenn sie nicht richtig eingeschränkt werden – weitreichende Berechtigungen zum Einsehen, Ändern und Löschen von Tabellen mitbringen. Das ist nicht nur im Hinblick auf Datenschutzverletzungen kritisch, sondern auch für die Sicherheit und Stabilität des Systems selbst riskant.
Deshalb sollten Transaktionen wie diese:
- nur an einen kleinen Kreis von Usern vergeben werden (vor allem in Produktivumgebungen), etwa Administratoren und Entwickler.
- über relevante Berechtigungsobjekte (für die SE16/SM30: S_TABU_DIS oder S_TABU_NAM) eingeschränkt werden, wenn die Vergabe der Transaktion unumgänglich ist.
- Durch Z-Transaktionen, die ausschließlich den Zugriff auf relevante Tabellen-Daten erlauben, ersetzt werden (vor allem für Anwender und in Produktivumgebungen).
Parametertransaktionen konfigurieren
Die Konfiguration von Parametertransaktionen in SAP erfolgt über die Transaktion SE93. Um eine Parametertransaktion so zu konfigurieren, dass bestimmte Parameter vorausgefüllt sind und vom Benutzer nicht geändert werden können, gehen Sie folgendermaßen vor:
- Öffnen Sie die Transaktion SE93 und geben Sie den Transaktionscode der Parametertransaktion ein, die Sie konfigurieren möchten.
- Klicken Sie auf die Schaltfläche „Anzeigen“.
- Im nächsten Bildschirm wählen Sie die Option „Parameter“ und geben Sie den Parameter ein, den Sie vorausfüllen möchten. Geben Sie in das Feld „Fixwerte“ den Wert ein, den Sie für den Parameter vorausfüllen möchten.
- Aktivieren Sie das Kontrollkästchen „Ohne Dialogfeld“, um zu verhindern, dass der Benutzer den Parameterwert ändert.
- Klicken Sie auf die Schaltfläche „Übernehmen“.
- Klicken Sie auf die Schaltfläche „Sichern“, um die Änderungen zu speichern.
Sobald diese Konfiguration abgeschlossen ist, wird die Parametertransaktion bei jedem Aufruf automatisch mit den vorausgefüllten Parametern gestartet und der Benutzer wird nicht aufgefordert, die Parameterwerte zu ändern.
Zu unserem Beispiel: Erinnern Sie sich noch an die User, die den Bestand eines bestimmten Materials in einem bestimmten Lager zu einem bestimmten Datum aufrufen wollten? Für sie könnten Sie die eine Parametertransaktion mit folgenden Werten anlegen (oder eine bestehende, bspw. MMBE, konfigurieren):
- Werk: „Werk1“
- Lagerort: „Lagerort1“
- Datum: „01.02.2023“
Wenn die User die Parametertransaktion ausführen, die Sie vorgesehen haben, werden diese Parameterwerte automatisch geladen. Auf diese Weise können sie schnell und einfach den gewünschten Report ausführen, ohne jedes Mal die Parameterwerte manuell eingeben zu müssen. Solange Sie bei der Konfiguration das Kontrollkästchen „Ohne Dialogfeld“ deaktiviert haben, können die User jedoch auch Änderungen an diesen Werten vornehmen, bevor sie den Report ausführen.
Zu Erinnerung: Wenn Sie mehrere Werke für die User zugänglich machen müssen (etwa weil User aus verschiedenen Werken diese Parametertransaktion nutzen sollen), denken Sie daran, den Zugriff auf die Werke einzuschränken, so dass die User nur auf die Werke in ihrem Verantwortungsbereich zugreifen können. Das können Sie beispielsweise über Werterollen abbilden, die nur die entsprechenden Objekte enthalten (z.B M_MSEG_WMB).
Eigene Parametertransaktionen bauen
Sie können Parametertransaktionen auch selbst erstellen oder besser: erstellen lassen. Dazu verwenden Sie eine bestehende ABAP-Funktion oder einen bestehenden ABAP-Report als Vorlage und konfigurieren diesen mit spezifischen Parametern konfigurieren.
Der Prozess umfasst in der Regel die folgenden Schritte:
- Schreiben Sie die ABAP-Funktion oder den ABAP-Report, der die gewünschte Funktionalität ausführt. Achten Sie dabei darauf, dass es sich um eine Funktion oder einen Report handelt, der mit Parametern aufgerufen werden kann.
- Erstellen Sie eine neue Transaktion mit dem Transaktionscode SE93.
- Geben Sie einen Transaktionsnamen und eine kurze Beschreibung ein.
- Wählen Sie die Option „Mit Parameter“ und geben Sie die Parameter an, die für die Transaktion benötigt werden. Hier können Sie wie oben beschrieben auch definieren, welche Parameter vorausgefüllt und ob sie änderbar sein sollen.
- Geben Sie die Funktionsgruppe oder den Reportnamen ein, der ausgeführt werden soll, wenn die Transaktion aufgerufen wird.
- Testen Sie die Transaktion, um sicherzustellen, dass sie wie erwartet funktioniert.
Wann eignen sich Parametertransaktionen NICHT?
Grundsätzlich erleichtern Parametertransaktionen die Arbeit: Fehler durch falsche Benutzereingaben werden minimiert, Prozesse werden beschleunigt, weil die User weniger Eingaben händisch tätigen müssen und wenn Parameter nicht änderbar sind, haben Sie eine zusätzliche Sicherungsebene.
Es gibt allerdings Fälle, in denen Sie besser auf eine Dialogtransaktion ausweichen sollten:
Wenn die Transaktion zu viele Parameter erfordert
Wenn eine Transaktion zu viele Parameter erfordert, kann es schwierig sein, sie korrekt auszuführen. Das gilt vor allem dann, wenn einige Parameter nur optional sind, andere aber angegeben werden MÜSSEN. In diesem Fall könnte es einfacher und schneller sein, eine Dialogtransaktion zu verwenden, die die Benutzer durch die Schritte führt, um die erforderlichen Informationen einzugeben.
Wenn die Benutzer unterschiedliche Parameterwerte benötigen
Wenn die Benutzer unterschiedliche Parameterwerte benötigen, kann es schwierig sein, eine Parametertransaktion zu erstellen, die allen gerecht wird. In diesem Fall könnte eine Dialogtransaktion mit verschiedenen Schritten und Optionen für die Benutzer, je nach ihren Bedürfnissen, besser geeignet sein.
Ein Kommentar zu “Parametertransaktionen nutzen”