General

In the SAP-System each user may be assigned a "Role". A role is a collection of discrete activities and rights.  Over 1000 individual roles are predefined and delivered in the standard SAP system, for example 

  • SAP_FI_AR_CLEAR_OPEN_ITEMS Clear open debtor items
  • SAP_FI_AR_CHANGE_LINE_ITEMS Change debtor line items
  • SAP_LO_MD_CUSTOMER_MAINTAIN Customer maintenance
  • SAP_SD_FT_ADMINISTRATION Foreign trade administration
  • ...

The individual roles can be combined to form role groupings which correspond to real-world duty statements and job descriptions. Each user can possess several roles, individual ones and/or groupings. When she logs into the system she obtains a tailor-made user menu and profile of rights and duties, in line with her role definition. 

With GuiXT you can also role define layout and navigation within each transaction.

Depending on whether or not the user has a particular role, you can, for example

  • offer extra pushbuttons to facilitate navigation into further functions 
  • offer a restricted and meaningful choice of values in the form of radiobuttons
  • delete an entry field or make it read-only
  • add tips and help texts

Role definition

SAP Standard 

  • User menu
  • Authorization profile
  • miniApps (in SAPWorkplace)

with GuiXT 

  • Layout, Navigation, Texts, Tips...  within a transaction

 

Any modification you carry out with GuiXT can be carried out role specifically

 

Procedure

GuiXT offers the following models for role specific user interfaces:

  1. Query, has the user got a particular role: if Q[Role=xxx
  2. Query, has the user got a particular authorization profile: if Q[Profile=xxx
  3. Role specific allocation of script directory

The first solution is the best choice, being the most flexible one, based on the SAP core concept of a role. With the query if Q[Role=xxx] individual roles are automatically included in the role groupings.  
For reasons of performance all role names are locally cached on initial use. The access to  user roles and profiles requires the right authorization for the RFC user (GuiXT profile); see RFC (Remote Function Call).

The second solution makes sense if an SAP System prior to Rel. 4.5 is being used, in which role technology was not yet on offer.

Role specific allocation of script directory is possible in the  User catalog by means of Role=xxx or Profile=xxx for a group of users (all those who possess a certain role or a certain authorization profile). The drawback is that a user may have other roles, so special care must be taken. Perhaps a combination with  method 1 or 2 will be necessary.

 

Example 1

We assume that a certain user group is responsible for entering factory sales orders. There is a choice of only two divisions. All other fields have to be entered with predefined values.  You now wish to define a simplified opening screen. 

Standard opening screen  VA01:

Your new screen might look like this:

Corresponding GuiXT Script:

if Q[Role=SD_FACTORY_SALES]

  Title "Factory sales"

  Box (2,2) (5,40) "Division"
  Radiobutton (3,8) "Auto, bikes" [Division] "00"
  Radiobutton (4,8) "PC, Electronics" [Division] "07"

  Set [Order type] "ZBV"
  Set [Sales organization] "1000"
  Set [Distribution channel] "16"
  Set [Sales office] ""
  Set [Sales group] ""

  del [Organizational data]
  del [Order type] -triple

endif

Example 2

In  the customer master record display you offer a new pushbutton which leads directly to the payment history display.  The pushbutton should be shown only if the user has the role SAP_FI_AR_DISPLAY_CREDIT_INFO.

By clicking on "Payment history" the appropriate screen is immediately displayed:

The following scripts are necessary:

// GuiXT-Skript sapmf02d.d0700.txt
if Q[Role=SAP_FI_AR_DISPLAY_CREDIT_INFO]
  Pushbutton (toolbar) "Payment history"  "=FD33"  "F9"   "process=PaymentHistory.txt"
endif

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

In standard SAP the following additional steps would have to be carried out by the user to display the payment history. GuiXT+InputAssistant does away with this extra work.

The user wants to go to "Payment history". She has to know that it is to be found in "Credit management", and that "Credit management" is to be found in the "Environment" menu, not in "Goto" or "Extras".

 

Here she then has to click on "Payment history" and press enter.

By way of an historical footnote: When in SAP's pioneering days Dietmar Hopp and Hasso Plattner were developing the concept of a flexible user interface, they named it  "dynpro",  i.e. dynamic program, as a dynamic link between interface variants and application logic.  GuiXT's role specific interface is an extension of their successful concept - three decades down the track dynpro has tasted the elixir of youth and become even more dynamic.