REPORT ZYUTL002. *---------------------------------------------------------------------* * This program lists the user's auth. profiles. *---------------------------------------------------------------------* TABLES : USR01 , USR04 , USR10 , USR11 . SELECT-OPTIONS : XNAME FOR USR04-BNAME . DATA : BEGIN OF TABUSR OCCURS 200, BNAME LIKE USR04-BNAME , PROFILE LIKE USR10-PROFN, SAMPROF(1), PTEXT LIKE USR11-PTEXT, END OF TABUSR . DATA : RC LIKE SY-SUBRC , AKTIVATED VALUE 'A', COLECTPROF VALUE 'C', GENERPROF VALUE 'G' , MAXUSR TYPE I VALUE 300 , PROFLNG LIKE SY-FDPOS VALUE 12. " - Profile FIELD-SYMBOLS: <TEXT>. DATA PRINT_USERS_PROFILES. * ----------- SELECT * FROM USR01 WHERE BNAME IN XNAME . PERFORM READ_USR04 "User-Record lesen USING USR01-BNAME . ENDSELECT . LOOP AT TABUSR . CLEAR USR11. * Get the profile texts. SELECT SINGLE * FROM USR11 WHERE LANGU = SY-LANGU AND PROFN = TABUSR-PROFILE AND AKTPS = AKTIVATED. TABUSR-PTEXT = USR11-PTEXT. MODIFY TABUSR. ENDLOOP. PERFORM PRINT_USERS_PROFILES. *---------------------------------------------------------------------* * FORM READ_USR04 * *---------------------------------------------------------------------* FORM READ_USR04 USING VALUE(USER) . CLEAR USR04. SELECT SINGLE * FROM USR04 WHERE BNAME = USER. IF SY-SUBRC = 0. PERFORM FILL_TABUSR USING USER. LOOP AT TABUSR. CLEAR USR10. SELECT SINGLE * FROM USR10 WHERE PROFN = TABUSR-PROFILE AND AKTPS = AKTIVATED. IF USR10-TYP = COLECTPROF. TABUSR-SAMPROF = 'X'. ELSEIF USR10-TYP = GENERPROF. TABUSR-SAMPROF = 'G'. ELSE. CLEAR TABUSR-SAMPROF. ENDIF. MODIFY TABUSR. ENDLOOP. ELSE. CLEAR TABUSR. ENDIF. ENDFORM. *---------------------------------------------------------------------* * FORM FILL_TABUSR * *---------------------------------------------------------------------* FORM FILL_TABUSR USING VALUE(USER) . DATA: NRPRO TYPE I, OFF TYPE I. CLEAR TABUSR. OFF = 2. NRPRO = USR04-NRPRO / 12. IF NRPRO > MAXUSR. NRPRO = 0. ENDIF. DO NRPRO TIMES. ASSIGN USR04-PROFS+OFF(PROFLNG) TO <TEXT>. WRITE <TEXT> TO TABUSR-PROFILE. TABUSR-BNAME = USER . APPEND TABUSR. OFF = OFF + PROFLNG. ENDDO. ENDFORM. *&---------------------------------------------------------------------* *& Form PRINT_USERS_PROFILES *&---------------------------------------------------------------------* FORM PRINT_USERS_PROFILES. SORT TABUSR BY BNAME . LOOP AT TABUSR . AT NEW BNAME . SKIP 1 . WRITE : /001 'User name :', TABUSR-BNAME . WRITE : /001 SY-ULINE(30) . ENDAT . WRITE : / TABUSR-PROFILE, TABUSR-PTEXT. ENDLOOP . ENDFORM. " PRINT_USERS_PROFILES