This program (un)locks all the users in a client, except for the
current user, and the SAP* user. You might want to add somthing like
SELECT-OPTIONS EXEMPTUS FOR USR02-BNAME to allow a list of usernames not
to be processed.
Sometimes it is useful to be able to lock all the users out of a client; for instance, during a client copy (you can also do this with tp locksys, but you have to issue that command from the OS level, and then you can only use DDIC or SAP* to log on). You can use this program to lock out all users except yourself.
This program (un)locks all the users in a client, except for the current user, and the SAP* user. You might want to add somthing like SELECT-OPTIONS EXEMPTUS FOR USR02-BNAME to allow a list of usernames not to be processed. Un/Lock all users in a client
REPORT ZUSRLOCK MESSAGE-ID Z1 . TABLES: USR02. PARAMETERS: LOCK AS CHECKBOX, LISTLOCK AS CHECKBOX. DATA: UFLAGVAL TYPE I, LOCKSTRING(8) TYPE C. *————– Authorization check ———————–* AUTHORITY-CHECK OBJECT ‘ZPROG_RUN’ ID ‘PROGRAM’ FIELD SY-CPROG. IF SY-SUBRC <> 0. IF SY-SUBRC = 4. MESSAGE E000 WITH SY-CPROG. “some message about authorization check failure ELSE. MESSAGE E005 WITH SY-SUBRC. “some message about authorization check failure ENDIF. ENDIF. IF LISTLOCK = ‘X’. WRITE:/ ‘List all locked users: ‘. SELECT * FROM USR02 WHERE UFLAG = 64. WRITE: / USR02-BNAME. ENDSELECT. EXIT. ENDIF. IF LOCK = ‘X’. UFLAGVAL = 64. “lock all users LOCKSTRING = ‘locked’. ELSE. UFLAGVAL = 0. “unlock all users LOCKSTRING = ‘unlocked’. ENDIF. SELECT * FROM USR02 WHERE BNAME <> ‘SAP*’ AND BNAME <> SY-UNAME. IF USR02-UFLAG <> 0 AND USR02-UFLAG <> 64. WRITE: ‘User’, USR02-BNAME, ‘untouched; please handle manually.’. CONTINUE. ENDIF. ** check that user has authority to make these changes AUTHORITY-CHECK OBJECT ‘S_USER_GRP’ ID ‘CLASS’ FIELD USR02-CLASS ID ‘ACTVT’ FIELD ’05’. IF SY-SUBRC <> 0. IF SY-SUBRC = 4. WRITE: /’You are not authorized to lock/unlock user ‘, USR02-BNAME, USR02-CLASS. ELSE. WRITE: /’Authorization error checking user ‘, USR02-BNAME, USR02-CLASS, ‘(return code’, SY-SUBRC, ‘).’. ENDIF. ELSE. “has authority UPDATE USR02 SET UFLAG = UFLAGVAL WHERE BNAME = USR02-BNAME. WRITE: / ‘User’, USR02-BNAME, LOCKSTRING, ‘.’. ENDIF.
Serkan AKKAVAK Computer Engineer ABAP Developer & SAP MM SD Consultant Contact : serkurumsal@yandex.com
Social Plugin