SAP Function RS_ACCESS_PERMISSION - Lock/Unlock for DW Objects; Check Authorizations and Maintenance Language

Parameter Reference Type Length Default Optional Text
AUTHORITY_CHECK 0 'X' X Check authorization ('X'->yes, ' '->no) CHAR 1
DEVCLASS_GEN TADIR-DEVCLASS C 30 ' ' X
GENFLAG TADIR-GENFLAG C 1 ' ' X
GLOBAL_LOCK 0 ' ' X Great corr. lock (R3TR); space:LIMU-Sp. CHAR 1
LANGUAGE_UPD_EXIT TFDIR-FUNCNAME C 30 SPACE X Name FuBa for maintenance language change
MASTER_LANGUAGE SYST-LANGU C 1 SPACE X Maintenance language of overall object
MODE 0 'MODIFY' X Mode ('INSERT','MODIFY','SHOW','FREE') CHAR 6
OBJECT 0 Object (complete lock key) CHAR 40
OBJECT_CLASS 0 Obj. clss (ABAP,SCUA,SCRP,SLDB,T100... ) CHAR 4
REQUEST_LANGUAGE T002-SPRAS C 1 ' ' X Request language (for maintenance language test)
SUPPRESS_CORR_CHECK 0 ' ' X Switch off RS_CORR_CHECK ('X'-> yes) CHAR 1
SUPPRESS_CORR_CHECK_ALTOGETHER 0 ' ' X
SUPPRESS_EDITOR_LOCK_CHECK 0 ' ' X Switch off editor lock test ('X'->yes)
SUPPRESS_EXTEND_DIALOG 0 'X' X Disable dialog in enhancement test ('X': sets EXTEND)
SUPPRESS_LANGUAGE_CHECK 0 'X' X Disable maint. lang. test ('X'->yes) CHAR 1
SUPPRESS_LANGUAGE_DIALOG 0 ' ' X Disable dialogs in maintenance language test ('X'->yes)
SUPPRESS_UPGRADE_CHECK 0 ' ' X Disable SMODILOG test on UPGRADE flag ('X'->yes)
TRDIR_INF TRDIR u 170 X TRDIR entry for object (saves SELECTs)

Parameter Reference Type Length Text
DEVCLASS TADIR-DEVCLASS C 30 Development class
ERROR_INFO DDERR u 116 Error code of Workbench Organizer
EXTEND C C 0 Customer enhancement mode ('X'->yes)
FROZEN FLAG C 1
FROZEN_OBJECTS TPCHK_FROZEN_OBJECTS 0
KORRNUM E070-TRKORR C 20 Correction number (only with 'INSERT','MODIFY')
MODIFICATION_LANGUAGE SYST-LANGU C 1 Maintenance language of (sub-)object
NEW_MASTER_LANGUAGE SYST-LANGU C 1 Maintenance language of overall object
ORDERNUM E070-TRKORR C 20
TADIRE TADIR u 232 TADIR entry
TRANSPORT_KEY TRKEY u 198 Key for transport request (TADIR key)

