REPORT ZZAUT002 MESSAGE-ID Z1. *----------------------------------------------------------------------* * Topic: Utillity for Maintenance Authorizations. * * * * Description: Enhanced maintenance function for maintenance the aut- * * horizations in SAP R/3. With this program you enter the * * authorization object name, and authorizations. * * * * Implementing The program is client independent. The program does not * * respond to F8=EXECUTE but only respond to pushbuttoms. * * * * Authoriza. Standard authorization checks as in the normal editor. * * * * Submitting: Run by SA38, SE38. * * * * Parametre: Object, Authorizations. * * * * Output: Files on the desktop or presentation server: * * * * Customizing: No need for customization. * * * * Change of You only need to do the syntax check at releasechage. * * release: * * * * R/3 Release: Developed and tested in R/3 Release: * * 3.0F * * * * Programmer: Benny G. Sørensen * * Date: Nov 1996. * * * *------------------------------ Questions -----------------------------* * Version 2 *-------------------------------Corrections----------------------------* * Date Userid Correction Text * * ::.::.:::: :::::::: :::::::::::::: ::::::::::::::::::::::::::::: * *----------------------------------------------------------------------* INCLUDE MS01CTCO. *----------------------------------------------------------------------* * Tables *----------------------------------------------------------------------* TABLES: USR12 ,USR13 ,SSCRFIELDS, TOBJ. *----------------------------------------------------------------------* * Parameters * *----------------------------------------------------------------------* SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001. PARAMETERS: P_OBJCT LIKE USR13-OBJCT DEFAULT ''. SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN COMMENT 1(31) TEXT-105 . PARAMETERS: P_AUTH LIKE USR13-AUTH DEFAULT '4XXX_'. * ,p_text like usr13-atext default ''. SELECTION-SCREEN END OF LINE. PARAMETERS: P_MASK LIKE USR13-AUTH DEFAULT '4*'. SELECTION-SCREEN END OF BLOCK BLK1. SELECTION-SCREEN FUNCTION KEY 1. "Insert SELECTION-SCREEN FUNCTION KEY 2. "Change SELECTION-SCREEN FUNCTION KEY 3. "List *----------------------------------------------------------------------* * Work Variables and internal tables *----------------------------------------------------------------------* DATA: BEGIN OF W_AUTH OCCURS 10 ,AUTH LIKE USR13-AUTH ,FILLER(5) TYPE C ,TEXT LIKE USR13-ATEXT ,END OF W_AUTH. *----------------------------------------------------------------------* * Constants *----------------------------------------------------------------------* DATA: FAIL TYPE I VALUE 1 ,OK LIKE SY-SUBRC VALUE 0 "Code for Ok ,ERROR LIKE SY-SUBRC VALUE -1 "Code for error ,RETURN_CODE LIKE SY-SUBRC VALUE -1 "Code for error ,YES TYPE I VALUE 1 "Boolean = YES ,NO TYPE I VALUE 0 "Boolean = NO ,EXISTS TYPE I VALUE 0 "Boolean = YES/NO . *----------------------------------------------------------------------* * EVENT: Initialization *----------------------------------------------------------------------* INITIALIZATION. SSCRFIELDS-FUNCTXT_01 = TEXT-003. "Insert SSCRFIELDS-FUNCTXT_02 = TEXT-004. "Change SSCRFIELDS-FUNCTXT_03 = TEXT-005. "List *----------------------------------------------------------------------* * EVENT: validate users entries on the selection screen * *----------------------------------------------------------------------* AT SELECTION-SCREEN. IF SSCRFIELDS-UCOMM = 'FC01'. PERFORM EXISTS_OBJECT USING P_OBJCT RETURN_CODE. IF RETURN_CODE NE OK AND RETURN_CODE NE 2. MESSAGE E000 WITH TEXT-102. EXIT. ENDIF. PERFORM MAINTAIN_AUTHORIZATION USING P_OBJCT P_AUTH. ENDIF. IF SSCRFIELDS-UCOMM = 'FC02'. PERFORM EXISTS_OBJECT USING P_OBJCT RETURN_CODE. CASE RETURN_CODE. WHEN 1. MESSAGE E000 WITH TEXT-102. WHEN 2. MESSAGE E000 WITH TEXT-103. ENDCASE. CHECK RETURN_CODE = OK. PERFORM MAINTAIN_AUTHORIZATION USING P_OBJCT P_AUTH. ENDIF. IF SSCRFIELDS-UCOMM = 'FC03'. PERFORM LIST_AUTHORIZATION. ENDIF. * p_text = usr13-atext. SSCRFIELDS-UCOMM = 'ONLI'. *----------------------------------------------------------------------* * EVENT: Start-Of-Selection *----------------------------------------------------------------------* START-OF-SELECTION. *&---------------------------------------------------------------------* *& Form MAINTAIN_AUTHORIZATION *&---------------------------------------------------------------------* FORM MAINTAIN_AUTHORIZATION USING P_OBJCT LIKE USR13-OBJCT P_AUTH LIKE USR13-AUTH. CALL FUNCTION 'MAINT_AUTHORIZATION' EXPORTING AUTHNAME = P_AUTH OBJECTNAME = P_OBJCT EXCEPTIONS FOREIGN_LOCK = 1 NO_AUTHORIZATION = 2 SYSTEM_FAILURE = 3 OTHERS = 4. IF SY-SUBRC NE OK. MESSAGE E000 WITH TEXT-101. ENDIF. ENDFORM. " MAINTAIN_AUTHORIZATION *&---------------------------------------------------------------------* *& Form EXISTS_OBJECT *&---------------------------------------------------------------------* FORM EXISTS_OBJECT USING P_OBJCT LIKE TOBJ-OBJCT RETURN_CODE LIKE SY-SUBRC. RETURN_CODE = OK. SELECT SINGLE * FROM TOBJ WHERE OBJCT = P_OBJCT. IF SY-SUBRC NE OK. RETURN_CODE = 1. EXIT. ENDIF. SELECT * FROM USR13 WHERE OBJCT = P_OBJCT AND AUTH = P_AUTH AND LANGU = SY-LANGU . ENDSELECT. IF SY-SUBRC NE OK. RETURN_CODE = 2. EXIT. ENDIF. ENDFORM. " EXISTS_OBJECT *&---------------------------------------------------------------------* *& Form LIST_AUTHORIZATION *&---------------------------------------------------------------------* FORM LIST_AUTHORIZATION. DATA: CHOISE LIKE SY-TABIX. CLEAR W_AUTH. REFRESH W_AUTH. TRANSLATE P_MASK USING '*%'. TRANSLATE P_AUTH USING '*%'. SELECT * FROM USR13 WHERE OBJCT = P_OBJCT AND LANGU = SY-LANGU AND AUTH LIKE P_MASK. W_AUTH-AUTH = USR13-AUTH. W_AUTH-TEXT = USR13-ATEXT. APPEND W_AUTH. ENDSELECT. CHECK SY-SUBRC = OK. CALL FUNCTION 'POPUP_WITH_TABLE_DISPLAY' EXPORTING ENDPOS_COL = 90 ENDPOS_ROW = 15 STARTPOS_COL = 10 STARTPOS_ROW = 10 TITLETEXT = 'Autorisationer' IMPORTING CHOISE = CHOISE TABLES VALUETAB = W_AUTH EXCEPTIONS BREAK_OFF = 1 OTHERS = 2. IF CHOISE NE SPACE. READ TABLE W_AUTH INDEX CHOISE. PERFORM MAINTAIN_AUTHORIZATION USING P_OBJCT W_AUTH-AUTH. ENDIF. ENDFORM. " LIST_AUTHORIZATION