0% found this document useful (0 votes)
56 views4 pages

Programe

This document defines data structures and variables used to retrieve information about tables that comprise an archive object, get the size details of those tables, and output the results to the screen and a file. It selects the archive object tables, gets their details and sizes, and writes the object, table name, description, and size metrics to internal tables for output.

Uploaded by

Ajeesh Sudevan
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
56 views4 pages

Programe

This document defines data structures and variables used to retrieve information about tables that comprise an archive object, get the size details of those tables, and output the results to the screen and a file. It selects the archive object tables, gets their details and sizes, and writes the object, table name, description, and size metrics to internal tables for output.

Uploaded by

Ajeesh Sudevan
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 4

TABLES : ARCH_OBJ. TYPE-POOLS : ADK .

*---> data declaration DATA : BEGIN OF I_TAB_AOBJ OCCURS 0, OBJECT LIKE ARCH_OBJ-OBJECT, END OF I_TAB_AOBJ. DATA: TABNAM TYPE MSSTABLE. DATA : BEGIN OF I_TAB_YES_DEL OCCURS 0, OBJECT LIKE ARCH_OBJ-OBJECT, TABNAME LIKE DD02V-TABNAME, TEXT LIKE DD02V-DDTEXT, END OF I_TAB_YES_DEL. DATA: BEGIN OF I_DBSTAT OCCURS 0. INCLUDE STRUCTURE DBSTATAM. DATA: END OF I_DBSTAT. DATA: BEGIN OF I_TABSZ OCCURS 0. INCLUDE STRUCTURE MSSTABSIZEINFO. DATA: END OF I_TABSZ. DATA: BEGIN OF I_OUTPUT OCCURS 0, OBJECT LIKE ARCH_OBJ-OBJECT, TNAME LIKE I_DBSTAT-TNAME, TDESC LIKE DD02T-DDTEXT, RESERVED TYPE MSSRESSIZE, ROWS TYPE MSSNUMROWS, DATA TYPE MSSDATASIZE, INDEX TYPE MSSINDEXSIZE, UNUSED TYPE MSSUNUSEDSIZE, END OF I_OUTPUT. DATA: BEGIN OF TABDSC OCCURS 1, TABNAME LIKE DD02T-TABNAME, DDTEXT LIKE DD02T-DDTEXT, END OF TABDSC.

DATA: WA_TABDSC LIKE LINE OF TABDSC. DATA: I_OBJECT_TABLES TYPE ADK_CCMS_TABLE OCCURS 0. DATA: WA_OBJECT_TABLES TYPE ADK_CCMS_TABLE. DATA: V_ARCOBJ LIKE ARCH_OBJ-OBJECT. DATA: FNAME TYPE STRING. PARAMETERS FILENAME TYPE IBIPPARMS-PATH. *---> selection criteria - archive object SELECT-OPTIONS A_OBJECT FOR ARCH_OBJ-OBJECT. *---> Output filename

AT SELECTION-SCREEN ON VALUE-REQUEST FOR FILENAME. PERFORM BROWSE_FILE. START-OF-SELECTION. *---> check the input SELECT OBJECT INTO I_TAB_AOBJ FROM ARCH_OBJ WHERE OBJECT IN A_OBJECT. APPEND I_TAB_AOBJ. ENDSELECT.

SORT TABDSC ASCENDING BY TABNAME. *---> get the list of tables that comprise the arhive object IF NOT I_TAB_AOBJ[] IS INITIAL. REFRESH I_OBJECT_TABLES. LOOP AT I_TAB_AOBJ. CALL FUNCTION 'ADK_CCMS_GET_TABLES' EXPORTING OBJECT = I_TAB_AOBJ-OBJECT DELETE_TABLES_ONLY = '' TABLES OBJECT_TABLES = I_OBJECT_TABLES EXCEPTIONS OBJECT_NOT_FOUND = 1 OTHERS = 2 . LOOP AT I_OBJECT_TABLES INTO WA_OBJECT_TABLES. I_TAB_YES_DEL-OBJECT = I_TAB_AOBJ-OBJECT . I_TAB_YES_DEL-TABNAME = WA_OBJECT_TABLES-TABNAME. I_TAB_YES_DEL-TEXT = WA_OBJECT_TABLES-TEXT. APPEND I_TAB_YES_DEL. ENDLOOP. IF SY-SUBRC <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. ENDLOOP. ENDIF. SELECT TABNAME DDTEXT INTO CORRESPONDING FIELDS OF TABLE TABDSC FROM DD02T FOR A LL ENTRIES IN I_TAB_YES_DEL WHERE TABNAME = I_TAB_YES_DEL-TABNAME AND DDLANGUAGE = 'E'. *--> find size of each table that comprise the archive object LOOP AT I_TAB_YES_DEL. REFRESH I_DBSTAT. MOVE I_TAB_YES_DEL-OBJECT TO V_ARCOBJ. MOVE I_TAB_YES_DEL-TABNAME TO I_DBSTAT-TNAME. APPEND I_DBSTAT. CALL FUNCTION 'DB_TABLE_DATA_READ' " online lesen TABLES DBSTAT = I_DBSTAT EXCEPTIONS NO_DATA_FOUND = 2 " online nicht gefunden

