Scan all tables and count rows in each#
You need to limit the tables in
AND a~tabname >= 'Z'
otherwise you get a time out.
*&---------------------------------------------------------------------*
*& Report Z_MARKUS001
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT z_markus001. " comment after
*&---------------------------------------------------------------------*
*& This is my first ABAP program
*&---------------------------------------------------------------------*
*& Global Declarations
*&---------------------------------------------------------------------*
CLASS demo DEFINITION.
PUBLIC SECTION.
CLASS-METHODS main.
ENDCLASS. "demo DEFINITION
*----------------------------------------------------------------------*
* CLASS demo IMPLEMENTATIO
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS demo IMPLEMENTATION.
METHOD main.
CONSTANTS dset TYPE string VALUE 'C:\temp\sap.csv'.
TYPES: BEGIN OF tabdata,
tabname TYPE tabname,
ddtext TYPE ddtext,
END OF tabdata.
DATA: rs TYPE cursor,
help TYPE string,
help2 TYPE string,
text TYPE string,
text2 TYPE string,
fn TYPE fieldname,
cc TYPE i,
total TYPE i,
idx TYPE i,
where_cl TYPE string,
order_cl TYPE string,
dd02l_wa TYPE tabdata,
dd03l_wa TYPE dd03l,
tabparam TYPE tabname.
"tabname char 30
OPEN DATASET dset FOR OUTPUT IN TEXT MODE ENCODING UTF-8.
OPEN CURSOR rs FOR SELECT
a~tabname
b~ddtext
FROM dd02l AS a
INNER JOIN dd02t AS b
ON b~tabname = a~tabname
WHERE b~ddlanguage = 'E'
AND a~tabname >= 'Z'
AND a~tabclass = 'TRANSP'
ORDER BY a~tabname.
"WHERE b~ddlanguage = 'E' AND a~tabname LIKE 'DD02%' AND a~tabclass = 'TRANSP'.
DO.
idx = sy-index.
FETCH NEXT CURSOR rs
INTO dd02l_wa.
IF sy-subrc <> 0.
CLOSE CURSOR rs.
EXIT.
ENDIF.
"get REFERENCE OF dd02l_wa-tabname into tabparam.
tabparam = dd02l_wa-tabname.
SELECT COUNT( * ) INTO total FROM (tabparam).
help = cc.
help2 = total.
CONCATENATE help dd02l_wa-tabname dd02l_wa-ddtext help2 INTO text SEPARATED BY ';'.
tabparam = dd02l_wa-tabname.
CONCATENATE 'tabname = ''' dd02l_wa-tabname '''' INTO where_cl.
order_cl = 'position'.
SELECT * FROM dd03l INTO dd03l_wa WHERE (where_cl)
ORDER BY (order_cl).
CONCATENATE dd03l_wa-fieldname ' (' dd03l_wa-inttype dd03l_wa-intlen ')' INTO text2.
CONCATENATE text text2 INTO text SEPARATED BY ';'.
ENDSELECT.
TRANSFER text TO dset.
cc = cc + 1.
ENDDO.
CLOSE DATASET dset.
MESSAGE text TYPE 'I'.
ENDMETHOD. "demo
ENDCLASS. "demo IMPLEMENTATIO
*&---------------------------------------------------------------------*
*& Implementations
*&---------------------------------------------------------------------*
START-OF-SELECTION.
*WRITE text.
demo=>main( ).