Program IHC_ORG

REPORT IHC_ORG.
************************************************************
* Autor: Ilja Holub
************************************************************
tablest000,dd02l,dd03l,dd02t,tadir,df14ltdevc.
databegin of itab occurs 0,
       mandt 
like t000-mandt,
       app
(2),
       appt 
like df14t-name,
       ci 
type i,
       
end of itab.

datastring(10),
      
i type i,
      tab 
like dd02l-tabname,
      h_mandt
(3VALUE '200',
      h 
like dd02l-contflag,
      ci 
type i.
dataz_empty type i,
      z_not_empty 
type i,
      z_i 
type i,
      i_max 
type i,
      t_max 
like dd02l-tabname,
      i_sum 
type i,
      app 
like df14l-fctr_id,
      app2
(2).
FIELD-SYMBOLS <tab> type dd02l-tabname..
Select-optionss_mandt for h_mandt,
                s_table 
for dd02l-tabname.
PARAMETERSp_tabs as CHECKBOX.   "Extendet list
**************************************
if p_tabs eq 'X'.
  
write'Count of tables in categories'.
endif.
string 
'SGCALEW'.

* Select transparent tables
while not string is initial.
  h 
string(1).
  
select count(*)  from dd02l into i where tabname in s_table
                                       
and tabclass eq 'TRANSP'
                                       
and contflag eq h.
  
write / hi.
  string 
string+1.
endwhile.
if p_tabs eq 'X'.
  
write'**************************************'.
  
write'Organisational sttructures'.
  
select count(*)  from t000 into i.
  
write'Clients'i.
endif.

* Select Clients
select from t000 where mandt in s_mandt.
  
write'Client't000-mandt.
* Select Customizing tables
  
select from dd02l where tabname in s_table
                                       
and tabclass eq 'TRANSP'
                                       
and contflag eq 'C'
                                       
or    contflag eq 'G') .
    
assign dd02l-tabname to <tab>.
    tab 
dd02l-tabname.
* Find out if client specified and count items
    
select single FROM dd03l where tabname eq dd02l-tabname and fieldname eq 'MANDT'.
    
if sy-subrc eq 0.
      
select count(*from (tab)  CLIENT SPECIFIED  into i where mandt eq t000-mandt .
    
else.
      
select count(*from (tab)   into i  .
    
endif.
* Read Development class and Application hierarchy
    
select *  from tadir where pgmid eq 'R3TR'
                         
and  object eq 'TABL'
                         
and  obj_name eq tab.
      
select single from tdevc where devclass eq tadir-devclass.
      
select single from df14l where fctr_id eq tdevc-component
                                  
and  as4local eq 'A'.

      App 
df14l-ps_posid.
      app2 
app(2).
    
endselect.
*
    
if i gt 0.
      
add to z_not_empty.
      
add i to z_i.
      
select single from dd02t where tabname eq dd03l-tabname and ddlanguage eq 'EN'.
      
if p_tabs eq 'X'.
        
write/ dd02t-tabname,idd02t-ddtextdd02l-contflag,app2app.
      
endif.
    
else.
      
add to z_empty.
    
endif.
    
if i gt i_maxi_max i.t_max tabendif.
* Build internal table
    itab
-mandt t000-mandt.
    itab
-app app2.
    itab
-ci i.
    
COLLECT itab into itab.
  
endselect.
endselect.
*
if p_tabs eq 'X'.
  
write'Empty:'z_empty.
  
write'Not empty:'z_not_empty.
  
write'Largest table:'t_maxi_max/.
  
write'Complexity:'z_i.
endif.
write'*******************************************************************'.
loop at itab.
  
at new mandt.
    
clear ci.
    
write'Client:'itab-mandt.
  
endat.
  
select single df14t~name from df14t inner join df14l on df14l~fctr_id eq df14t~fctr_id into itab-appt
    
where ps_posid eq itab-app
     
and df14t~langu eq 'EN'.
  
write/ itab-mandtitab-app ,itab-apptitab-ci.
  
add itab-ci to ci.
  
at end of mandt.
    
write'****************************************************************'.
    
write'Client:'itab-mandt'Complexity'ci.
    
write'****************************************************************'.
  
endat.
endloop.

Language

IHC News