Hallo,
vielen Dank für die schnelle Antwort. Das macht die Sache schon ein wenig verständlicher für mich.
Ich hatte hierzu gelesen:
Dabei prüft das System wie folgt: Alle Werte innerhalb einer Berechtigung werden mit einem logischen UND geprüft, alle Einzelberechtigungen mit einem logischen ODER.
(S. 17; Techniken im SAP-Berechtigungswesen; Dr. Bernd Klüppelberg; 1. Aufl. 2014).
Mir fehlte dort nur die Definition was ist "innerhalb einer Berechtigung" und was gilt als Einzelberechtigung.
Als Beispiel danach wird aufgeführt:
Obj1-Ausprägung 1:
ACTVT = 02,03
BUKRS = 002
Obj1-Ausprägung 2:
ACTVT = 01
BUKRS = 001
Obj2-Ausprägung 1:
ACTVT = 02,06
BUKRS = 002
Wird das Objekt 1 mit
AUTHORITY-CHECK-OBJECT 'Obj1'
ID 'BUKRS' FIELD '002'
ID 'ACTVT; FIELD '01'
geprüft, dann prüft das System: Hat der Benutzer beim Objekt 1 die Werte ACTVT = 01 und BUKRS = 002 in der Rolle?
Somit trifft das Programm auf:
> ACTVT = 02 und BUKRS = 002 ist in der Rolle => Vergleich falsch
oder ACTVT = 03 und BUKRS = 002 ist in der Rolle => Vergleich falsch
oder ACTVT = 03 und BUKRS = 002 ist in der Rolle => Vergleich falsch
Der Benutzer hat die Berechtigung also nicht.
Prüft das Programm aber das Objekt 1 mit
AUTHORITY-CHECK-OBJECT 'Obj1'
ID 'BUKRS' FIELD '001'
ID 'ACTVT; FIELD '01'
dann prüft das System: 01 und 001 in der Rolle?
Also trifft es auf:
> 02 und 002 ist in der Rolle => Vergleich falsch
> 03 und 002 ist in der Rolle => Vergleich falsch
> 01 und 001 ist in der Rolle => Vergleich ist OK
Der Benutzer hat die Berechtigung!
(S. 18-19; Techniken im SAP-Berechtigungswesen; Dr. Bernd Klüppelberg; 1. Aufl. 2014).
Kann ich also davon ausgehen, dass immer wenn ein Orgfeld (z.B. $BUKRS, $SPART, $VKORG, $VTWEG, etc.) involviert ist, eine UND Verknüpfung der dazugehörigen Felder abgefragt wird? Das würde für mich passen, da die PFCG über die OrgSet-Funktion keine unterschiedlichen OrgSets für das gleiche Objekt einer Rolle zulässt.
Ich habe das leider nie irgendwo explizit erklärt nachlesen können.
Viele Grüße
Peter