OTHERS = 3. I_OUTPUT-OBJECT = V_ARCOBJ. LOOP AT I_DBSTAT. I_OUTPUT-TNAME = I_DBSTAT-TNAME. READ TABLE TABDSC INTO WA_TABDSC WITH KEY TABNAME = I_DBSTAT-TNAME BINARY SEARCH . IF SY-SUBRC = 0. I_OUTPUT-TDESC = WA_TABDSC-DDTEXT. ENDIF. TABNAM = I_DBSTAT-TNAME. CALL FUNCTION 'MSS_GET_TABLE_SIZE_INFO' EXPORTING table_name = TABNAM IMPORTING TABLE_SIZEINFO = I_TABSZ EXCEPTIONS NOT_RUNNING_ON_MSSQL = 1 DB_ERROR = 2 INTERNAL_ERROR = 3 DB_NOT_FOUND = 4 NO_DB_ACCESS = 5 SCHEMA_NOT_FOUND = 6 INVALID_INPUT = 7 TABLE_NOT_FOUND = 8 OTHERS = 9 . IF sy-subrc <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ELSE. I_OUTPUT-RESERVED = I_TABSZ-RESERVED. I_OUTPUT-ROWS = I_TABSZ-ROWS. I_OUTPUT-DATA = I_TABSZ-DATA. I_OUTPUT-INDEX = I_TABSZ-INDEX. I_OUTPUT-UNUSED = I_TABSZ-UNUSED. CLEAR I_TABSZ. ENDIF.

APPEND I_OUTPUT. ENDLOOP. ENDLOOP. *---> write output to screen ULINE: /(198). WRITE : /1 SY-VLINE,3 'OBJECT' COLOR 5, 15 SY-VLINE,17 'TABLE NAME' COLOR 1, 30 SY-VLINE,32 'TABLE DESCRIPTION' COLOR 3, 88 SY-VLINE,90 'Reserved Size(KB)' COLOR 4, 110 SY-VLINE,112 'No.Of.Records' COLOR 2,

132 SY-VLINE,134 'Data Size(KB)' COLOR 6, 154 SY-VLINE,156 'Indexes size(KB)' COLOR 7, 176 SY-VLINE,178 'Unused Size(KB)' COLOR 1, 198 SY-VLINE. ULINE: /(198). LOOP AT I_OUTPUT. WRITE : /1 SY-VLINE,3 I_OUTPUT-OBJECT, 15 SY-VLINE,17 I_OUTPUT-TNAME, 30 SY-VLINE,32 I_OUTPUT-TDESC, 88 SY-VLINE,90 I_OUTPUT-RESERVED, 110 SY-VLINE,112 I_OUTPUT-ROWS, 132 SY-VLINE,134 I_OUTPUT-DATA, 154 SY-VLINE,156 I_OUTPUT-INDEX, 176 SY-VLINE,178 I_OUTPUT-UNUSED, 198 SY-VLINE. ULINE: /(198). ENDLOOP. FNAME = FILENAME. *---> write output to file CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD EXPORTING FILENAME = FNAME FILETYPE = 'DAT' WRITE_FIELD_SEPARATOR = 'X' CHANGING DATA_TAB = I_OUTPUT[] EXCEPTIONS FILE_WRITE_ERROR = 1 NO_BATCH = 2.

*&---------------------------------------------------------------------* *& Form BROWSE_FILE *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* form BROWSE_FILE . CALL FUNCTION 'F4_FILENAME' EXPORTING PROGRAM_NAME = SYST-CPROG DYNPRO_NUMBER = SYST-DYNNR FIELD_NAME = 'FILENAME' IMPORTING FILE_NAME = FILENAME . endform. " BROWSE_FILE

You might also like