SAP-Berechtigung: Geschäftspartner nach bestimmten Gruppierungen einschränken

In der Transaktion BP für die Erstellung eines Geschäftspartners in SAP ERP bzw. SAP S/4HANA gibt man eine Gruppierung an. Das Standardberechtigungsobjekt B_BUPA_ATT erlaubt keine Einschränkung der Gruppierung für Geschäftspartner. SAP empfiehlt, keine Berechtigungen für die Nummerngruppierung (BUT000-BU_GROUP) über das Berechtigungsobjekt B_BUPA_ATT einzurichten.

Gruppierung bei Anlage Geschäftspartner

Es gibt jedoch eine einfache Möglichkeit, mit einem eigenen Berechtigungsobjekt und einem BAdI eine Einschränkung anhand der Gruppierung selbst sicherzustellen. Für die Einschränkung nach bestimmten Gruppierungen sind folgende Schritte notwendig:

  1. Berechtigungsfeld erstellen – SU20
  2. Berechtigungsobjekt erstellen – SU21
  3. BAdI erstellen – SE19
  4. Berechtigungsvorschlagswerten pflegen – SU24
  5. Rolle erweitern – PFCG

Berechtigungsfeld erstellen – SU20

Als Erstes musst Du ein Berechtigungsfeld in der Transaktion SU20 erstellen. Nachdem Du die Transaktion aufgerufen hast, klickst Du auf den Button „Berechtigungsfeld anlegen“ oder nutzt die Tastenkombination „Strg + F2“.

Daraufhin gibst Du den Namen des Berechtigungsfeld und das Datenelement BU_GROUP an. Stelle außerdem sicher, dass die Option „durch Suchhilfe des Datenelements“ ausgewählt ist. Anschließend speicherst Du Deine Änderungen und gibst ein Paket an.

Berechtigungsfeld in SU20 anlegen

Berechtigungsobjekt erstellen – SU21

Nachdem das Berechtigungsfeld erstellt wurde, erstellst Du als Nächstes ein Berechtigungsobjekt. Hierfür startest Du die Transaktion SU21 und klickst auf den Button „Berechtigungsobjekt anlegen“ bzw. nutz die Tastenkombination „Strg + F2“.

Daraufhin gibst Du Dein Berechtigungsobjekt, den Berechtigungsobjekttext, die Berechtigungsobjektklasse und das Paket an. Es empfiehlt sich als Berechtigungsobjektlasse AAAB (Anwendungsübergreifende Berechtigungsobjekte) zu verwenden. Anschließend klickst Du auf den Speichern-Button.

Berechtigungsobjekt anlegen - SU21

Im Anschluss gibst Du im Feld „Berechtigungsfeld“ das eben erstellte Berechtigungsfeld ein. Die anderen Eingabemöglichkeiten lässt Du unberührt.

Berechtigungsfeld in Berechtigungsobjekt angeben

Deine Änderungen kannst Du über den Speichern-Button speichern.

BAdI erstellen – SE19

Daraufhin implementierst Du nun eine Fehlermeldung für die Einschränkungen der Gruppierung im Geschäftspartner in einem eigenen BAdI. Die Implementierung beruht auf den BAdI BUPA_FURTHER_CHECKS.

Du rufst deshalb die Transaktion SE19 auf, wählst „Klassisches BAdI“ unter „Implementierung anlegen“ aus und gibst den BAdI BUPA_FURTHER_CHECKS ein. Als Nächstes klickst Du auf den Button „Impl. anlegen“.

BAdI-Implementierung anlegen für BP-Einschränkung

Es erscheint ein PopUp in dem Du den Implementierungsnamen angeben kannst. Mit der Enter-Taste oder dem Übernehmen-Button bestätigst Du Deine Eingaben.

BAdI Implementierungsnamen angeben

Nun kannst Du einen Kurztext zur Implementierung angeben. Daraufhin wechselst Du in die Registerkarte „Interface“ und klickst doppelt auf den Methodennamen CHECK_CENTRAL.

BAdI-Implementierung Methode

Wenn Du noch nicht gespeichert hast, kannst Du die Sichern-Abfrage bestätigen und die BAdI-Implementierung einem Paket zuordnen. Nun befindest Du Dich im Class Builder (Transaktion SE24) und kannst die Methode implementieren.

