执行report,输入要查询的日期和user,
工具会按照使用次数从高到低列出输入日期所在的月份内所有该user 曾经使用过的tcode 和report list:
REPORT zusertcode.
PARAMETER: month TYPE dats DEFAULT sy-datum OBLIGATORY,
user type usr02-bname OBLIGATORY DEFAULT sy-uname.
TYPES: BEGIN OF zusertcode,
operation type char30,
type type char10,
count TYPE swncshcnt,
END OF zusertcode.
TYPES: tt_zusertcode TYPE STANDARD TABLE OF zusertcode WITH KEY operation type.
DATA: lt_usertcode TYPE swnc_t_aggusertcode,
wa_usertcode TYPE swncaggusertcode,
wa TYPE zusertcode,
t_ut TYPE tt_zusertcode,
ls_result TYPE zusertcode,
lt_result TYPE tt_zusertcode.
CONSTANTS: cv_tcode TYPE char30 VALUE 'Tcode',
cv_report TYPE char30 VALUE 'Report',
cv_count TYPE char5 value 'Count'.
START-OF-SELECTION.
* Set date to the first day of the month
"month+6(2) = '01'.
CALL FUNCTION 'SWNC_COLLECTOR_GET_AGGREGATES'
EXPORTING
component = 'TOTAL'
periodtype = 'M'
periodstrt = month
TABLES
usertcode = lt_usertcode
EXCEPTIONS
no_data_found = 1
OTHERS = 2.
DELETE lt_usertcode WHERE tasktype <> '01'.
LOOP AT lt_usertcode ASSIGNING FIELD-SYMBOL(<user>) WHERE account = user.
CLEAR: ls_result.
ls_result-operation = <user>-entry_id.
ls_result-type = <user>-entry_id+72.
ls_result-count = <user>-count.
COLLECT ls_result INTO lt_result.
ENDLOOP.
SORT lt_result BY count DESCENDING.
WRITE: 10 cv_tcode, 20 cv_report, 60 cv_count COLOR COL_NEGATIVE.
LOOP AT lt_result ASSIGNING FIELD-SYMBOL(<result>).
IF <result>-type = 'T'.
WRITE: / <result>-operation COLOR COL_TOTAL UNDER cv_tcode,
<result>-count COLOR COL_POSITIVE UNDER cv_count.
ELSE.
WRITE: / <result>-operation COLOR COL_GROUP UNDER cv_report,
<result>-count COLOR COL_POSITIVE UNDER cv_count.
ENDIF.
ENDLOOP.