Overblog
Edit post Folge diesem Blog Administration + Create my blog
SAPManDoo - SAP Resource

Der vorliegende Blog enthält von mir im Laufe meiner beruflichen Tätigkeit als SAP-Berater zusammengetragene Informationen / Beispiel-Codings zum Themenkreis SAP, speziell FI/CO.

GRWTAUTH - erweiterte Berechtigungsprüfung im Report-Writer-Umfeld

Veröffentlicht am 27. Juni 2022 von sapmandoo in S4, SAP Reports, CO

Über die SAP-Erweiterung GRWTAUTH lassen sich kundeneigene Berechtigungsprüfungen für Report-Writer-Berichte implementieren. In der genannten Erweiterung sind Prüfbausteine für Eingaben im Selektionsbild sowie auf Einzelsatzebene enthalten.

Um bspw. bei Berichten der Profitcenterrechnung unter S/4 eine Berechtigungsprüfung nach Buchungskreis zu verbauen, kann der Funktionsexit EXIT_SAPFGRWS_001: Kunden-Exit: Berechtigungsprüfung auf Einzelsatzebene in der Selektion verwendet werden.

Nachfolgend die Dokumentation zum Funktionsexit sowie ein Beispiel-Coding:

Kurztext

Kunden-Exit: Berechtigungsprüfung auf Einzelsatzebene in der Selektion

Funktionalität

Dieser Exit wird während der Datenselektion bei der Neuselektion von der Datenbank (I_DATA_SOURCE = 'S') und beim Lesen vom Archiv (I_DATA_SOURCE = 'A') für jeden einzelnen Datensatz aufgerufen. Der aktuelle Datensatz wird in dem untypisierten Parameter I_S_RECORD an den Exit übergeben, die zugehörige DDIC-Referenzstruktur in dem Parameter I_DB_TABLE.

Eine Standardprüfung wird nicht für alle Report-Writer-Tabellen durchgeführt. Die Standardprüfung, sofern die jeweilige Report-Writer-Tabelle eine solche unterstützt, erfolgt in dem Unterprogramm ( T804A-AUTHR) in dem der Report-Writer-Tabelle zugeordneten Formpool ( T804A-MPOOL).

Existiert eine Standardprüfung, so kann der Exit durch den Parameter E_SKIP_STANDARD_EXIT steuern, ob die Standardprüfung anschließend durchgeführt oder übersprungen werden soll. Wird die Standardprüfung anschließend durchgeführt, so entscheidet sie über die Berechtigung für den aktuellen Datensatz. Wenn der Exit die Ausnahme NO_AUTHORITY auslöst, sollte die Standardprüfung daher immer mit E_SKIP_STANDARD_EXIT = 'X' übersprungen werden.

Parameter

I_REPORTING_TABLE
I_REPORT_GROUP
I_DATA_SOURCE
I_DB_TABLE
I_S_RECORD
E_SKIP_STANDARD_EXIT

Exceptions

NO_AUTHORITY

Funktionsgruppe

XRWA


DATA: LS_ACDOCA TYPE ACDOCA.
IF I_DB_TABLE = ‘ACDOCA’.
  MOVE I_S_RECORD TO LS_ACDOCA.
* in LS_ACDOCA-RBUKRS steht nun der Buchungskreis des aktuell selektierten Datensatzes drin
* Berechtigungsprüfung Buchungskreis (über welches Berechtigungsobjekt das auch immer 
* gesteuert werden soll) z.B. Anzeige-Berechtigung Belege
   AUTHORITY-CHECK OBJECT 'F_BKPF_BUK'
           ID 'BUKRS' FIELD LS_ACDOCA-RBUKRS
           ID 'ACTVT' FIELD '03'.
 IF sy-subrc <> 0.  “Keine Berechtigung
   E_SKIP_STANDARD_EXIT = ‚X‘.
     RAISE NO_AUTHORITY.
   ENDIF. 
ENDIF.
Kommentiere diesen Post