Hier fügst Du folgenden ABAP-Code ein:

    AUTHORITY-CHECK OBJECT 'ZGRUPPEBP' ID 'ZGRUPPEBP' FIELD iv_group.

    IF sy-subrc <> 0.
      et_return = VALUE #( ( type = 'E' id = 'ZBP_ERROR' number = '000' message = 'Keine Berechtigung, diese Gruppe zu bearbeiten.' ) ) .
    ENDIF.

Dadurch sieht die Methode folgendermaßen aus:

BAdI-Implementierung, CHECK_CENTRAL-Methode

Natürlich hat man hier weitreichende Möglichkeiten. Auch Übersetzungen kann man entsprechend pflegen, sodass die Nachricht nicht statisch im Quellcode eingetragen wird.

Aktiviere über den Aktivieren-Button oder der Tastenkombination „Strg + F3“ die Methode. Achte bei der Aktivierung vor allem darauf, dass Alle Objekte ausgewählt und aktiviert werden.

Variante für Berechtigung pflegen – SU24

Nachdem Du nun das Berechtigungsfeld, das Berechtigungsobjekt und die BAdI-Implementierung erstellt hast, musst Du alles miteinander verknüpfen. Dafür rufst Du die Transaktion SU24 auf.

In der Transaktion SU24 gibst Du im Feld Transaktionscode die Transaktion BP ein und führst die Selektion aus, indem Du auf den Ausführen-Button klickst oder die F8-Taste benutzt.

Daraufhin klickst Du auf den Button „Variante zu Vorschlagsdaten anlegen“.

Variante für SU24-Daten für BP erstellen

Als Nächstes gibst Du den Namen der Variante und eine Kurzbeschreibung an. Du speicherst Deine Eingaben und gibst im Anschluss ein Paket an.

Variante für Vorschlagsdaten anlegen

Daraufhin fügst Du das Berechtigungsobjekt der Variante hinzu. Dazu klickst Du auf die Variante und wählst im Dropdown „Objekt“ auf „Ergänze Objekte (Manuell)“ und gibst das Berechtigungsobjekt an.

Berechtigungsobjekt Variante hinzufügen

Nun ist das Berechtigungsobjekt in der Vorschlagsliste sichtbar.

Als Nächstes pflegst Du den Berechtigungsvorschlagswert mit der gewünschten Gruppierung. Du klickst im Vorschlagswert auf den Ändern-Button und gibst die ID der Gruppierung an.

Im Anschluss muss der Vorschlagswert, also die explizite Gruppierung, gepflegt werden. Hierzu klickst Du in der entsprechenden Zeile vom Berechtigungsobjekt und des Feldnamens auf den Ändern-Button und gibst die ID der Gruppierung an. Im Anschluss speicherst Du Deine Änderungen.

Vorschlagswert Gruppierung

Rolle erweitern – PFCG

Nun hast Du alle notwendigen Vorbereitungen für die Einschränkung basierend der Gruppierung durchgeführt. Nun fügen wir die Variante der Rolle in der Transaktion PFCG hinzu. Entweder änderst du eine bestehende Rolle oder erstellst hierfür eine neue Rolle.

In der Registerkarte „Menü“ klickst Du auf den Button „Transaktion“ und fügst die Transaktion BP hinzu.

Transaktion BP Rolle zuordnen

Daraufhin wird eine neue Registerkarte „Anwendungen“ hinzugefügt. In dieser Registerkarte aktivierst Du nun die erstellte Variante.

Rolle Variante aktivieren

Sobald dies gespeichert wurde, wechsle auf die Registerkarte „Berechtigungen“ und bestätige, dass diese neuen Werte eingegeben wurden. Es kann sich lohnen, die Werte durch Synchronisieren des Expertenmodus zu überprüfen, dies sollte nicht notwendig sein, aber nur für den Fall, dass Du Dich vergewissern willst, dass die neuesten Werte aus der Variante bezogen werden. Hierfür klickst Du auf „Expertenmodus zur Profilgenerierung“ und wählst „Alten Stand lesen und mit den neuen Daten abgleichen“.

Stelle zudem hinaus sicher, dass die Rolle generiert wird.

Du kannst das nun testen, indem Du die Rolle Deinem Benutzer in der Transaktion PFCG oder SU01 vergibst und in der Transaktion BP das Ergebnis überprüfst, wenn Du eine Gruppierung ungleich der eingestellten nutzt.

Ü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