Konsistenzprüfung: PFCG Rollen zwischen SAP Systemen vergleichen mit Excel
Autor: Tobias Harmes | 8. Juni 2020
Unser Leser Gerd Binder hat eine Excel-Datei für den Vergleich von Versionsständen von PFCG Rollen zwischen SAP Systemen entwickelt. Er hat mit der im Anhang enthaltenen Excel-Tabelle einen Konsistenzcheck bei >1000 Rollen gemacht und alle Arten von Inkonsistenzen gefunden. Im Beitrag teilen wir seine Anleitung und die Excel-Datei als Download.
Der im Standard vorhandene Rollenvergleich stößt leider an die Grenzen, wenn es um viele hundert Rollen geht. Auch will man oft gar nicht die Unterschiede im Detail wissen, sondern einfach nur: wo weicht die Rolle von der Version im Entwicklungssystem ab? Zum Beispiel durch Up/Download von Rollen, fehlende Transporte, Systemkopien. Die hier vorgestellt Lösung basiert auf Excel und auf dem Export der Tabelle AGR_DEFINE aus den jeweiligen Systemen der Systemlinie. Diese Tabelle enthält neben dem Namen auch das Datum der letzten Änderung. Auf dieser Grundlage können die Excel-Formeln dann aus der Sicht des jeweiligen Systems bestimmen, ob die Rollen auf den benachbarten Systemen, neuer oder älter sind oder vielleicht sogar ganz fehlen.
Wer gleich loslegen will, hier der Download:
Im Folgenden erklärt Gerd Binder die einzelnen Schritte im Detail:
Ausgangslage
Ich gehe von einem 3-Schichten-System aus mit SYE (Entwicklung), SYQ (Qualitätssicherung/Test) und SYP (Produktivsystem). Zunächst werden mit Hilfe von z.B. SE16N aus allen drei Systemen die kundeneigenen Rollen (i.d.R. Y* und Z*) ausgewählt. Die zu selektierenden drei Werte findet man in der DB-Tabelle AGR_DEFINE in den Feldern AGR_NAME, CHANGE_DAT und CHANGE_TIME. Aus den drei Ergebnislisten baut man eine EXCEL-Datei mit drei Blättern (SYP, SYQ, SYE):
Ich habe den Download durch eigene manuelle Einträge in die einzelnen Blätter simuliert.
Es bietet sich an, zumindest für die Überschriften verschiedene Farben zu benutzen. Für spätere Vergleichsbefehle muss man Datum und Zeit in einem Verkettungsbefehl als Text jeweils in Spalte E formatieren. Dadurch kann man weiter hinter die Vergleichsoperatoren „<“ und „>“ verwenden.
Der entsprechende Befehl für die erste Zeile ist =VERKETTEN(TEXT(C2;“JJJJMMTT“);“_“;TEXT(D2;“HHMMSS“))
Meine erstellten drei Blätter sollen möglichst alle denkbaren Fälle abdecken – so gibt es eine Rolle auf SYE, die noch gar nicht transportiert wurde und eine, die nur bis SYQ transportiert wurde. Außerdem wurden auch in SYP manuell Änderungen an Rollen vorgenommen, die nicht aus Transporten kommen.
Als nächster Schritt wird auf Blatt SYP die Spalte VERGL_ZEIT_SYQ eingerichtet und alle Zeilen durch einen SVERWEIS auf das Feld Zeitstempel des Blattes SYQ gefüllt.
Der entsprechende Befehl sieht wie folgt aus : =SVERWEIS(B2;SYQ!$B$2:$E$15;4;FALSCH)
Wichtig: Bei der Angabe des Suchbereichs ist zwingend eine absolute Feldangabe mit Hilfe der Dollarzeichen $ nötig. Der Suchbereich sollte großzügig angegeben werden, also gerne $B$“:$E$1200, wenn zum Beispiel ca. 1100 Rollen vorhanden sind und durchsucht werden müssen. Da der Zeitstempel zu Rolle Z:FI_KRED_ANZ_NUR_IN_P nicht gefunden werden kann, wird der Nicht-Vorhanden-Wert #NV ausgegeben, also haben wir hier die erste gefundene Inkonsistenz.
Der nächste Schritt ist nun der Vergleich der einzelnen Zeitstempel in Spalte G (Ergebnis).
Der entsprechende Befehl ist =WENN(E2=F2;“okay“;“falsch“). Dabei wird der Bezug natürlich relativ angegeben und mit der Kopierfunktion auf die Folgezeilen übertragen. Wenn man nun noch wissen möchte, ob der Zeitstempel aus Sicht des Systems SYP älter oder neuer ist, kann man noch die Spalten H und I mit folgenden Formeln anhängen: =WENN(E2>F2;“neuer“;“ „) und =WENN(E2<F2;“älter“;“ „).
Bei der nur in SYP vorhandenen Rolle erscheint dann als Fehlerhinweis der Wert #NV.
Das Gleiche kann nun noch für das Entwicklungssystem mit demselben Verfahren als weitere Spalten angelegt werden – nur ändern sich die Verweisangaben und Vergleichsfelder.
Es macht Sinn, die gleichen Auswertungen auch auf den weiteren Blättern zu machen, da nur so solche Fälle wie „Rolle nur in SYE“ oder „Rolle nur bis SYQ transportiert“ erfasst werden können. Die Formelangaben sind adäquat wie auf Blatt SYP. Nur alles aus Sicht der anderen Systeme SYQ und SYE (Details siehe auch anhängender EXCEL-Datei) – hier noch die Ausgabesichten:
Hier sieht man in Zeile 13, dass die Rolle in SYP nicht existiert.
Hier sieht man in Zeile 6, dass die Rolle lediglich auf SYE angelegt wurde.
Ob der eine oder andere Fall ein Fehler ist oder es genauso wie gewollt ist, muss dann individuell pro Rolle festgelegt werden. Bei dieser Untersuchung kann man auf die, in einem andere RZ10-Dokument beschriebene Vorgehensweise eines systemübergreifenden Rollenvergleich auf Objekt- und Feldwertebene, zurückgegriffen werden.
Herzlichen Dank an unseren Leser Gerd Binder für diese tolle Lösung! Wenn Sie selbst Lösungen aus der Praxis für die Praxis haben und diese teilen wollen, gerne melden unter harmes@rz10.de.