Name des Berichtes in Exit-Variablen für die Berechtigung verwenden

Im Rahmen der Berechtigungsprüfung fürs Reporting‘s können die berechtigungsrelevante Werte unter anderem mit Hilfe von Exit-Variablen ermittelt werden. Es kommt vor, dass die Anforderungen aus dem Business es erfordern, dass bei der Ermittlung der Werte innerhalb der Exit-Implementierung der Bericht in dem die Daten dargestellt werden sollen berücksichtigt werden sollen. D.h. wenn User A sich die Daten über den Bericht X anschaut soll er für andere Werte berechtigt sein als wenn er die gleichen Daten über Bericht Z anschaut.

Das SAP BW Berechtigungskonzept sieht die Berücksichtigung des Berichts bei der Ermittlung der berechtigungsrelevanten Daten nicht vor. Aus diesem Grund wird der Name des Berichtes auch nicht über das Cuxtomer-Exit Interface übergeben. Das heißt der Parameter der den Berichtsnamen normalerweise im Customer Exit für Exit-Variablen bereitstellt ist bei der Verarbeitung von Exit Variablen im Rahmen der Berechtigung initial.

Im Folgenden möchte ich das Verhalten an einem Beispiel aufzeigen. Des Weiteren möchte ich einen alternativen Weg aufzeigen wie man den Namen des aktuellen Berichtes ermitteln kann.

Das Merkmal 0COUNTRY wird über eine Exit Variable innerhalb der Berechtigungsprüfung gefiltert. Figure 1.1 zeigt die Definition der Berechtigung ZTKE_AUTH01. Zur Ermittlung der entsprechenden Werte wird die Exit-Variable ZTKE_COUNTRY verwendet.

Figure_1_1
Figure 1.1: Definition der Berechtigung

Figure 1.2 zeigt die Verwendung der Berechtigung in der Rolle.

Figure_1_2

Figure 1.2: Definition der Rolle

In meinem Beispiel lege ich die Implementierung nicht in dem Customer Exit EXIT_SAPLRRS0_001 (Erweiterung – RSR00001 BI: Enhancements for Global Variables in Reporting) an, sondern nutze hier den mit SAP BW 7.30 neu eingeführten BAdI RSROA_VARIABLES_EXIT_BADI.

Für die neue Implementierung des BAdIs RSROA_VARIABLES_EXIT_BADI definiere ich als Filter IODBJNM = 0COUNTRY. Die Filter-Kombination IOBJNM = ‘‘ benötigen wir hier nicht, da uns der I_STEP = 3 nicht interessiert. Nur im I_STEP = 3 ist der Parameter IOBJNM nicht gepflegt. Exit-Variablen die im Rahmen der Berechtigung zum Einsatz kommen werden im I_STEP = 0 prozessiert und hier ist der Parameter IOBJNM gepflegt. Figure 1.3 zeigt im oberen Teil die verwendete Filterkombination.

Figure_1_3

Figure 1.3: BAdI Implementierung

Die untere Abbildung in Figure 1.3 zeigt auf wie der Name des Reports ermittelt werden kann. Bei der Verarbeitung im I_STEP 1, 2 und 3 steht der Name des Reports in dem Feld COMPID der Struktur I_S_RKB1D. Im I_STEP = 0 ist das Feld aber leer. Mit Hilfe der Anweisung:

  IMPORT compid = l_compid FROM MEMORY ID 'COMPID'.

kann der Name des Reports aber zur Laufzeit ermittelt werden.

Dieser Beitrag wurde unter SAP veröffentlicht. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar