如何编程实现删除一个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
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
相关文章推荐
- 如何编程实现删除一个sap的在线用户
- 如何编程实现删除一个sap的在线用户
- 如何编程实现删除一个sap的在线用户
- 如何编程实现删除一个SAP的在线用户
- 如何编程实现删除一个sap的在线用户
- 如何编程实现删除一个sap的在线用户
- 如何编程实现删除一个sap的在线用户
- 如何编程实现删除一个sap的在线用户
- 技术QA:如何在Windows Server 2008中实现自动删除用户配置文件?
- BASIS-如何删除SAP在用户修改表结构时创建的临时表
- 如何实现同一用户只能存在一个实例?
- 转一份在 51testing 上的讨论——如何测试一个门户网站是否可以支持10万用户同时在线?
- (转)转一份在 51testing 上的讨论——如何测试一个门户网站是否可以支持10万用户同时在线?
- 最近做了一个类似社交的网站,看到新浪微博右侧有一个网页在线聊天的功能,如何才能实现网页在线聊天功能(新浪微博这种聊天)?
- WCF热门问题编程示例(5):WCF服务如何获取客户端在线用户数量?
- WCF热门问题编程示例(5):WCF服务如何获取客户端在线用户数量?
- WCF热门问题编程示例(5):WCF服务如何获取客户端在线用户数量?
- WCF热门问题编程示例(5):WCF服务如何获取客户端在线用户数量?
- WCF热门问题编程示例(5):WCF服务如何获取客户端在线用户数量?
- WCF热门问题编程示例(5):WCF服务如何获取客户端在线用户数量?