‎2006 Oct 05 8:45 PM
Does anyone know which tables feed the structures (e.g. STA1) for ST03? I've searched all over the place and all I can find are structures. I need to run a query against the source tables. Thanks for your help.
‎2006 Oct 06 3:55 PM
Hi,
See whether ST03N will meet your needs?
For more options see SAP and SAP notes for MONI or TCOLL or ST03(N) (e.g. SAP notes 12103, 143550 and function module SAPWL_ACCNT_GET_SYSTEM_USAGE).
Cheers,
Julius
This coding also helps to understand it a bit:
*&---------------------------------------------------------------------*
*& Form TRANSLATE_TCODE_REPORT
*&---------------------------------------------------------------------*
* Translate/repair report and tcode names of statistic records *
*----------------------------------------------------------------------*
* --> TCODE transaction code
* --> DYNPN dynpro number
* --> ttype task type
* --> USER user name
* --> TERMNL terminal ID
* <-> REPO report
* <-- ENTID entry ID
*----------------------------------------------------------------------*
FORM translate_tcode_report USING
tcode LIKE sapwlpfnrm-tcode
dynpn LIKE sapwlpfnrm-dynpronr
ttype LIKE sapwlpfnrm-tasktype
user LIKE sapwlpfnrm-account
terml LIKE sapwlpfnrm-terminalid
repo LIKE sapwlpfnrm-report
entid TYPE entry_id_type.
CLEAR entid.
entid-type = 'R'. "field TCODE_OR_REPORT contains a report name
CASE ttype.
WHEN tt_autoabap.
entid-tcode_or_report = repo = 'AutoABAP'.
EXIT.
WHEN tt_bufref.
entid-tcode_or_report = repo = 'Buf.Sync'.
EXIT.
* 5.0 bei Tasktypen ALE, RFC, CPIC wird der TCODE mitgeliefert
WHEN tt_ale.
IF NOT ( tcode IS INITIAL ).
entid-type = 'T'.
entid-tcode_or_report = tcode.
repo = 'ALE'.
ELSE.
entid-type = 'R'.
entid-tcode_or_report = repo = 'ALE'.
ENDIF.
EXIT.
WHEN tt_rfc.
IF NOT ( tcode IS INITIAL ).
entid-type = 'T'.
entid-tcode_or_report = tcode.
repo = 'RFC'.
ELSE.
entid-type = 'R'.
entid-tcode_or_report = repo = 'RFC'.
ENDIF.
EXIT.
WHEN tt_cpic.
IF NOT ( tcode IS INITIAL ).
entid-type = 'T'.
entid-tcode_or_report = tcode.
repo = 'CPI-C'.
ELSE.
entid-type = 'R'.
entid-tcode_or_report = repo = 'CPI-C'.
ENDIF.
EXIT.
ENDCASE.
CASE repo.
WHEN 'SAPMSYST'.
CASE dynpn.
WHEN '0011'.
entid-tcode_or_report = repo = 'Logoff'. "#EC NOTEXT
WHEN '0020'.
entid-tcode_or_report = repo = 'Login_Pw'. "#EC NOTEXT
WHEN '0040'.
entid-tcode_or_report = repo = 'MainMenu'. "#EC NOTEXT
WHEN '0010'. "nicht mehr R2 Lgout !!
* entid-type = 'T'.
* entid-tcode_or_report = '/LON'.
* repo = 'R2 Lgout'.
entid-tcode_or_report = repo.
WHEN '0050'.
entid-type = 'T'.
entid-tcode_or_report = '/LON'. "#EC NOTEXT
repo = 'R2 Login'. "#EC NOTEXT
WHEN '0200'.
entid-tcode_or_report = repo = 'New Pswd'. "#EC NOTEXT
WHEN OTHERS.
entid-tcode_or_report = repo.
ENDCASE.
WHEN 'SAPMSSY0'. "Logon and other system exits
CASE dynpn.
WHEN '0120'.
IF tcode = 'SE38' OR tcode = 'SA38' OR tcode = 'SE80'.
entid-tcode_or_report = repo = 'Rep_List'.
ELSE.
entid-tcode_or_report = repo = 'Login_Ok'.
ENDIF.
WHEN OTHERS.
entid-tcode_or_report = repo.
ENDCASE.
WHEN 'SAPMSSY2'. "BTC Control
CASE dynpn.
WHEN '4004'.
entid-tcode_or_report = repo = '(B)SCHDL'.
WHEN '4005'.
entid-tcode_or_report = repo = '(B)STRTR'.
WHEN '4006'.
entid-tcode_or_report = repo = '(B)ZOMBI'.
WHEN '4007'.
entid-tcode_or_report = repo = '(B)EVDRI'.
WHEN '4008'.
entid-tcode_or_report = repo = '(B)EXTSC'.
WHEN '4009'.
entid-tcode_or_report = repo = '(B)AUTOD'.
WHEN '4010'.
entid-tcode_or_report = repo = '(B)SWTCH'.
WHEN OTHERS.
entid-tcode_or_report = repo = '(B)OTHER'.
ENDCASE.
WHEN 'SAPMSSY3'. "ABAP Debugger
entid-tcode_or_report = repo = 'Debugger'. "#EC NOTEXT
WHEN 'SAPMSSY4'. "Update control
entid-tcode_or_report = repo = 'Upd Ctrl'. "#EC NOTEXT
WHEN 'SAPMSSY6' OR 'SAPMSSY8'. "Auto ABAP (SAPMSSY8 since 4.5)
entid-tcode_or_report = repo = 'AutoABAP'. "#EC NOTEXT
WHEN 'SAPMSSY7'. "Scheduler
entid-tcode_or_report = repo = 'Schedulr'. "#EC NOTEXT
WHEN 'SAPMSEDT'. "Editor
entid-tcode_or_report = repo = 'Rep_Edit'. "#EC NOTEXT
WHEN OTHERS.
IF repo IS INITIAL.
IF dynpn IS INITIAL.
IF user = sapsys_user.
IF terml IS INITIAL AND ttype NE tt_btc.
entid-tcode_or_report = repo = 'System'. "#EC NOTEXT
ELSE.
entid-tcode_or_report = repo = '?'.
ENDIF.
ELSE.
entid-tcode_or_report = repo = 'Aborted'. "#EC NOTEXT
ENDIF.
ELSE.
entid-tcode_or_report = repo = '?'.
ENDIF.
ELSEIF tcode = 'SE38' OR
tcode = 'SA38' OR
tcode = 'SE80' OR
tcode = 'SARP' OR "SARP ausfiltern (Berichtsbaum)
tcode = 'SART' OR "SART ausfiltern (Berichtsbaum)
tcode = 'GR55' OR "GR55 ausfiltern (Berichtsbaum)
ttype = tt_btc OR
tcode IS INITIAL.
entid-tcode_or_report = repo.
ELSE.
entid-tcode_or_report = tcode.
entid-type = 'T'.
* removed in release 6.30
* IF entid-tcode_or_report(3) CA space OR
* entid-tcode_or_report CA '!'.
* entid-tcode_or_report = '!XYZ'.
* ENDIF.
ENDIF.
ENDCASE.
ENDFORM. " TRANSLATE_TCODE_REPORT
‎2006 Oct 06 3:55 PM
Hi,
See whether ST03N will meet your needs?
For more options see SAP and SAP notes for MONI or TCOLL or ST03(N) (e.g. SAP notes 12103, 143550 and function module SAPWL_ACCNT_GET_SYSTEM_USAGE).
Cheers,
Julius
This coding also helps to understand it a bit:
*&---------------------------------------------------------------------*
*& Form TRANSLATE_TCODE_REPORT
*&---------------------------------------------------------------------*
* Translate/repair report and tcode names of statistic records *
*----------------------------------------------------------------------*
* --> TCODE transaction code
* --> DYNPN dynpro number
* --> ttype task type
* --> USER user name
* --> TERMNL terminal ID
* <-> REPO report
* <-- ENTID entry ID
*----------------------------------------------------------------------*
FORM translate_tcode_report USING
tcode LIKE sapwlpfnrm-tcode
dynpn LIKE sapwlpfnrm-dynpronr
ttype LIKE sapwlpfnrm-tasktype
user LIKE sapwlpfnrm-account
terml LIKE sapwlpfnrm-terminalid
repo LIKE sapwlpfnrm-report
entid TYPE entry_id_type.
CLEAR entid.
entid-type = 'R'. "field TCODE_OR_REPORT contains a report name
CASE ttype.
WHEN tt_autoabap.
entid-tcode_or_report = repo = 'AutoABAP'.
EXIT.
WHEN tt_bufref.
entid-tcode_or_report = repo = 'Buf.Sync'.
EXIT.
* 5.0 bei Tasktypen ALE, RFC, CPIC wird der TCODE mitgeliefert
WHEN tt_ale.
IF NOT ( tcode IS INITIAL ).
entid-type = 'T'.
entid-tcode_or_report = tcode.
repo = 'ALE'.
ELSE.
entid-type = 'R'.
entid-tcode_or_report = repo = 'ALE'.
ENDIF.
EXIT.
WHEN tt_rfc.
IF NOT ( tcode IS INITIAL ).
entid-type = 'T'.
entid-tcode_or_report = tcode.
repo = 'RFC'.
ELSE.
entid-type = 'R'.
entid-tcode_or_report = repo = 'RFC'.
ENDIF.
EXIT.
WHEN tt_cpic.
IF NOT ( tcode IS INITIAL ).
entid-type = 'T'.
entid-tcode_or_report = tcode.
repo = 'CPI-C'.
ELSE.
entid-type = 'R'.
entid-tcode_or_report = repo = 'CPI-C'.
ENDIF.
EXIT.
ENDCASE.
CASE repo.
WHEN 'SAPMSYST'.
CASE dynpn.
WHEN '0011'.
entid-tcode_or_report = repo = 'Logoff'. "#EC NOTEXT
WHEN '0020'.
entid-tcode_or_report = repo = 'Login_Pw'. "#EC NOTEXT
WHEN '0040'.
entid-tcode_or_report = repo = 'MainMenu'. "#EC NOTEXT
WHEN '0010'. "nicht mehr R2 Lgout !!
* entid-type = 'T'.
* entid-tcode_or_report = '/LON'.
* repo = 'R2 Lgout'.
entid-tcode_or_report = repo.
WHEN '0050'.
entid-type = 'T'.
entid-tcode_or_report = '/LON'. "#EC NOTEXT
repo = 'R2 Login'. "#EC NOTEXT
WHEN '0200'.
entid-tcode_or_report = repo = 'New Pswd'. "#EC NOTEXT
WHEN OTHERS.
entid-tcode_or_report = repo.
ENDCASE.
WHEN 'SAPMSSY0'. "Logon and other system exits
CASE dynpn.
WHEN '0120'.
IF tcode = 'SE38' OR tcode = 'SA38' OR tcode = 'SE80'.
entid-tcode_or_report = repo = 'Rep_List'.
ELSE.
entid-tcode_or_report = repo = 'Login_Ok'.
ENDIF.
WHEN OTHERS.
entid-tcode_or_report = repo.
ENDCASE.
WHEN 'SAPMSSY2'. "BTC Control
CASE dynpn.
WHEN '4004'.
entid-tcode_or_report = repo = '(B)SCHDL'.
WHEN '4005'.
entid-tcode_or_report = repo = '(B)STRTR'.
WHEN '4006'.
entid-tcode_or_report = repo = '(B)ZOMBI'.
WHEN '4007'.
entid-tcode_or_report = repo = '(B)EVDRI'.
WHEN '4008'.
entid-tcode_or_report = repo = '(B)EXTSC'.
WHEN '4009'.
entid-tcode_or_report = repo = '(B)AUTOD'.
WHEN '4010'.
entid-tcode_or_report = repo = '(B)SWTCH'.
WHEN OTHERS.
entid-tcode_or_report = repo = '(B)OTHER'.
ENDCASE.
WHEN 'SAPMSSY3'. "ABAP Debugger
entid-tcode_or_report = repo = 'Debugger'. "#EC NOTEXT
WHEN 'SAPMSSY4'. "Update control
entid-tcode_or_report = repo = 'Upd Ctrl'. "#EC NOTEXT
WHEN 'SAPMSSY6' OR 'SAPMSSY8'. "Auto ABAP (SAPMSSY8 since 4.5)
entid-tcode_or_report = repo = 'AutoABAP'. "#EC NOTEXT
WHEN 'SAPMSSY7'. "Scheduler
entid-tcode_or_report = repo = 'Schedulr'. "#EC NOTEXT
WHEN 'SAPMSEDT'. "Editor
entid-tcode_or_report = repo = 'Rep_Edit'. "#EC NOTEXT
WHEN OTHERS.
IF repo IS INITIAL.
IF dynpn IS INITIAL.
IF user = sapsys_user.
IF terml IS INITIAL AND ttype NE tt_btc.
entid-tcode_or_report = repo = 'System'. "#EC NOTEXT
ELSE.
entid-tcode_or_report = repo = '?'.
ENDIF.
ELSE.
entid-tcode_or_report = repo = 'Aborted'. "#EC NOTEXT
ENDIF.
ELSE.
entid-tcode_or_report = repo = '?'.
ENDIF.
ELSEIF tcode = 'SE38' OR
tcode = 'SA38' OR
tcode = 'SE80' OR
tcode = 'SARP' OR "SARP ausfiltern (Berichtsbaum)
tcode = 'SART' OR "SART ausfiltern (Berichtsbaum)
tcode = 'GR55' OR "GR55 ausfiltern (Berichtsbaum)
ttype = tt_btc OR
tcode IS INITIAL.
entid-tcode_or_report = repo.
ELSE.
entid-tcode_or_report = tcode.
entid-type = 'T'.
* removed in release 6.30
* IF entid-tcode_or_report(3) CA space OR
* entid-tcode_or_report CA '!'.
* entid-tcode_or_report = '!XYZ'.
* ENDIF.
ENDIF.
ENDCASE.
ENDFORM. " TRANSLATE_TCODE_REPORT
‎2006 Oct 06 4:24 PM
The statistic data are stored in files on every application server (and not in the database). The profile parameter stat/file defines the file name. The servers use buffers in the main memory which are regulary flushed.
The transactions access the statistical data using function SAPWL_READ_STATISTIC_FILES (but take care: this function is not a public interface and may be replaced or changed at any time).
Kind regards
Frank Buchholz