Exception Text
CANCELED_IN_CORR User canceled correction system dialog box (F12
ENQUEUED_BY_USER Object locked by other user
ENQUEUE_SYSTEM_FAILURE Internal error in ENQUEUE function module
ILLEGAL_PARAMETER_VALUES Invalid value for MODE or OBJECT_CLASS
LOCKED_BY_AUTHOR Editor lock is set (only for SE38)
NO_MODIFY_PERMISSION User has no change authorization
NO_SHOW_PERMISSION User has no display authorization
PERMISSION_FAILURE General exception: Required access denied
REQUEST_LANGUAGE_DENIED Unpermitted request language


RS_ACCESS_PERMISSION is a function module that centralizes those checksand actions that are necessary to edit, display and (after editing)release the following object classes:
- Programs
- Text elements of programs
- Attributes of programs
- User-defined types
- Screens
- Useer interfaces
- ABAP/4 Dictionary objects
- Logical databases
- Messages
- EFM objects
- EDM objects
- Dictionary objects
- Function modules and groups (incl. test sequences)
- Transaction codes
- Dialog modules
- Parameter IDs
- CATT objects
RS_ACCESS_PERMISSION has the following application requirements:
  • 1. The authorization object S_EDITOR is assigned to all object classes
  • with the exception of Dictionary objects and documentation.
    The authorization object S_ADMI_FCT is provisionally assigned toDictionary objects.
    The authorization objects of both the editor and Dictionary objects areassigned to user-defined types.
    • 2. All object classes with the exception of Dictionary objects use the
    • authorizations
      S_ABAP_SHOW ... Authorization to display objects
      S_ABAP_ALL ... Authorization to display and maintain objects
      Dictionary objects use the authorization DDIC.
      Meaning and values of important parameters:
      OBJECT_CLASS Class of DW object Lock object
      'ABAP' ... Report/module pool/include (edit in ESRDIRE
      SE38)
      'TEXT' ... Text elements of a report/module pool EABAPTEXTE
      'ABAT' ... Attributes of a report/module pool ERSDIRE +
      EABAPTEXTE
      'TYPE' ... User-defined types ESRDIRE
      'SCUA' ... SCUA user interface ESCUAPAINT
      'SCRP' ... Screen processing with Screen Painter ESCRP
      'SLDB' ... Logical databases ESRDIRE
      'T100' ... Messages ES_MSGSI
      'SUFM' ... EFM objects ESFUM
      'SUDM' ... EDM objects ESDUM
      'FUNC' ... Function modules ESFUNCTION
      'FUGR' ... Function groups ES_PROG
      'TRAN' ... Transaction codes EEUDB
      'DIAL' ... Dialog modules EEUDB
      'PARA' ... Parameter IDs EEUDB
      'DICT' ... ABAP/4 Dictionary object ESDICT
      'SCAT' ... CATT object CATA
      'CATU' ... CATT object (variants) CATU
      OBJECT e.g. lock keys of the DW object according to the
      lcok object; special structures that contain at least
      the lock key, for 'EDM', 'EFM'
      MODUS Intended processing mode
      'MODIFY' ... Maintenance mode (object to be changed)
      'INSERT' ... Maintenance mode (object recreated and needs
      an entry in the Table TADIR)
      'SHOW' ... Display mode (object cannot be changed)
      'FREE' ... End of object processing
      AUTHORITY_CHECK Authorization chekc yes/no
      ' ' ... Authorization check suppressed
      'X' ... Authorization check performed
      (default)
      Depending on the MODE and AUTHORITY_CHECK, the function module performsthe following steps:
      Mode 'MODIFY'/'INSERT':
      Checks whether
      - if AUTHORITY_CHECK = 'X':
      . the user has the authorization S_EDITOR_ALL for
      authorization object S_EDITOR or
      . for 'DDIC': the user has the authorization DDIC for
      authorization object S_ADMI_FCT or
      - long-term lock (correction system) is effective
      - if SUPPRESS_CORR_CHECK = ' ':
      . no lock is effective through non-translated texts (textlog)
      - short-term lock (ENQUEUE) is effective
      - the original language of the DW object to be processed
      (import parameter MASER_LANGUAGE) matches the logon language.
      If the languages differ, you can branch immediately to
      "Change original language" where the conversion to another
      language is triggered. The translation tools are integrated
      into the conversion. The conversion is performed for all
      relevant sub-objects together (e.g. a program includes not
      just the ABAP/4 text elements, but also all GUI components
      and all screens).
      After the translation tools, processing branches to a
      function module specified in the parameter LANGUAGE_UPD_EXIT.
      There, you must program those parts of the language conversion
      that are not connected with pure translation of texts.
      - an SAP object is to be processed in a customer system and that
      the import parameter MASTER_LANGUAGE matches the logon language.
      If they differ, the value of MODIFICATION_LANGUAGE is set
      to the value of MASTER_LANGUAGE.
      If they match, the user must decide in a dialog box whether
      he wishes to process the DW obejct in the SAP maintenance
      language (MASTER_LANGUAGE) or in the logon language, and
      MODIFICATION_LANGUAGE is then set accordingly. If, after
      returning from RS_ACCESS_PERMISSION, the parameters
      NEW_MASTER_LANGUAGE and MODIFICATION_LANGUAGE do not match,
      the DW object must be offered for processing in the language
      MODIFICATION_LANGUAGE and missing texts supplemented from the
      NEW_MASTER_LANGUAGE.
      If all checks are successful, the object is locked (with ENQUEUE).
      It is also locked if the check for a match between the original
      language and the logon language fails but the user decides in the
      dialog not to switch the original language, i.e. to maintain in
      the logon language.
      In the 'INSERT' mode, a correction system dialog box always appears.
      Here, you must specify the development attributes of the new object.
      'SHOW' mode:
      Checks whether the user has the authorization S_EDITOR_SHOW
      for the authorization object S_EDITOR.
      No authorization is checked for DDIC and DOCU.
      If the check is successful, the object is unlocked, apart from ABAP/4
      Dictionary objects (with ENQUEUE).
      'FREE' mode:
      The object is unlocked (with DEQUEUE).
      Interaction with other function modules:
      In 'MODIFY' mode, RS_ACCESS_PERMISSION calls the function moduleRS_CORR_CHECK which checks whether the correction system has set along-term lock. If access is not denied by the correction system and ifthe object to be processed is not yet contained in a correction, theobject is n o t y e t included in a correction. This happens onlywhen RS_CORR_INSERT is called. This function module must be bound tothe saving of the object to be processed. In 'MODIFY' mode, theprocessing of an object typically looks as follows:
      Begin processing: RS_ACCESS_PERMISSION with mode = 'MODIFY'
      (first) save: RS_CORR_INSERT
      End of processing: RS_ACCESS_PERMISSION mit Modus = 'FREE'
      Special features of EXCEPTIONs:
      - Normally, all exceptions are triggered in the form
      MESSAGE .... RAISING ....
      An exception to this rule is PERMISSION_FAILURE which is taken over
      by RS_CORR_CHECK and passed on with RAISE . You can assume that this
      this exception occurs only if the correction system has already
      conducted an error dialog with the user.
      - ENQUEUED_BY_USER Object locked by another user; on return from
      RS_MODE, the name of this user can be found
      in SY-MSGV1.

1448422Deleting enhancement objects only in original language
1404965No navigation from "Technical Information" in SE80
1085326Security Note: Check for 'System -> Status' (SE80)