Friday, October 15, 2010

The abap part, that retrieves the data from the SAP systems

REPORT ZPOPLOG NO STANDARD PAGE HEADING.
******************************************************************
* This abap is run by the system monitoring perl script
* to retrtieve the following data from the different SAP
* systems:
* system status (up/down), appservers, user number per appserver,
* session number per appserver, abap dump number today,
* today's error message number from the system log,
* number of active lock entries, number of pending updates
******************************************************************
TABLES: SNAP, VBHDR.
DATA: I TYPE I, C(5), J TYPE I, K TYPE I, L TYPE I, SUBRC LIKE SY-SUBRC.
DATA: MINTA(72) VALUE
'a b c d e f g h i j k l m n o p q r s t u w z x y * | '.
DATA: R(5), HOSTID(8), flag type i.
DATA: BEGIN OF TABTAB OCCURS 10,
line(128),
END OF TABTAB.
DATA: BEGIN OF SUMMARY OCCURS 50.
INCLUDE STRUCTURE SAPWLSUMRY.
DATA: END OF SUMMARY.
DATA: BEGIN OF ENQ OCCURS 50.
INCLUDE STRUCTURE SEQG3.
DATA: END OF ENQ.
DATA: BEGIN OF TAB OCCURS 10.
INCLUDE STRUCTURE ABAPLIST.
DATA: END OF TAB.
DATA: BEGIN OF LISTASCI OCCURS 10,
L(999),
END OF LISTASCI.
DATA: BEGIN OF LIST OCCURS 10.
INCLUDE STRUCTURE MSXXLIST.
DATA: END OF LIST.
DATA: BEGIN OF USR_TBL OCCURS 10.
INCLUDE STRUCTURE BTCSYSLOG.
DATA: END OF USR_TBL.
* System name
tabtab-line = 'Q'.
TABTAB-LINE+2 = SY-SYSID.
* The number of abap dumps
SELECT COUNT(*) INTO I FROM SNAP WHERE SEQNO = '001'
AND DATUM = SY-DATUM.
TABTAB-LINE+7(6) = I.
* The number of active lock entries
CALL FUNCTION 'ENQUEUE_READ'
EXPORTING
GCLIENT = '*'
GUNAME = '*'
GNAME = '*'
GARG = '*'
IMPORTING
SUBRC = SUBRC
TABLES
ENQ = ENQ.
DESCRIBE TABLE ENQ LINES J.
TABTAB-LINE+14(6) = J.
* Update records
SELECT COUNT(*) INTO K FROM VBHDR.
TABTAB-LINE+20(6) = K.
* Today's error messages from the system log
SUBMIT RSLG0001 WITH TR_DAY EQ '0'
LINE-SIZE 255 EXPORTING LIST TO MEMORY AND RETURN.
CALL FUNCTION 'LIST_FROM_MEMORY'
TABLES
LISTOBJECT = TAB.
CALL FUNCTION 'LIST_TO_ASCI'
TABLES
LISTASCI = LISTASCI
LISTOBJECT = TAB.
LOOP AT LISTASCI.
IF LISTASCI CS '|K|' OR LISTASCI CS '|T|'.
L = L + 1.
ENDIF.
ENDLOOP.
TABTAB-LINE+26(6) = L.
CONDENSE TABTAB.
*APPEND TABTAB.
* Number of active users and modes per app. server
CALL FUNCTION 'TH_SERVER_LIST'
TABLES
LIST = LIST.
flag = 0.
LOOP AT LIST.
flag = flag + 1.
* Find out the average response time
HOSTID = LIST-HOST.
CALL FUNCTION 'SAPWL_GET_SUMMARY_STATISTIC'
EXPORTING
PERIODTYPE = 'D'
HOSTID = HOSTID
STARTDATE = SY-DATUM
TABLES
SUMMARY = SUMMARY.
LOOP AT SUMMARY.
IF SUMMARY-TASKTYPE = 'DIALOG'.
R = SUMMARY-RESPTI / SUMMARY-COUNT.
EXIT.
ENDIF.
ENDLOOP.
* Count the users and sessions
CLEAR USR_TBL.
REFRESH USR_TBL.
CALL FUNCTION 'SXMI_XMB_USER_LIST_READ_INT' DESTINATION LIST-NAME
TABLES
USR_TBL = USR_TBL.
LOOP AT USR_TBL.
IF USR_TBL CS 'users logged on with'.
TRANSLATE USR_TBL USING MINTA.
CONDENSE USR_TBL.
if flag > 1.
tabtab = 'Q @ @ @ @ @ @'.
endif.
TABTAB+27 = LIST-NAME.
TABTAB+48 = USR_TBL.
TABTAB+68 = R.
TABTAB+80 = '&'.
CONDENSE TABTAB.
APPEND TABTAB.
ENDIF.
ENDLOOP.
ENDLOOP.
*
LOOP AT TABTAB.
WRITE: / TABTAB.
ENDLOOP.

No comments:

Tutorials on SAP-ABAP

Adobe Interactive Forms Tutorials

Business Server Pages (BSP)

Userexits/BADIs

Web Dynpro for ABAP (Step by step procedure for web dynpro,Tutorials on Web Dynpro,)

ALV Tutorials

Blog Archive

goodsites