您的位置:首页 > 编程语言

如何编程实现删除一个sap的在线用户

2007-12-14 11:17 671 查看
2006年12月06日 17:16:00
REPORT ZKICK.
** Data ****************************************************************
DATA: OPCODE TYPE X VALUE 2.
DATA: BEGIN OF usr_tabl OCCURS 10.
INCLUDE STRUCTURE uinfo.
DATA: END OF usr_tabl.
DATA TEMP_TEXT LIKE SM04DIC-POPUPMSG.
DATA: BEGIN OF fields OCCURS 10.
INCLUDE STRUCTURE help_value.
DATA: END OF fields.
DATA: BEGIN OF valuetab OCCURS 10,
line(80),
END OF valuetab.
DATA: TMPUNAME LIKE SY-UNAME.
** Selection Screen ****************************************************
* Kick Off User/s
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
* User Name
SELECT-OPTIONS: UNAME FOR SY-UNAME OBLIGATORY.
* Client
PARAMETERS: CLIENT LIKE T000-MANDT DEFAULT SY-MANDT OBLIGATORY.
SELECTION-SCREEN SKIP.
* Time To Kick User Off Until
PARAMETERS: TIME LIKE SY-UZEIT DEFAULT SY-UZEIT OBLIGATORY,
* Interval Between Logoffs
INTERVAL(2) TYPE N DEFAULT 1 OBLIGATORY,
* Warn User Before Kicking Off?
WARN AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK B1.
** At Selection Screen *************************************************
AT SELECTION-SCREEN ON VALUE-REQUEST FOR UNAME-LOW.
PERFORM F4_HELP_CHECK_UNAME USING UNAME-LOW.
** Start of Selection **************************************************
START-OF-SELECTION.
DO.
REFRESH USR_TABL.
* Get the list of logged on users
CALL 'ThUsrInfo' ID 'OPCODE' FIELD opcode
ID 'TAB' FIELD usr_tabl-*sys*.
LOOP AT USR_TABL WHERE BNAME IN UNAME.
* If user/s must be warned
IF NOT WARN IS INITIAL.
CONCATENATE 'You will be logged off from client'
CLIENT
'in 10 seconds.' INTO TEMP_TEXT SEPARATED BY SPACE.
CALL FUNCTION 'TH_POPUP'
EXPORTING
CLIENT = CLIENT
USER = USR_TABL-BNAME
MESSAGE = TEMP_TEXT
EXCEPTIONS
USER_NOT_FOUND = 1
OTHERS = 2.
* Wait 10 seconds after warning user/s
WAIT UP TO 10 SECONDS.
ENDIF.
* Kick off user/s
CALL FUNCTION 'TH_DELETE_USER'
EXPORTING
USER = USR_TABL-BNAME
CLIENT = CLIENT
EXCEPTIONS
AUTHORITY_ERROR = 1
OTHERS = 2.
ENDLOOP.
* Once the specified time is reached, stop logging user/s off.
IF SY-UZEIT <= TIME.
EXIT.
ENDIF.
* Wait the specified time before logging off user/s again.
WAIT UP TO INTERVAL SECONDS.
ENDDO.
** Forms ***************************************************************
*&---------------------------------------------------------------------*
*& Form F4_HELP_CHECK_UNAME
*&---------------------------------------------------------------------*
* This is to show only logged on users when F4 is pressed on
* user name.
*----------------------------------------------------------------------*
* --Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1432311
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