通过function module THUSRINFO 可以得到当前application server instance上登陆user的详细信息,如terminal,使用的tcode, last transaction time等等。如果application server有多个instance,可以先使用function module RFC_GET_LOCAL_DESTINATIONS 取得所有的local RFC destination,再用RFC的方式调用THUSRINFO:
REPORT zuser.
DATA: lt_usr_liste TYPE STANDARD TABLE OF uinfo,
lt_total LIKE lt_usr_liste,
lt_rfchosts TYPE STANDARD TABLE OF rfchosts.
CONSTANTS: gc_user_name TYPE uinfo-bname VALUE 'User Name',
gc_tcode TYPE uinfo-tcode VALUE 'Tcode',
gc_term TYPE uinfo-term VALUE 'Terminal',
gc_logon TYPE uinfo-zeit VALUE 'Time'.
CALL FUNCTION 'RFC_GET_LOCAL_DESTINATIONS'
TABLES
localdest = lt_rfchosts.
CALL FUNCTION 'THUSRINFO'
usr_tabl = lt_usr_liste
EXCEPTIONS
communication_failure = 17.
ASSERT sy-subrc = 0.
APPEND LINES OF lt_usr_liste TO lt_total.
LOOP AT lt_rfchosts ASSIGNING FIELD-SYMBOL().
CLEAR: lt_usr_liste.
CALL FUNCTION 'THUSRINFO' DESTINATION -rfcdest
TABLES
usr_tabl = lt_usr_liste
EXCEPTIONS
communication_failure = 17.
APPEND LINES OF lt_usr_liste TO lt_total.
ENDLOOP.
DELETE lt_total WHERE mandt <> sy-mandt.
SORT lt_total BY bname.
WRITE: / gc_user_name, gc_tcode, gc_term, gc_logon.
LOOP AT lt_total ASSIGNING FIELD-SYMBOL().
WRITE: / -bname UNDER gc_user_name COLOR COL_NEGATIVE,
-tcode UNDER gc_tcode COLOR COL_POSITIVE,
-term UNDER gc_term COLOR COL_KEY,
-zeit UNDER gc_logon COLOR COL_TOTAL.
