Wie Sie flexible SAP BI Berechtigungen vergeben können

Wie Sie flexible Berechtigungen vergeben können

In diesem Beitrag zeige ich Ihnen, wie Sie mithilfe von Customer Exit Variablen ein flexibles Berechtigungskonzept umsetzen können. So können Sie die Pflege der Berechtigungen weg von der IT in den Fachbereich verlagern. Dabei setzen Sie Standard SAP Analyseberechtigungen ein, deren Werte über eine Variable gefüllt werden.

So erleichtern Sie die Entscheidungsfindung und gewinnen einen umfassenden Überblick über Ihr Geschäft! Mit meinem neuen Buch lernen Sie, SAP für die Unternehmensplanung einzurichten, zu nutzen und zu erweitern.

Alternativ könnte man an eine Umsetzung über den BAdI für virtuelle Berechtigungen RSEC_VIRTUAL_AUTH_BADI denken. Diese Erweiterung bietet weitreichende Customzing Möglichkeiten. Dabei müssen jedoch die einzelnen Zugriffsmöglichkeiten einzeln abgebildet werden. Die von mir vorgestellte Methode hat den Vorteil, dass Sie zu 100% auf SAP Standard basiert. SAP kümmert sich vollständig um die Berechtigungsprüfung. Wir liefern nur die Berechtigungswerte für den jeweiligen Benutzer.

Flexible SAP BI Berechtigungen vergeben

Überblick

In diesem Beispiel werden die Berechtigungswerte über ein Adminlayout in ein eingabebereites DSO (Typ des DataStore-Objekts ist auf direktes Schreiben und Planungsmodus eingestellt) geschrieben. Dadurch erübrigen sich die Anfragen bei der IT. Die Berechtigungen können ganz leicht von einem Power User im Fachbereich verwaltet werden. Beim Aufruf der Query wird über die Analyseberechtigung eine Customer Exit Variable (I_STEP 0) abgefragt. Diese liest die berechtigten Werte aus dem DSO und übergibt diese an die Analyseberechtigung.
Highlevel sieht das Ganze so aus:
Überblick über das flexible Berechtigungs-Konzept
Nachfolgend gehe ich auf die einzelnen Komponenten ein.

Bericht

Der Benutzer TESTUSER ruft einen Bericht für die Geschäftsfelder auf. Dieser ist ganz einfach gehalten – man sieht die Umsätze pro Geschäftsfeld.
Bericht
Dabei ist das Objekt Geschäftsfeld ZBUSSEG als berechtigungsrelevant gekennzeichnet. Das heißt, dass bei jedem Aufruf eine Berechtigungsprüfung durchlaufen wird.
Merkmal ist berechtigungsrelevant
Die Query selbst basiert auf einem InfoCube, der die folgenden Werte pro Geschäftsfeld beinhaltet:
Umsatz pro Geschäftsfeld

Rollen, Objekt- und Analyseberechtigungen

Der Benutzer TESTUSER besitzt die notwendigen Basis- und Objektberechtigungen um die Query aufrufen zu können. Auf die Gestaltung der Analyseberechtigungen möchte ich näher eingehen.
Rollen des Benutzers
So ist dem Benutzer die Rolle Z_S_EXPL_ANA_01 zugeordnet. Diese dient dazu, die Analyseberechtigung EXPL_BSEG_01 in einer Rolle zu bündeln.
Die Analyseberechtigung selbst wird in der Transaktion RSECADMIN wie folgt gepflegt.
Analyseberechtigung über Variable
Die Werte der Berechtigung werden über eine Customer Exit Variable bestimmt. Dazu wird dem Namen der Variable ein Dollarzeichen vorangestellt.


SAP Analysis for Microsoft Office: Reporting leicht gemacht

Planung und Reporting mit SAP Analysis leicht gemacht!

