How to fetch ST03N data into excel
As part of BASIS administration we need to perform workload analysis,  response time, db time etc, We will see how to fetch this data for ST03N from  any ABAP based SAP server. We have seen in previous documents how to login to  SAP and call functions.
We will use FM SWNC_COLLECTOR_GET_AGGREGATES which is a remote enabled  function module, there are others as well but this one is much easier to call.  Remember this function will give data older than a day
Input Parameters :
COMPONENT: Intance Name or Total for all intances
PERIODTYPE: D - Day
M - Month
W - Week
PERIODSTRT: Start Date
SUMMARY_ONLY: Optional X
FACTOR : 1000
Output: The output is in form of 12 to 15 Tables, We are using only one  UserTCODE, this table gives us output as per each tcode. The table has 43 cols  of which below are few important ones
TASKTYPE : Take type
COUNT: Number of Steps
RESPTI : Response Time
 
Sample Output
Compared to Original
Sample Code : download
COMPONENT: Intance Name or Total for all intances
PERIODTYPE: D - Day
M - Month
W - Week
PERIODSTRT: Start Date
SUMMARY_ONLY: Optional X
FACTOR : 1000
TASKTYPE : Take type
COUNT: Number of Steps
RESPTI : Response Time
Sample Code
| ' calling next func
Set muFunc = R3.Add("SWNC_COLLECTOR_GET_AGGREGATES")
'loading SAP functions input parameters
Dim COMPONENT, PERIODTYPE, PERIODSTRT, SUMMARY_ONLY, FACTOR As Object
Set COMPONENT = muFunc.exports("COMPONENT")
COMPONENT.Value = Sheets("Main").Cells(6, 6)
'Set ASSIGNDSYS = muFunc.exports("ASSIGNDSYS")
'ASSIGNDSYS.Value = Sheets("Main").Cells(3, 3)
Set PERIODTYPE = muFunc.exports("PERIODTYPE")
PERIODTYPE.Value = Sheets("Main").Cells(7, 6)
Set PERIODSTRT = muFunc.exports("PERIODSTRT")
PERIODSTRT.Value = Sheets("Main").Cells(8, 6)
'"14/05/2012"
Set FACTOR = muFunc.exports("FACTOR")
'FACTOR.Value = "1000"
'Set SUMMARY_ONLY = muFunc.exports("SUMMARY_ONLY")
'SUMMARY_ONLY.Value = ""
' calling SAP Func
If muFunc.call = False Then
    MsgBox muFunc.Exception
End If
Dim USERTCODE As Object
Set USERTCODE = muFunc.Tables("USERTCODE")
Xrange = USERTCODE.Rows.Count
For i = 1 To Xrange
j = i + 1
    Sheets("USERTCODE").Cells(j, 2) = USERTCODE.Value(i, "TASKTYPE")
    Sheets("USERTCODE").Cells(j, 3) = USERTCODE.Value(i, "ACCOUNT")
    Sheets("USERTCODE").Cells(j, 4) = USERTCODE.Value(i, "ENTRY_ID")
    Sheets("USERTCODE").Cells(j, 5) = USERTCODE.Value(i, "COUNT")
    Sheets("USERTCODE").Cells(j, 6) = USERTCODE.Value(i, "DCOUNT")
    Sheets("USERTCODE").Cells(j, 7) = USERTCODE.Value(i, "UCOUNT")
    Sheets("USERTCODE").Cells(j, 8) = USERTCODE.Value(i, "BCOUNT")
    Sheets("USERTCODE").Cells(j, 9) = USERTCODE.Value(i, "ECOUNT")
    Sheets("USERTCODE").Cells(j, 10) = USERTCODE.Value(i, "SCOUNT")
    Sheets("USERTCODE").Cells(j, 11) = USERTCODE.Value(i, "LUW_COUNT")
    Sheets("USERTCODE").Cells(j, 12) = USERTCODE.Value(i, "TMBYTESIN")
    Sheets("USERTCODE").Cells(j, 13) = USERTCODE.Value(i, "TMBYTESOUT")
    Sheets("USERTCODE").Cells(j, 14) = USERTCODE.Value(i, "RESPTI")
    Sheets("USERTCODE").Cells(j, 15) = USERTCODE.Value(i, "PROCTI")
    Sheets("USERTCODE").Cells(j, 16) = USERTCODE.Value(i, "CPUTI")
    Sheets("USERTCODE").Cells(j, 17) = USERTCODE.Value(i, "QUEUETI")
    Sheets("USERTCODE").Cells(j, 18) = USERTCODE.Value(i, "ROLLWAITTI")
    Sheets("USERTCODE").Cells(j, 19) = USERTCODE.Value(i, "GUITIME")
    Sheets("USERTCODE").Cells(j, 20) = USERTCODE.Value(i, "GUICNT")
    Sheets("USERTCODE").Cells(j, 21) = USERTCODE.Value(i, "GUINETTIME")
    Sheets("USERTCODE").Cells(j, 22) = USERTCODE.Value(i, "DBP_COUNT")
    Sheets("USERTCODE").Cells(j, 23) = USERTCODE.Value(i, "DBP_TIME")
    Sheets("USERTCODE").Cells(j, 24) = USERTCODE.Value(i, "READDIRCNT")
    Sheets("USERTCODE").Cells(j, 25) = USERTCODE.Value(i, "READDIRTI")
    Sheets("USERTCODE").Cells(j, 26) = USERTCODE.Value(i, "READDIRBUF")
    Sheets("USERTCODE").Cells(j, 27) = USERTCODE.Value(i, "READDIRREC")
    Sheets("USERTCODE").Cells(j, 28) = USERTCODE.Value(i, "READSEQCNT")
    Sheets("USERTCODE").Cells(j, 29) = USERTCODE.Value(i, "READSEQTI")
    Sheets("USERTCODE").Cells(j, 30) = USERTCODE.Value(i, "READSEQBUF")
    Sheets("USERTCODE").Cells(j, 31) = USERTCODE.Value(i, "READSEQREC")
    Sheets("USERTCODE").Cells(j, 32) = USERTCODE.Value(i, "CHNGCNT")
    Sheets("USERTCODE").Cells(j, 33) = USERTCODE.Value(i, "CHNGTI")
    Sheets("USERTCODE").Cells(j, 34) = USERTCODE.Value(i, "CHNGREC")
    Sheets("USERTCODE").Cells(j, 35) = USERTCODE.Value(i, "PHYREADCNT")
    Sheets("USERTCODE").Cells(j, 36) = USERTCODE.Value(i, "PHYCHNGREC")
    Sheets("USERTCODE").Cells(j, 37) = USERTCODE.Value(i, "PHYCALLS")
    Sheets("USERTCODE").Cells(j, 38) = USERTCODE.Value(i, "DSQLCNT")
    Sheets("USERTCODE").Cells(j, 39) = USERTCODE.Value(i, "QUECNT")
    Sheets("USERTCODE").Cells(j, 40) = USERTCODE.Value(i, "CPICCNT")
    Sheets("USERTCODE").Cells(j, 41) = USERTCODE.Value(i, "SLI_CNT")
    Sheets("USERTCODE").Cells(j, 42) = USERTCODE.Value(i, "VMC_CALL_COUNT")
    Sheets("USERTCODE").Cells(j, 43) = USERTCODE.Value(i, "VMC_CPU_TIME")
    Sheets("USERTCODE").Cells(j, 44) = USERTCODE.Value(i, "VMC_ELAP_TIME")
Next
End Sub
 | 
Sample Output
Compared to Original
Sample Code : download




Thanks for sharing
ReplyDelete