SAP-Berechtigungen – Rollen entfernen

In diesem Artikel erkläre ich Dir, wie Du nicht mehr benötigte Rollen entfernen kannst. Damit stellst Du einen konsistenten Zustand in Bezug auf Deine Berechtigungsverwaltung in SAP ERP bzw. SAP S/4HANA sicher. Ich zeige Dir, wie Du einzelne und mehrere Rollen entfernen kannst. Darüber hinaus erkläre ich Dir, wie Du doppelte oder abgelaufene Rollen einfach und schnell entfernen kannst.

Rollen entfernen

Wenn Rollen im SAP-System nicht mehr benötigt werden, können diese einfach und schnell in der Transaktion PFCG gelöscht werden. Dazu gibst Du die Rolle in das Eingabefeld ein und drückst den Button „Rolle löschen“ oder verwendest die Tastenkombination „Umschalt + F2“.

Unnötige Rolle in SAP löschen

Nach Anklicken des Buttons erscheint ein PopUp mit der Frage „Möchten Sie die Rolle mit allen Informationen löschen?“ Diese Frage muss mit dem Button „Ja“ bestätigt werden.

Wichtig ist hierbei, dass, wenn die Löschung auch in andere SAP-Systeme (Test- und Produktivsystem) transportiert werden soll, muss die Rolle vorher in einen Transportauftrag eingetragen werden. Über den Button „Rolle transportieren“ oder die Tastenkombination „Strg + Umschalt + F9“ kann eine Rolle in einen Transportauftrag aufgenommen werden. Dieser wird dann bei Transportfreigabe zu einem Löschauftrag und die Löschung wird in die Folgesysteme transportiert.

Massenlöschen von Rollen

Mit dem Report PFCG_MASS_DELETE bzw. der Transaktion PFCGMASSDELETE kannst Du massenhaft Rollen löschen.

Für die in der Standardselektion ausgewählten Sammelrollen bietet der Report PFCG_MASS_DELETE drei Bearbeitungsmodi an:

  • Simulation
  • Ausführung mit vorhergehender Simulation
  • Direkt Ausführung
Massenlöschen von Rollen

Mit der Option „Simulation“ werden die durchzuführenden Änderungen simuliert und in einer Ergebnisliste angezeigt. Während der Simulation werden alle notwendigen Berechtigungsprüfungen durchgeführt.

Bei der Option „Ausführung mit vorhergehender Simulation“ werden zunächst die Rollen gesperrt und die Simulation durchgeführt. Anschließend erscheint in der Menüleiste der Ergebnisliste die Drucktaste ‚Ausführen‘. Auf diese Weise kannst Du die Änderungen zunächst überprüfen und anschließend speichern, ohne dass die Rollen zwischenzeitlich versehentlich geändert wurden. Wenn Du nur einen Teil der angezeigten Rollen ändern möchtest, kannst Du mit der Funktion „Rolle ausschließen“ oberhalb der Ergebnisliste die zuvor markierten Rollen löschen.

Die Option „Direkt Ausführung“ bedeutet, dass die Änderungen sofort ausgeführt und in der Ergebnisliste angezeigt werden.

Mit diesem Programm kannst Du mehrere Rollen auf einmal löschen. Nicht gelöscht werden:

  • Vererbte Rollen
  • Einzelrollen als Bestandteil von Sammelrollen
  • Rollen mit Benutzerzuordnungen

Im Abschnitt „Rollentransport“ siehst Du, ob und wenn ja, welche Einstellung zum Transport mandantenabhängiger Customizing-Objekte in Transaktion SCC4 aktiv ist. Näheres zum Rollentransport findest Du im SAP-Hinweis 1723881.

Im SAP-Hinweis 313587 wird ein ABAP-Programm bereitgestellt, das man für diesen Anwendungsfall verwenden kann. Das ABAP-Coding und die Einsatzmöglichkeiten sind grundsätzlich noch einmal in der eigenen Umgebung zu überprüfen, um ungewollte Löschungen zu vermeiden. Vor der Anwendung des Reports sollte ein Transportauftrag mit allen Rollen über die Transaktion PFCG erstellt und freigegeben werden, um im Schadensfall (ungewolltes Löschen) den letzten Stand wiederherstellen zu können.

REPORT Z_DEL_AGR .
*--------------------------------------------------------------*
* Version valid from 4.5b - 7.xx                               *
*--------------------------------------------------------------*
TABLES :  AGR_DEFINE.
DATA: BEGIN OF ACTTAB OCCURS 0,
        AGR_NAME LIKE AGR_DEFINE-AGR_NAME,
      END OF ACTTAB.

SELECT-OPTIONS ACTGRP FOR AGR_DEFINE-AGR_NAME.
PARAMETERS: TEST(1) DEFAULT 'X'.

