In jedem Employee Self Service Projekt steht das Projektteam irgendwann vor dieser einen nicht trivialen Frage: Wie differenziert man den Zugang zu bestimmten Self-Services je Benutzergruppe oder zu bestimmten Zeiträumen? Vor EHP5 gab es mittels Homepage Framework bereits für die Web Dynpro Java Welt einige, wenn auch sehr aufwändige Lösungen, eine Dynamisierung zu erreichen. Seit der Neuauflage der Self-Services mit EHP5 stellt SAP eine einfache und effiziente Möglichkeit zur Verfügung bei jedem Menüaufruf durch den Benutzer, dynamisch zu entscheiden, welche Services diesem Benutzer zur Bearbeitung angezeigt werden. Um dies zu erreichen, können Sie das BAdI HRESS_MENU implementieren. Wir möchten Ihnen dies an zwei kurzen Anwendungsbeispielen erläutern.
Fall 1: Zugriff auf einen Service abhängig von benutzerspezifischen Eigenschaften
Beispiel: Zugriff auf das Administrator Tool iProPSM in Abhängigkeit der Rollenzuordnung des Users
iProPSM ist ein, von der iProCon GmbH entwickeltes, Tool zur Administration von Ad-hoc Vertretungen für Workflows. Es ermöglicht Ihnen dabei unter anderem auch die Weiterleitung von Workitems für den Fall, dass ein Mitarbeiter keine Vertretung für sich hinterlegt hat oder der benannte Vertreter ebenfalls abwesend ist. Weitere Informationen zum iProPSM Tool finden Sie hier.
Wenn Sie dieses Tool als Service über ESS Menü zur Verfügung stellen, den Zugriff aber auf Mitarbeiter der HR-Administration begrenzen möchten, können Sie nun entweder eine zweite Portalrolle schaffen und diese den Administratoren manuell zuordnen oder Sie automatisieren bequem den Zugriff auf diesen Service durch Auswertung der ABAP-Rollen des angemeldeten Benutzers.
Um dies zu realisieren, wird zunächst ein Anwendungsalias als eindeutiger Name für die Anwendung iProPSM im Launchpad über die Transaktion LPD_CUST erstellt.
Der hier festgelegte Anwendungsalias dient nunmehr als Filterwert für die Erweiterungsimplementierung des BAdIs HRESS_MENU (in diesem Beispiel ist das ZHR_ESS_MENU_DYNAMIC).
In der BAdI-Implementierung werden zwei Methoden zur Implementierung angeboten. Die Methode MODIFY_FOLDER_ATTRIBUTES steuert dabei die dynamischen Eigenschaften von Ordnern und Unterordnern im Launchpad. Sinngemäß werden die Eigenschaften von einzelnen Services dann über die Methode MODIFY_APPLICATION_ATTRIBUTES bearbeitet. Wichtig ist es dabei zu wissen, dass ein Ordner (Folder) einen Abbruch verursacht, wenn alle Anwendungen über die Methode MODIFY_APPLICATION_ATTRIBUTES ausgeblendet sind. In einem solchen Fall sollten Sie den gesamten Ordner bearbeiten bzw. ausblenden.
Ausblenden der Anwendung iProPSM für nicht-HR-Administratoren
Über den Parameter IV_APPLICATION_ALIAS können Sie in der Methode MODIFY_APPLICATION_ATTRIBUTES auf den Anwendungsalias der ESS Anwendungen zugreifen und damit das gewünschte Verhalten anwendungsspezifisch steuern.
In diesem Fall wird ein Mitarbeiter der HR Administration durch eine speziell zugewiesene Benutzerrolle identifiziert. Wird diese bei der Prüfung innerhalb der Methode für den aktiven User nicht gefunden, so kann:
- der Parameter CV_ISDISABLED gesetzt werden => Der Service ist für den Mitarbeiter sichtbar, aber nicht aufrufbar
- der Parameter CV_ISVISIBLE auf ‚ ‚ gesetzt werden => Der Service ist für den Mitarbeiter nicht sichtbar
- Bei Bedarf kann über den Parameter CV_TEXT ein erklärender Text angezeigt werden, wie „Sie haben keine Berechtigung für diese Anwendung“.
Fall 2: Zugriff auf einen Service abhängig vom aktuellen Zeitpunkt
Beispiel: Sperre abrechnungsrelevanter ESS Services während des Abrechnungslaufs
Es kommt immer wieder vor, dass während eines Abrechnungslaufes Mitarbeiter die eigene Personalnummer sperren, weil diese zeitgleich eine ESS Anwendung geöffnet haben. Um dies zu verhindern, können Sie die relevanten Services für den definierten Abrechnungszeitraum sperren und dem Nutzer dies gleichzeitig als Information anzeigen.
In unserer Lösung werden dazu die Sperrzeiträume in einer kundeneigenen Anwendungstabelle gepflegt. Diese enthält Zeitpunkt und Dauer der Sperrung, sowie eine Zuordnung der zu sperrenden ESS Services.
Gruppierung der zu sperrenden ESS Services
Um hier den Pflegeaufwand zu minimieren, wurden die relevanten ESS Services in einer anderen Anwendungstabelle zuvor in Gruppen zusammengefasst. So muss z.B. immer nur ein Eintrag zur Sperre aller abrechnungsrelevanten Services gepflegt werden.
Realisierung der Sperre mit BAdI HRESS_MENU
Nachdem die Zuordnung zwischen Sperrzeitraum und Anwendungsalias des ESS Services hergestellt wurde, wird die Ausführung der Sperre durch eine Erweiterungsimplementierung des BAdIs HRESS_MENU realisiert. Analog zur Umsetzung des dynamischen Zugriffs auf das iProPSM Tool, stehen hier die Methoden MODIFY_FOLDER_ATTRIBUTES und MODIFY_APPLICATION_ATTRIBUTES zur Verfügung. In diesem Fall werden alle Services, für welche die Prüfung auf einen vorliegende Abrechnungssperre relevant ist, als Filterwerte (Anwendungsalias) der Implementierung gesetzt. Alternativ kann auch ein leerer Filterwert gesetzt werden, was sicherstellt, dass die Implementierung für alle Services durchlaufen wird. Dies ist insbesondere im Hinblick auf die Integration weiterer Services sinnvoll, da diese nun lediglich in der Tabelle nachgepflegt werden müssen, die Implementierung des BAdIs HRESS_MENU jedoch nicht erneut angepasst werden muss.
Über die zuvor erstellten Tabellen ist nun die Prüfung auf den Sperrzeitraum und die zu diesem Sperrzeitraum gehörigen Services in den Methoden möglich. Entsprechend können nun die Parameter zu Verfügbarkeit der Application und Folder bearbeitet werden. Zusätzlich wird hier aus der Tabelle der Sperrzeiträume das Beginn- und Endedatum der Sperre gelesen und dem Benutzer zur Information ausgegeben.








