Berechtigungsprüfung auf Beträge

Prüfung von CURR-Beträge

In diesem Artikel geht es um die Erstellung eines speziellen Berechtigungsobjektes und seiner Prüfung im Programm. Es sollen Intervalle von Währungen berechtigt werden. Mein Dank geht an Herrn Tobias Hüper (Senior SAP Consultant bei der linkFirma isacon AG, the bank accelerator), der diesen Gastbeitrag für Sie erstellt hat:

Ich habe lange im Netz, in Notes und in diversen Lektüren gesucht, bin aber leider nicht fündig geworden, wie bzw. ob man Betragswerte berechtigungstechnisch abbilden kann.
Dementsprechend war ich gezwungen mich dem Thema zu stellen:

Ausgangssituation

Ausgangssituation war, dass ein CURR Feld einen AUTHORITY-CHECK (folgend AC genannt) durchlaufen sollte, um zu prüfen, ob der Mitarbeiter Berechtigungen für den eingegebenen Betrag hat. In der Rolle des Mitarbeiters muss eine Range eingetragen werden können, für diese er berechtigt ist.

Erstes Problem auf das ich gestoßen bin ist, dass in die Felder beim Aufruf des AC nur mit zeichenartigen Werten gefüllt werden dürfen (Format C, N, D oder T).
Aus diesem Grund konnte ich dem Kunden zwei Alternativen als Lösung anbieten:

1. Alternative:

Man definiert das Feld im Berechtigungsobjekt und das Feld, das in dem AUTHORITY-CHECK beide als NUMC mit entsprechender Länge. Bei der Abfrage wird das CURR Feld in das NUMC Feld übertragen, wobei aber leider die Nachkommastellen verloren gehen. Im Profil der Rolle müssen dann die Beträge mit führenden Nullen und exakter Länge eingegeben werden. Bei einem CURR Feld mit 23 Stellen muss das NUMC ebenfalls 23 Stellen haben und würde im Profil beispielsweise wie folgt aussehen:

SU20-2

Nachteil: Der Verlust der Nachkommastellen und die Fehleranfälligkeit bei der Eingabe der Werte im Profil.
Vorteil: Werte im Profil sind auf den ersten Blick zu identifizieren und geringer Aufwand.

2. Alternative:

Man baut eine zusätzliche Tabelle mit einem Index(NUMC), von(CURR), bis(CURR), Währung(sofern notwendig).
Vor dem Aufruf des AC´s muss diese Tabelle ausgelesen werden und der entsprechende Betrag sollte in eine der vorhandenen Ranges passen. Der Index des Ranges muss anschließend in den AC übergeben werden.
Im Feld des Berechtigungsobjekts   (Pflege der Berechtigungsfelder: linkTransaktion SU20 / Pflege der Berechtigungsobjekte: Transaktion SU21) muss diese Tabelle als Wertehilfe hinterlegt werden und der Index ist das zu füllende Feld.

SU20

Nachteile: höherer Aufwand und die Übersichtlichkeit im Profil ist nicht mehr gegeben.
Vorteile: Wertehilfetabelle könnte im Customizing eingehängt werden, Mehrwährungsfähig, Fehlerminimierung bei Rollenpflege.

Wenn jemand noch andere Vorschläge hat oder Verbesserungspotenzial an den Alternative entdeckt, bitte diesen Beitrag kommentieren oder antworten. Ich bin gerne bereit den Text zu erweitern.

Tobias Hüper

Schreiben Sie bitte einen Kommentar





SAP Berechtigungen, -Konzepte, -Technik | System Beratung Bernd Klüppelberg