Lernen Sie, wie Sie mit SAP Analysis for Microsoft Office professionelle Berichte erstellen. Dieses Praxishandbuch erklärt Ihnen, wie Sie Ihre Daten auf vielfältige Weise auswerten und darstellen. Schritt-für-Schritt-Anleitungen mit zahlreichen Screenshots unterstützen Sie – von der Implementierung bis zur Anwendung.

Customer Exit Variable

Die Customer Exit Variable wird im I_STEP 0 ausgeführt und liest die Werte aus einem DSO aus. In diesem sind die Werte abgelegt, für die ein Benutzer berechtigt ist. Diese Werte kann ein Power User des Fachbereichs über ein Eingabelayout pflegen.
Der Inhalt des DSOs sieht wie folgt aus, die Werte mit einer 1 werden als aktiv angesehen. In diesem Beispiel ist der Benutzer TESTUSER auf die Geschäftsfelder 32 und 33 berechtigt.
Berechtigungen im DSO
Diese Werte lesen wir mithilfe der Customer Exit Variable aus. Zunächst wird über den Baustein RSEC_GET_USERNAME der Benutzername des ausführenden Benutzers bestimmt. Anschließend lesen wir die aktiven Werte für diesen Benutzer aus dem DSO. Diese werden nun an die Analyseberechtigung übergegeben. Bei den Berechtigungen für nicht zugewiesene (Raute #) Elemente müssen wir eine Sonderbehandlung für BEx einbauen.
Das gesamte Coding sieht so aus:

FUNCTION Z_VAR_I0_ZBUSSEG_CCMNM_001.
*"--------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     VALUE(I_VNAM) TYPE  RSZGLOBV-VNAM
*"     VALUE(I_VARTYP) TYPE  RSZGLOBV-VARTYP
*"     VALUE(I_IOBJNM) TYPE  RSZGLOBV-IOBJNM
*"     VALUE(I_S_COB_PRO) TYPE  RSD_S_COB_PRO
*"     VALUE(I_S_RKB1D) TYPE  RSR_S_RKB1D
*"     VALUE(I_PERIV) TYPE  RRO01_S_RKB1F-PERIV OPTIONAL
*"     VALUE(I_T_VAR_RANGE) TYPE  RRS0_T_VAR_RANGE
*"     VALUE(I_STEP) TYPE  I DEFAULT 0
*"  EXPORTING
*"     VALUE(E_T_RANGE) TYPE  RSR_T_RANGESID
*"     VALUE(E_MEEHT) TYPE  RSZGLOBV-MEEHT
*"     VALUE(E_MEFAC) TYPE  RSZGLOBV-MEFAC
*"     VALUE(E_WAERS) TYPE  RSZGLOBV-WAERS
*"     VALUE(E_WHFAC) TYPE  RSZGLOBV-WHFAC
*"     VALUE(E_NO_SCREEN) TYPE  RS_BOOL
*"     VALUE(E_CHECK_AGAIN) TYPE  RS_BOOL
*"  CHANGING
*"     VALUE(C_S_CUSTOMER) TYPE  RRO04_S_CUSTOMER OPTIONAL
*"--------------------------------------------------------------------

  DATA: ls_result_line TYPE rrrangesid,
        lt_zbusseg TYPE STANDARD TABLE OF /bic/aexpldbs100,
        lv_uname LIKE sy-uname.

    FIELD-SYMBOLS:  LIKE LINE OF i_t_var_range,
                  LIKE LINE OF lt_zbusseg.

* Immer den Funktionsbaustein zur Bestimmung des Benutzers benutzen
  CALL FUNCTION 'RSEC_GET_USERNAME'
    IMPORTING
      e_username = lv_uname.
  IF sy-subrc = 0.

    SELECT m~/bic/zbusseg
    FROM /bic/mzbusseg AS m
    JOIN  /bic/aexpldbs100 AS a ON m~/bic/zbusseg     = a~/bic/zbusseg

  APPENDING CORRESPONDING FIELDS OF TABLE lt_zbusseg

 WHERE m~objvers        EQ   'A'
 AND  a~d_nw_user       EQ   lv_uname
 AND a~/bic/zexcoun1   EQ   1.

    IF sy-subrc = 0.
* Werte ausgeben
      ls_result_line-sign = 'I'.
      ls_result_line-opt = 'EQ'.

      LOOP AT lt_zbusseg ASSIGNING .

        CASE -/bic/zbusseg.
          WHEN ''.
*BEx Sonderbehandlung
            ls_result_line-low = '#'.
          WHEN OTHERS.
            ls_result_line-low = -/bic/zbusseg.
        ENDCASE.
        APPEND ls_result_line TO e_t_range.

      ENDLOOP.
    ENDIF.
  ENDIF.
ENDFUNCTION.

Mögliche Szenarien

Betrachten wir nun das Szenario in dem die Querywerte über eine Berechtigungsvariable festgelegt werden.
Filter Berechtigungsvariable
Dabei werden nur die Geschäftsfelder Smartphones und Tablets (32 und 33) angezeigt.
Geschäftsfelder Smartphone und Tablet
Die Berechtigungen stimmen in diesem Szenario immer mit der Selektion überein. Die Werte der Variable können auch im Protokoll der Berechtigungsprüfung nachvollzogen werden.
Protokoll der Berechtigungsprüfung
Wenn der Benutzer TESTUSER nun auch das Geschäftsfeld Computer (34) verantwortet, kann er alle drei Geschäftsfelder sehen.
Übersicht über berechtigte Werte
Wenn der Filter fix auf die Bereiche Smartphones und Tablets (32 und 33) eingeschränkt wird, greift die normale SAP Berechtigungsprüfung. Im Trace kann man nachvollziehen, dass auch Berechtigungen für Computer (34) vorliegen.
Trace Berechtigungen
Wenn aber im Filter überhaupt nichts eingeschränkt ist, schlägt die Berechtigungsprüfung fehl. Die Query versucht alle Geschäftsfelder zu selektieren (32 bis 44). Allerdings liegen Berechtigungen nur für Geschäftsfelder 32 bis 34 vor.
Berechtigungsprüfung schlägt fehl

Wollen Sie mir über das Thema Berechtigungen erfahren und fit für das nächste Projekt werden? Mit meinem Buch „SAP BI Berechtigungen sind einfach – das Wesentliche auf den Punkt gebracht“ geht es spielend leicht. Sichern Sie sich jetzt ein Exemplar!

Ihre User beklagen sich über langsame Berichte?

  • In meinem Newsletter lernen Sie, wie Sie Abhilfe schaffen.
  • Entdecken Sie die Möglichkeiten der Performanceoptimierung.
  • Praktische Anleitungen ermöglichen Ihnen schnelle Erfolge bei der Optimierung von SAP Systemen.
  • Viele Tipps und Tricks zu SAP BI Themen.
  • Holen Sie die maximale Performance aus Ihrem SAP BI!
  • Bei der Anmeldung zu meinem Newsletter erhalten Sie das Buch „High Performance SAP BI“ als Willkommensgeschenk.
Fordere SAP Performance Tricks an

Jetzt anfordern!

* Pflichtfeld
 
Kein SPAM. Ich hasse Spam genau so wie du.

Bildquelle: Pixabay, CC0 Public Domain

Falls Ihnen dieser Beitrag weitergeholfen hat, wäre es eine sehr nette Anerkennung meiner Arbeit wenn Sie z.B. Ihre Bücher über Amazon bestellen würden. Wenn Sie ein Produkt kaufen, erhalte ich dafür eine Provision. Für Sie ändert sich am Preis des Produktes gar nichts. Ich möchte mich an dieser Stelle jetzt schon für Ihre Unterstützung bedanken.

1 Kommentar

Trackbacks & Pingbacks

  1. […] weitreichende Customizing Möglichkeiten. Ich tendiere jedoch dazu SAP Standards zu nutzen um flexible Berechtigungen zu […]

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar zu 10 Berechtigungsartikel die Sie kennen sollten | Denis Reis Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.