SAP allows you to use /i to kill the current session and /in to kill session number n. However, those t-codes are really built into the GUI and cannot be coded.
So I put together the following program and attached it to a simple t-code like ZZ. That way you can at any time use /nZZ to kill all the other sessions and clean up your desktop a bit.
*&---------------------------------------------------------------------*
*& Report ZZKILLSESSION
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
report zzkillsession
no standard page heading line-size 255.
start-of-selection.
data: lv_mode like sy-tabix,
lv_keep like sy-tabix,
lv_time like sy-uzeit.
data: lt_info like uinfo2 occurs 0 with header line.
call function 'TH_LONG_USR_INFO'
tables
user_info = lt_info.
delete lt_info where client <> sy-mandt.
"SAP counts from 0 <- Important otherwise you accidentally delete the current mode
loop at lt_info.
lt_info-mode = lt_info-mode - 1.
modify lt_info.
endloop.
"Find the current mode by looking for the one with the latest time
lv_time = '00:00:00'.
loop at lt_info.
if lt_info-time > lv_time.
lv_keep = lt_info-mode.
lv_time = lt_info-time.
endif.
endloop.
"delete all the other modes
lv_mode = 7.
do 7 times.
lv_mode = lv_mode - 1.
"Don't delete the current mode
if lv_mode = lv_keep.
continue.
endif.
"Only delete modes that actually exist otherwise you might crash the system
read table lt_info with key mode = lv_mode.
check sy-subrc = 0.
call function 'TH_DELETE_MODE'
exporting
mode = lv_mode.
enddo.
No comments:
Post a Comment