REPORT ZCPUTREE LINE-SIZE 255 NO STANDARD PAGE HEADING.
************************************************************************
* This program displays the UNIX process table as a tree. A click
* on a node (process) will expand the tree and display it's children
* processes. Along with the processes names the process id, owner
* and consumed CPU time is displayed as well. The heart of the program
* is the FIND_CHILD recursive function module, that creates the
* parent/child tree based upon the pid and ppid
************************************************************************
DATA: L(255), F15 TYPE C, LIN TYPE I, LEVEL TYPE I VALUE 2,
BEGIN OF A,
1(6), 2(6), 3(50), 4(6), 5(6),
END OF A,
BEGIN OF B OCCURS 100,
1 TYPE I, 2 TYPE I, 3(50), 4(6), 5(6),
END OF B,
BEGIN OF C OCCURS 100,
1 TYPE I, 2 TYPE I, 3(50), 4(6), 5(6), LEVEL TYPE I,
END OF C,
BEGIN OF TREE OCCURS 100.
INCLUDE STRUCTURE SNODETEXT.
DATA: END OF TREE.
*
START-OF-SELECTION.
SET PF-STATUS 'LIST'.
*
* Get the process table from UNIX
OPEN DATASET '/tmp/AAAA' FOR INPUT IN TEXT MODE.
TRANSFER 'a' TO '/tmp/AAAA'.
CLOSE DATASET '/tmp/AAAA'.
* The filter option and the result of pf might be UNIX specific
* This version is for HP-UX
OPEN DATASET '/tmp/AAAA' FOR INPUT IN TEXT MODE FILTER
'ps -ef|awk ''{if ($5!~/.[:]./){$5=" "}}{print $0}''|awk ''{print $2,
$3,$8,$1,$7}'''.
DO.
READ DATASET '/tmp/AAAA' INTO L.
IF SY-INDEX = 1.
CONTINUE.
ENDIF.
IF SY-SUBRC <> 0. EXIT. ENDIF.
* I am not interested about the vx_inactive_threads (HP specific!)
IF L NS 'vx_inactive_thread'.
SPLIT L AT ' ' INTO A-1 A-2 A-3 A-4 A-5.
MOVE-CORRESPONDING A TO B.
APPEND B.
ENDIF.
ENDDO.
*
* Move the processes to C based upon their parent/child relationship
READ TABLE B INDEX 1.
MOVE-CORRESPONDING B TO C.
C-LEVEL = LEVEL.
APPEND C.
DELETE B INDEX 1.
* Call a recursive function module
PERFORM FIND_CHILD USING C-1.
*
* Fill up the tree-display table
LOOP AT C.
AT FIRST.
TREE-TEXT1 = 'UNIX processes name'.
TREE-TEXT2 = 'Process id and owner'.
TREE-TEXT3 = 'CPU time'.
TREE-TLENGTH1 = 30. TREE-TLENGTH2 = 30. TREE-TLENGTH3 = 30.
TREE-TCOLOR1 = 1. TREE-TCOLOR2 = 2. TREE-TCOLOR3 = 3.
TREE-TLEVEL = 1.
APPEND TREE.
ENDAT.
MOVE-CORRESPONDING C TO A.
TREE-TEXT1 = A-3.
TREE-TEXT2 = A-1. TREE-TEXT2+10 = A-4.
TREE-TEXT3 = A-5.
TREE-TLENGTH1 = 40. TREE-TLENGTH2 = 20. TREE-TLENGTH3 = 10.
TREE-TCOLOR1 = 1. TREE-TCOLOR2 = 2. TREE-TCOLOR3 = 3.
TREE-TLEVEL = C-LEVEL.
APPEND TREE.
ENDLOOP.
*
* Construct and display the tree
CALL FUNCTION 'RS_TREE_CONSTRUCT'
TABLES
NODETAB = TREE
EXCEPTIONS
TREE_FAILURE = 1.
SY-LSIND = 0.
CALL FUNCTION 'RS_TREE_LIST_DISPLAY'
EXPORTING
CALLBACK_PROGRAM = 'ZCPUTREE'
CALLBACK_USER_COMMAND = 'NODE_SELECT'
IMPORTING
F15 = F15.
*
*---------------------------------------------------------------------*
* FORM FIND_CHILD *
* Recursive f.m. to establish the parent/child relationships *
*---------------------------------------------------------------------*
FORM FIND_CHILD USING VALUE(PARENT_NUMBER) TYPE I.
LOOP AT B.
IF B-2 = PARENT_NUMBER.
* I have found a child - move the parent to the result table and
* try to find the child's children
LEVEL = LEVEL + 1.
MOVE-CORRESPONDING B TO C.
C-LEVEL = LEVEL.
APPEND C.
DELETE B.
PERFORM FIND_CHILD USING B-1.
ENDIF.
ENDLOOP.
* No more children - move one level up
LEVEL = LEVEL - 1.
ENDFORM.
*
*---------------------------------------------------------------------*
* FORM NODE_SELECT *
* This is called, when a node is selected with a double-click *
*---------------------------------------------------------------------*
FORM NODE_SELECT TABLES KNOTEN STRUCTURE SEUCOMM
USING COMMAND
CHANGING EXIT
LIST_REFRESH.
EXIT = ' '.
LIST_REFRESH = 'X'.
ENDFORM.
Subscribe to:
Post Comments (Atom)
Automation Testing
- Manual and Automation testing Challenges
- What you need to know about BVT (Build Verification Testing)
- BVT types
- Learning basics of QTP automation tool and preparation of QTP interview questions
- QuickTest Pro - QTP Functional testing tool review
- Tips you should read before automating your testing work
- Choosing Automation tool for your organization
Blog Archive
-
▼
2010
(342)
-
▼
October
(127)
- free downloadABAP/4 OLE Automation Controller pdf ...
- sap abap program Sample XML Source Code For SAP
- sap abap XML file to word document through SAP
- abap program for How to determine the number of av...
- Handling favorites in ABAP Workbench
- ABAP/4 Programming Quickstart
- Number Range Object in sap
- PERFORMENCE TIPS IN ABAP
- ABAP Tips and Tricks
- ABAP Tips and Tricks
- What is the use of the POSITION and SIZE command i...
- How to find the Driver Program for the given SAPsc...
- How can I set the header and footer in the main wi...
- What the conditional statements used in SAP Scripts?
- What the conditional statements used in SAP Scripts?
- What is the difference between the SAP Script text...
- How can I change the page size of the layout?
- How can I apply shading for the BOXes in SAP Script?
- How can I format the date being displayed in the S...
- How can I format the time in the SAP Script?
- Frequently Used System Variables in SAPScript?
- What are the different types of windows in SAP Scr...
- How can I set the position of the leading sign to ...
- What are the various text formatting options in SA...
- How can I trigger new page in SAPScripts?
- How can I prevent page-break in the message that i...
- How can I copy SAPScripts from one client to another?
- How can I print logos in SAPScripts?
- How can I copy SAPScripts from one client to another?
- How can I Word Wrap the text being displayed in SA...
- How can I display barcodes in SAPScripts?
- I have created a script in language DE. Now I need...
- ABAP Tips and Tricks
- PERFORMENCE TIPS IN ABAP
- ABAP Tips and Tricks
- Number Range Object in sap
- Handling favorites in ABAP Workbench
- abap program for How to determine the number of av...
- ABAP/4 Programming Quickstart
- Some ABAP/4 Query header line variable
- ABAP Quick Viewer
- Creating The Query
- SAP ABAP Queries
- Creating Functional Areas Without a Logical Database
- Creating Functional Areas using a Logical Database
- Creating the ABAP Query
- Creating the User Group in SAP ABAP Queries
- Ranked List and Statistics in abap query
- Data Retrieval Using Program in abap query
- Authorizations in abap query
- What Is SAP Queries
- Authorizations in abap query
- SAP Query (BC-SRV-QUE)
- click on link
- HOW TO DEVELOPE ABAP QUERY
- ABAP/4 Query Hints and Tips IN Abap Query
- ABAP Program: Output of Date Format
- ABAP Programs : Using the events start-of-selectio...
- C program that uses the GUI automatization interfa...
- This ABAP rings the bell on any chosen pc, that ha...
- Method of displaying the hidden ABAPs of SAP - fro...
- abap program for Parallel processing: breaks a rep...
- Simple macro that prevents runnig more than one in...
- abap Program to download/upload table data dynamic...
- Create/Modify/Delete records in any table from CSV...
- Displaying Graphics using an ABAP Program
- ABAP Program: Output of Date Format
- Making a Java Editor in ABAP and compiling it
- Program to Hide ABAP's Source Code and Protects it
- Program to Hide ABAP's Source Code and Protects it
- Using Different Color in ABAP
- Protect part of ABAP code from modifying
- String Handling in ABAP - Removing Unwanted Char
- How to find out Total No of Pages of a Report Outp...
- Split String into two parts at delimiter in sap abap
- Macro to validate Date in abap sap
- How to get the field descriptions of a table?
- Dynamically increase/decrease the number of batch/...
- Have active URL-s in the list an ABAP report creates
- ABAP Program: show and hide windows by request
- Perl script to check the status of the SAP systems...
- abap program for Customized, dynamic login screen
- ABAP Program for refresh dynamically - once a seco...
- ABAP Program for Limit the parallel instances a pa...
- Hide and password-protect any ABAP's source - stil...
- Display the long raw fields of such SAP tables as ...
- ABAP Program for Yet another customized logon scre...
- The abap part, that retrieves the data from the SA...
- abap program for The remote script for 96a
- ABAP Program for This perl displays a self-refresh...
- abap program for Automatically save and circulate ...
- Tree display of the UNIX process table - a click o...
- ABAP Program for Continuously display the rejected...
- abap program for Display the true average response...
- COMMUNICATION INTERFACE IN ABAP COMPLETE
- COMMUNICATION INTERFACE 1
- COMMUNICATION INTERFACE 2
- COMMUNICATION INTERFACE 3
- COMMUNICATION INTERFACE 4
- COMMUNICATION INTERFACE 5
-
▼
October
(127)
No comments:
Post a Comment