* F4 Hilfe für die Aktivitäsgruppe
AT SELECTION-SCREEN ON VALUE-REQUEST FOR ACTGRP-LOW.
  DATA: SELECTED_VALUE LIKE AGR_DEFINE-AGR_NAME.
  CALL FUNCTION 'PRGN_ACTIVITY_GROUPS_F4_HELP'
       IMPORTING
            SELECTED_VALUE             = SELECTED_VALUE
       EXCEPTIONS
            NO_ACTIVITY_GROUP_SELECTED = 1
            OTHERS                     = 2.
  IF SY-SUBRC = 0.
    ACTGRP-LOW = SELECTED_VALUE.
  ENDIF.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR ACTGRP-HIGH.
  DATA: SELECTED_VALUE LIKE AGR_DEFINE-AGR_NAME.
  CALL FUNCTION 'PRGN_ACTIVITY_GROUPS_F4_HELP'
       IMPORTING
            SELECTED_VALUE             = SELECTED_VALUE
       EXCEPTIONS
            NO_ACTIVITY_GROUP_SELECTED = 1
            OTHERS                     = 2.
  IF SY-SUBRC = 0.
    ACTGRP-HIGH = SELECTED_VALUE.
  ENDIF.

START-OF-SELECTION.

  SELECT AGR_NAME FROM AGR_DEFINE
         INTO  CORRESPONDING FIELDS OF TABLE ACTTAB
         WHERE AGR_NAME IN ACTGRP.

  LOOP AT ACTTAB.
    CALL FUNCTION 'PRGN_AUTH_ACTIVITY_GROUP'
         EXPORTING
              ACTIVITY_GROUP   = ACTTAB-AGR_NAME
              ACTION_DELETE    = 'X'
*             MESSAGE_OUTPUT   = 'X'
         EXCEPTIONS
              NOT_AUTHORIZED   = 1
              OTHERS           = 2.

    IF SY-SUBRC EQ 0.
      IF TEST EQ SPACE.
        WRITE : / 'Delete : ', ACTTAB.
        CALL FUNCTION 'PRGN_ACTIVITY_GROUP_DELETE'
             EXPORTING
                  ACTIVITY_GROUP                = ACTTAB-AGR_NAME
                  show_dialog                   = ' '
                  ENQUEUE_AND_TRANSPORT         = 'X'
             EXCEPTIONS
                  NOT_AUTHORIZED                = 1
                  TRANSPORT_CHECK_PROBLEM       = 2
                  TRANSPORT_CANCELED_OR_PROBLEM = 3
                  ONE_OR_MORE_USERS_ENQUEUED    = 4
                  FOREIGN_LOCK                  = 5
                  USER_CANCELS_ACTION           = 6
                  OTHERS                        = 7.
        IF SY-SUBRC <> 0.
          MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                  WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
      ELSE.
        WRITE : / 'Test Delete : ', ACTTAB.
      ENDIF.
    ELSE.
      WRITE : / 'Missing authorization for :', ACTTAB-AGR_NAME.
    ENDIF.
  ENDLOOP.                                                                                                                                                                                                                

Alternativ kannst du den Datensatz in Transaktion SCAT und den Datensatz in Transaktion PFCG mit der Löschoption einer Rolle verwenden. Finde dann das Feld im Testfall und lege einen Parameter dafür an. Exportiere die Standardvariante. Dann bearbeite diese Datei, indem du die Rollen einträgst, die gelöscht werden sollen. Führe schließlich den Testfall mit der Variantendatei aus.

Doppelte oder abgelaufene Rollen entfernen

Mit dem ABAP-Programm PRGN_COMPRESS_TIMES können doppelte oder abgelaufene Rollen im SAP-System schnell und einfach gelöscht werden. Das Programm kannst Du in der Transaktion SA38 (Programmausführung) oder SE38 (ABAP Editor) ausführen.

Nach dem Ausführen erscheinen die Selektionskriterien. Hier kannst Du die Verdichtung nach SAP-Benutzern, Benutzergruppen und Rollen vornehmen. Wenn Du das Programm ausführst, werden doppelte Rollen in der Benutzerzuordnung gelöscht. Wählst Du zusätzlich die Option „Löschung abgelaufener Zuordnungen“, werden auch abgelaufene Rollen entfernt.

Programm PRGN_COMPRESS_TIMES - Komprimierung von Benutzerzuordnungen zu Rollen

Es wird empfohlen, bei der ersten Ausführung die Option „Simulationslauf“ zu wählen, um das mögliche Ergebnis zu überprüfen. In diesem Fall werden die Rollen nicht gelöscht, sondern der Report wird testweise ausgeführt.

Über den Autor

Andreas Geiger

Mein Name ist Andreas Geiger und ich bin ein erfahrener Senior SAP Berater. Mit mehr als 10 Jahren Berufserfahrung habe ich mehrere SAP-Projekte erfolgreich abgeschlossen und umfangreiche Kenntnisse in verschiedenen Bereichen wie SAP FI, SAP MM und ABAP erworben. Nun möchte ich mein Wissen mit Dir teilen, um Dir einen Mehrwert zu bieten und Dich bei Deiner täglichen Arbeit mit dem SAP-System zu unterstützen.

Mehr zu ERP UP

ERP UP unterstützen

Wenn Du mit ERP UP zufrieden bist, kannst Du mich gerne unterstützen. Dabei gibt es unzählige Möglichkeiten, wie Du mich einfach und schnell unterstützen kannst. Wie Du genau ERP UP unterstützen kannst, erfährst Du hier. Vielen Dank.

Schreibe einen Kommentar