REPORT YBAS_CHECK_TRANS_USE NO STANDARD PAGE HEADING LINE-SIZE 255.
*----------------------------------------------------------------------
*
* THIS CODE IS TO BE CHANGED ONLY ON DEV ECC !!
*----------------------------------------------------------------------
*
* PROGRAM INFORMATION
*----------------------------------------------------------------------
*
* DESCRIPTION : Collect transaction usage info.
*
* NOTES : Collects the usage of a transaction code for a period.
*
* APPLICATION : BC
*
* RESTART : Anytime
*
*----------------------------------------------------------------------
*
* MODIFICATION LOG
*----------------------------------------------------------------------
\
tables: usr21, adrp.
DATA: BEGIN OF SERVLIST OCCURS 25.
INCLUDE STRUCTURE MSXXLIST.
DATA: END OF SERVLIST.
DATA: BEGIN OF i_APPLICATION_STATISTIC OCCURS 5000.
INCLUDE STRUCTURE SAPWLUSTCX.
DATA: END OF i_APPLICATION_STATISTIC.
DATA: BEGIN OF I_trans_user OCCURS 100,
entry_id like I_APPLICATION_STATISTIC-entry_id,
account like usr21-bname.
DATA: END OF I_trans_user.
DATA: COLLECT_TIME LIKE SY-UZEIT.
DATA: COLLECT_DATE LIKE SY-DATUM.
DATA: CLEANUP_DATE LIKE SY-DATUM.
DATA: INSTANCE LIKE SAPWLSERV-NAME.
DATA: i_RECORD_COUNT(9).
DATA: i_RECORD_PROCESSED(9).
DATA: i_temp(80).
data: P_period(1).
PARAMETER: P_trans LIKE I_APPLICATION_STATISTIC-entry_id,
P_sdate like sy-datum default SY-DATUM,
P_day radiobutton group per,
P_mon radiobutton group per default 'X',
P_wk radiobutton group per.
START-OF-SELECTION.
TRANSLATE P_trans TO UPPER CASE.
COLLECT_DATE = SY-DATUM.
COLLECT_TIME = SY-UZEIT.
if P_day = 'X'.
P_period = 'D'.
else.
if P_mon = 'X'.
P_period = 'M'.
else.
P_period = 'W'.
endif.
endif.
PERFORM GET_SERVER_LIST.
LOOP AT SERVLIST.
CLEAR INSTANCE.
INSTANCE = SERVLIST-NAME.
PERFORM GET_TRANS_STATS.
i_RECORD_COUNT = 0.
i_RECORD_PROCESSED = 0.
LOOP AT i_APPLICATION_STATISTIC.
clear I_trans_user.
* i_RECORD_COUNT = i_RECORD_COUNT + 1.
if i_APPLICATION_STATISTIC-entry_id(20) eq P_trans(20).
I_trans_user-entry_id = i_APPLICATION_STATISTIC-entry_id(20).
I_trans_user-account = i_APPLICATION_STATISTIC-account.
append I_trans_user.
i_RECORD_PROCESSED = i_RECORD_PROCESSED + 1.
ENDIF.
ENDLOOP.
ENDLOOP.
write:/ 'Report YBAS_CHECK_TRANS_USE Rundate:', COLLECT_DATE, 'Runtime:',COLLECT_TIME.
write:/ 'Transaction: ', 14 P_trans, 24 'was executed by user(s):'.
uline.
loop at I_trans_user.
select * from usr21 where bname = I_trans_user-account.
if sy-subrc = 0.
select * from adrp where persnumber = usr21-persnumber.
if sy-subrc = 0.
clear i_temp.
concatenate adrp-name_first adrp-name_last into i_temp separated by ' '.
write:/ I_trans_user-account, ' - ', i_temp.
else.
write:/ I_trans_user-account, ' name not found.'.
endif.
endselect.
else.
write:/ I_trans_user-account, ' name not found.'.
endif.
endselect.
endloop.
uline.
write:/ 'Total users that executed this transaction:', i_RECORD_PROCESSED.
END-OF-SELECTION.
*
FORM GET_TRANS_STATS.
CALL FUNCTION 'SAPWL_WORKLOAD_GET_STATISTIC'
EXPORTING
PERIODTYPE = P_period
HOSTID = ' '
STARTDATE = P_sDATE
ONLY_APPLICATION_STATISTIC = 'X'
INSTANCE = INSTANCE
TABLES
APPLICATION_STATISTIC = i_APPLICATION_STATISTIC
EXCEPTIONS
UNKNOWN_PERIODTYPE = 1
NO_DATA_FOUND = 2
NO_SERVER_GIVEN = 3
OTHERS = 4.
ENDFORM. "GET_TRANS_STATS
*&---------------------------------------------------------------------*
*& Form GET_SERVER_LIST
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM GET_SERVER_LIST.
CALL FUNCTION 'TH_SERVER_LIST'
TABLES
LIST = SERVLIST.
ENDFORM. . "GET_SERVER_LIST
*----------------------------------------------------------------------
*
* THIS CODE IS TO BE CHANGED ONLY ON DEV ECC !!
*----------------------------------------------------------------------
*
* PROGRAM INFORMATION
*----------------------------------------------------------------------
*
* DESCRIPTION : Collect transaction usage info.
*
* NOTES : Collects the usage of a transaction code for a period.
*
* APPLICATION : BC
*
* RESTART : Anytime
*
*----------------------------------------------------------------------
*
* MODIFICATION LOG
*----------------------------------------------------------------------
\
tables: usr21, adrp.
DATA: BEGIN OF SERVLIST OCCURS 25.
INCLUDE STRUCTURE MSXXLIST.
DATA: END OF SERVLIST.
DATA: BEGIN OF i_APPLICATION_STATISTIC OCCURS 5000.
INCLUDE STRUCTURE SAPWLUSTCX.
DATA: END OF i_APPLICATION_STATISTIC.
DATA: BEGIN OF I_trans_user OCCURS 100,
entry_id like I_APPLICATION_STATISTIC-entry_id,
account like usr21-bname.
DATA: END OF I_trans_user.
DATA: COLLECT_TIME LIKE SY-UZEIT.
DATA: COLLECT_DATE LIKE SY-DATUM.
DATA: CLEANUP_DATE LIKE SY-DATUM.
DATA: INSTANCE LIKE SAPWLSERV-NAME.
DATA: i_RECORD_COUNT(9).
DATA: i_RECORD_PROCESSED(9).
DATA: i_temp(80).
data: P_period(1).
PARAMETER: P_trans LIKE I_APPLICATION_STATISTIC-entry_id,
P_sdate like sy-datum default SY-DATUM,
P_day radiobutton group per,
P_mon radiobutton group per default 'X',
P_wk radiobutton group per.
START-OF-SELECTION.
TRANSLATE P_trans TO UPPER CASE.
COLLECT_DATE = SY-DATUM.
COLLECT_TIME = SY-UZEIT.
if P_day = 'X'.
P_period = 'D'.
else.
if P_mon = 'X'.
P_period = 'M'.
else.
P_period = 'W'.
endif.
endif.
PERFORM GET_SERVER_LIST.
LOOP AT SERVLIST.
CLEAR INSTANCE.
INSTANCE = SERVLIST-NAME.
PERFORM GET_TRANS_STATS.
i_RECORD_COUNT = 0.
i_RECORD_PROCESSED = 0.
LOOP AT i_APPLICATION_STATISTIC.
clear I_trans_user.
* i_RECORD_COUNT = i_RECORD_COUNT + 1.
if i_APPLICATION_STATISTIC-entry_id(20) eq P_trans(20).
I_trans_user-entry_id = i_APPLICATION_STATISTIC-entry_id(20).
I_trans_user-account = i_APPLICATION_STATISTIC-account.
append I_trans_user.
i_RECORD_PROCESSED = i_RECORD_PROCESSED + 1.
ENDIF.
ENDLOOP.
ENDLOOP.
write:/ 'Report YBAS_CHECK_TRANS_USE Rundate:', COLLECT_DATE, 'Runtime:',COLLECT_TIME.
write:/ 'Transaction: ', 14 P_trans, 24 'was executed by user(s):'.
uline.
loop at I_trans_user.
select * from usr21 where bname = I_trans_user-account.
if sy-subrc = 0.
select * from adrp where persnumber = usr21-persnumber.
if sy-subrc = 0.
clear i_temp.
concatenate adrp-name_first adrp-name_last into i_temp separated by ' '.
write:/ I_trans_user-account, ' - ', i_temp.
else.
write:/ I_trans_user-account, ' name not found.'.
endif.
endselect.
else.
write:/ I_trans_user-account, ' name not found.'.
endif.
endselect.
endloop.
uline.
write:/ 'Total users that executed this transaction:', i_RECORD_PROCESSED.
END-OF-SELECTION.
*
FORM GET_TRANS_STATS.
CALL FUNCTION 'SAPWL_WORKLOAD_GET_STATISTIC'
EXPORTING
PERIODTYPE = P_period
HOSTID = ' '
STARTDATE = P_sDATE
ONLY_APPLICATION_STATISTIC = 'X'
INSTANCE = INSTANCE
TABLES
APPLICATION_STATISTIC = i_APPLICATION_STATISTIC
EXCEPTIONS
UNKNOWN_PERIODTYPE = 1
NO_DATA_FOUND = 2
NO_SERVER_GIVEN = 3
OTHERS = 4.
ENDFORM. "GET_TRANS_STATS
*&---------------------------------------------------------------------*
*& Form GET_SERVER_LIST
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM GET_SERVER_LIST.
CALL FUNCTION 'TH_SERVER_LIST'
TABLES
LIST = SERVLIST.
ENDFORM. . "GET_SERVER_LIST
Ankur
No comments:
Post a Comment