Allgemeines

Im SAP-System kann jedem Benutzer eine "Rolle" zugeordnet werden. Eine Rolle ist eine Sammlung  einzelner Aktivitäten und Berechtigungen.  Über 1000 Einzelrollen sind von SAP bereits vordefiniert und im Standardsystem ausgeliefert, z.B.  

  • SAP_FI_AR_CLEAR_OPEN_ITEMS Debitorenposten ausgleichen
  • SAP_FI_AR_CHANGE_LINE_ITEMS Debitorenposten ändern
  • SAP_LO_MD_CUSTOMER_MAINTAIN Kundenstammpflege
  • SAP_SD_FT_ADMINISTRATION Außenhandel - Administration
  • ...

Aus den Einzelrollen können Sammelrollen zusammengesetzt werden, die  konkrete Stellenbeschreibungen abbilden. Jeder Benutzer kann Inhaber mehrerer Rollen (Sammelrollen oder Einzelrollen) sein. Bei der Anmeldung im System erhält er durch die Rollendefinition ein auf seine Aufgaben zugeschnittenes Benutzermenü und Berechtigungsprofil. 

Mit GuiXT können Sie  darüberhinaus auch Layout und Navigation innerhalb jeder Transaktion rollenbasiert definieren.

Abhängig davon, ob dem Benutzer eine bestimmte Rolle zugeordnet ist oder nicht, können Sie zum Beispiel

  • zusätzliche Drucktasten anbieten, um die Navigation zu weiteren Funktionen zu erleichtern 
  • nur eine Auswahl von Werten in Form von Radiobuttons anbieten
  • ein Eingabefeld ausblenden oder die Eingabebereitschaft wegnehmen
  • spezielle Hilfetexte einblenden

Rollenzuordnung 

SAP Standard 

  • Benutzermenü
  • Berechtigungsprofil
  • miniApps (im SAPWorkplace)

mit GuiXT 

  • Layout, Navigation, Texte, Hilfe,...  innerhalb der Transaktion
Sie können alle Veränderungen, die mit GuiXT möglich sind, rollenspezifisch durchführen
Vorgehen

GuiXT bietet folgende Modelle zur rollenspezifischen Gestaltung der Benutzeroberfläche an:

  1. Abfrage, ob der Benutzer Inhaber einer bestimmten Rolle ist: if Q[Role=xxx] 
  2. Abfrage, ob der Benutzer ein bestimmtes Berechtigungsprofil besitzt: if Q[Profile=xxx
  3. Rollenspezifische Zuordnung der Scriptverzeichnisse

Die Abfrage auf eine Rolle ist  die beste Lösung, da sie flexible Möglichkeiten bietet und auf dem für die Personalisierung des SAP Systems zentralen Begriff der Rolle aufbaut. Bei der Abfrage if Q[Role=xxx] werden  zu den Sammelrollen die entsprechenden Einzelrollen automatisch dazugenommen.  
Aus Performance-Gründen erfolgt eine lokale Pufferung aller Rollennamen bei dem ersten Zugriff. Für den Zugriff auf die Benutzerrollen benötigt der im GuiXT Profile genannte RFC-Benutzer die entsprechenden Berechtigungen, siehe RFC (Remote Function Call).

Die Abfrage auf ein Berechtigungsprofil ist in SAP Systemen vor Rel. 4.5 sinnvoll, in denen die Technologie der Rollen noch nicht zur Verfügung steht. 

Die feste Zuordnung eines eigenen Scriptverzeichnisses kann im Benutzerkatalog erfolgen, indem durch Role=xxx oder Profile=xxx für eine Gruppe von Benutzern (alle Inhaber der Rolle oder des Berechtigungsprofils)  die Scriptverzeichnisse zugeordnet werden. Da unter Umständen Benutzer simultan auch Inhaber anderer Rollen sind, ist hier allerdings Vorsicht geboten und eventuell eine Kombination mit den Verfahren 1 oder 2 nötig.

Beispiel 1

Von einer bestimmten Benutzergruppe wird die Auftragserfassung  für die Auftragsart "Werksverkauf" durchgeführt. Es kommen dabei nur zwei Sparten in Frage. Die übrigen Felder der Einstiegsmaske haben feste Belegungen. Sie möchten daher für den Werksverkauf eine einfache Einstiegsmaske definieren.

Standardeingabemaske VA01:

Maske für die Benutzer im Werksverkauf:

GuiXT Script hierzu:

if Q[Role=SD_WERKSVERKAUF]

  Title "Werksverkauf"

  Box (2,2) (5,40) "Sparte"
  Radiobutton (3,8) "Auto, Motorrad, Roller" [Sparte] "00"
  Radiobutton (4,8) "PC, Elektonik" [Sparte] "07"

  Set [Auftragsart] "ZBV"
  Set [Verkaufsorganisation] "1000"
  Set [Vertriebsweg] "16"
  Set [Verkaufsbüro] ""
  Set [Verkäufergruppe] ""

  del [Organisationsdaten]
  del [Auftragsart] -triple

endif

Beispiel 2

In  der Anzeige des Kundenstammsatzes bieten Sie eine zusätzliche Drucktaste an, die unmittelbar zur Anzeige des Zahlungsverhaltens des Kunden führt. Die Drucktaste soll nur dann erscheinen, wenn der Benutzer Inhaber der Rolle SAP_FI_AR_DISPLAY_CREDIT_INFO ist.

Bei Klick auf "Zahlungsverhalten" wird sofort das entsprechende Bild angezeigt:

Das erreichen Sie mit folgenden Scripten:

// GuiXT-Script sapmf02d.d0700.txt
if Q[Role=SAP_FI_AR_DISPLAY_CREDIT_INFO]
  Pushbutton (Toolbar) "Zahlungsverhalten"  ="FD33"  "F9"   Process="PaymentHistory.txt"
endif

// InputScript PaymentHistory.txt
Screen sapmf02c.0100 
  Set C[Zahlungsverhalten]  "X"
  Enter

Im  SAP-Standard wären zusätzlich folgende Benutzeraktionen zur Anzeige des Zahlungsverhaltens nötig, die durch GuiXT+InputAssistant eingespart werden:

Suchen der Funktion "Kreditmanagement"  im Menü (unter Springen, Zusätze oder Umfeld)

Ankreuzen von  "Zahlungsverhalten", Enter.

 

Zum Schluss noch eine kleine historische Bemerkung: Als Dietmar Hopp und Hasso Plattner in den Anfangstagen der SAP  ein Objekt zur flexiblen Steuerung der Benutzeroberfläche realisierten, nannten sie es "Dynpro",  dynamisches Programm, da es ein dynamisches Bindeglied zwischen Oberflächenvarianten  und Anwendungslogik war.  Die rollenspezifische Gestaltung der Benutzeroberfläche mit GuiXT ist die Fortsetzung dieses erfolgreichen Konzepts - das Dynpro wird damit mit knapp 30 Jahren noch dynamischer.