Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Global list of all custom/developed objects

Former Member
0 Kudos

Hi all!

We need to get a list of all custom objects of a SAP systems.

First time we think accessing TADIR to get all repository objects of the system and after this access, get all atributes for any of the retrieved objects.

Example:

To a report, access TADIR and TRDIR dictionary tables. in TADIR use class of development custom or in TRDIR any of the user that don't belongs to SAP.

But this solution to the problem is very effort and we should access so too many tables for the objects to get their attributes.

Second time, we think filtering the objects using their namespace with FM TR_CHECK_NAME_CLASS, but this option jumps some objects, like VOFM generated objects or customer exits form VA01 transaction.

Do any of you know the way of extracting a list of all Custom/developed objects for a System?

9 REPLIES 9

Former Member
0 Kudos

Hi,

U can access transcation SE80, which is a repository of all objects which can serached based on function group, transport group and so on...

Reward appropriate points.

Regards,

Mansi.

Former Member
0 Kudos

Hi,

Check this link.Customer Name Ranges:

http://help.sap.com/saphelp_nw04/helpdata/en/2a/6b0b1f547a11d189600000e829fbbd/content.htm

You can also browse through Workbench Requests in Tranasactions SE01/SE09/SE10.

OR

Create a program using the following tables

PROGDIR, "View of REPOSRC (INF Part, with R3STATE)

TRDIR, "System Table TRDIR

TFDIR, "Function Module

TADIR, "Directory of Repository Objects

with a select on TADIR like

SELECT *

FROM TADIR

WHERE OBJ_NAME LIKE 'Z%'.

Regards,

Omkaram.

Former Member
0 Kudos

Hi,

If i am not wrong, all custom developement will be saved into custom development classes ( All with a 'Z' or 'Y' ). If it is the case, then your query would be nailed down to finding all custom developement classes. for this SE80 can be used to search them.

Hope this helps..

Harikrishna.

Former Member
0 Kudos

Hi,

Go to SE80.

Here you start with Z or Y as these are the only letters thru which custom things names can start with .

So give,

Z* and find out, by pressing F4

and again Y* and find out, by pressing F4.

Reward if helpful.

Regards.

Former Member
0 Kudos

Hi all!

Thanks for all the answers!

We cannot enter with standard naming convention to TADIR, because some objects don't follow this convention (for example Includes generated from VOFM transaction like RV61A901), this include is needed to be took into account because we enter non-standard code in it.

Entering with Development class also isn't possible, this include has VKON (standard) DEVCL.

We need a list (maybe in excel file) of all developments in the system, this include BW objects, Web objects and so many others.

In the first approximation we've entered TADIR table to get all objects, dividing the object list using only DEVCL could be not correct, f.e. the include mentioned before. We thought the possibility of using the User that has created the object, but we've not got all the attributes table for all the objects.

Could exist another possibility to get all custom objects of the system?

Thanks in advance!

0 Kudos

Hi

Please check if report CUSTMON1 helps..

Regards,

Arun

0 Kudos

Hi,

Just check if this suffices.

REPORT zobjects no standard page heading

TABLES:TADIR,TSTC,V_USERNAME,VRSD.

TYPE-POOLS:slis,VRM.

TYPES: BEGIN OF ittemp,

object LIKE tadir-object,

obj_name LIKE tadir-obj_name,

text LIKE trdirt-text,

author LIKE tadir-author,

devclass like tadir-devclass,

name_text LIKE v_username-name_text,

tcode like tstc-tcode,

korrnum like vrsd-korrnum,

END OF ittemp.

DATA: itfinal TYPE STANDARD TABLE OF ittemp WITH HEADER LINE,

wafinal TYPE ittemp.

DATA : name TYPE vrm_id,

list TYPE vrm_values,

value LIKE LINE OF list.

DATA:itfieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.

DATA:itrepid TYPE sy-repid.

itrepid = sy-repid.

DATA:itevent TYPE slis_t_event.

DATA:itlistheader TYPE slis_t_listheader.

DATA:walistheader LIKE LINE OF itlistheader.

DATA:itlayout TYPE slis_layout_alv.

DATA:top TYPE slis_formname.

DATA:itsort TYPE slis_t_sortinfo_alv WITH HEADER LINE.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

PARAMETER: PACKAGE LIKE TADIR-DEVCLASS.

SELECTION-SCREEN END OF BLOCK B1.

START-OF-SELECTION.

PERFORM getdata.

PERFORM alv.

&----


*& Form GETDATA

&----


  • text

----


FORM getdata.

  • read the repository object table and link with username if found

SELECT tadir~object

tadir~obj_name

trdirt~text

tadir~author

tadir~devclass

v_username~name_text

INTO TABLE itfinal

FROM tadir

LEFT JOIN v_username

ON tadirauthor = v_usernamebname

LEFT JOIN trdirt

ON tadirobj_name = trdirtname

WHERE tadir~devclass = PACKAGE

"'$TMP'

AND ( tadirobj_name LIKE 'Z%' OR tadirobj_name LIKE 'Y%' ).

CHECK sy-subrc EQ 0.

loop at itfinal.

*TCODE FROM TSTC

select single tcode from tstc into (itfinal-tcode) where pgmna =

itfinal-obj_name.

*LATEST TRANSPORT REQUEST NUMBER FROM VRSD

select single korrnum from vrsd into (itfinal-korrnum) where objname =

itfinal-obj_name.

modify itfinal.

endloop.

delete itfinal where korrnum is INITIAL.

SORT itfinal BY author object.

ENDFORM. "GETDATA

&----


*& Form ALV

&----


  • text

----


FORM alv.

IF itfinal[] IS INITIAL.

MESSAGE 'No Values exist for the Selection.' TYPE 'S'.

STOP.

ENDIF.

DEFINE m_fieldcat.

itfieldcat-fieldname = &1.

itfieldcat-col_pos = &2.

itfieldcat-seltext_l = &3.

itfieldcat-do_sum = &4.

itfieldcat-outputlen = &5.

append itfieldcat to itfieldcat.

clear itfieldcat.

END-OF-DEFINITION.

m_fieldcat 'OBJECT' '' 'OBJECT' '' 04 .

m_fieldcat 'OBJ_NAME' '' 'PROGRAM NAME' '' 40 .

m_fieldcat 'TCODE' '' 'TCODE' '' 20 .

m_fieldcat 'TEXT' '' 'DESCRIPTION' '' 70 .

m_fieldcat 'AUTHOR' '' 'AUTHOR' '' 80 .

m_fieldcat 'DEVCLASS' '' 'PACKAGE' '' 30 .

m_fieldcat 'KORRNUM' '' 'LATEST TRANSPORT REQUEST' '' 20 .

itlayout-zebra = 'X'.

itlayout-colwidth_optimize = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = sy-repid

is_layout = itlayout

i_callback_user_command = 'LIST1'

i_callback_top_of_page = 'TOP'

it_fieldcat = itfieldcat[]

i_save = 'A'

  • is_variant = ITVARIANT

it_events = itevent[]

  • is_print = ITPRINTPARAMS

it_sort = itsort[]

TABLES

t_outtab = itfinal

EXCEPTIONS

program_error = 1

OTHERS = 2.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ENDFORM. "ALV

&----


*& Form TOP

&----


  • Top of page for ALV Report

----


FORM top.

DATA:STRING1(70),

STRING2(70),

title1(100),

title2(100),

count(10).

describe table itfinal lines count.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 0

IMPORTING

et_events = itevent

  • EXCEPTIONS

  • LIST_TYPE_WRONG = 1

  • OTHERS = 2

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

string1 = 'List of Objects in Development Class'.

concatenate string1 ':' itfinal-devclass into title1.

walistheader-typ = 'H'.

walistheader-info = title1.

APPEND walistheader TO itlistheader.

string2 = 'Total No.of Objects'.

concatenate string2 ':' count into title2.

walistheader-typ = 'H'.

walistheader-info = title2.

APPEND walistheader TO itlistheader.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = itlistheader

  • I_LOGO = ''.

  • I_END_OF_LIST_GRID =

.

  • ENDIF.

CLEAR itlistheader.

  • ENDIF.

ENDFORM. "TOP

&----


*& Form list1

&----


  • ALV Interactive-

----


  • -->R_UCOMM text

  • -->RS_SELFIELDtext

----


FORM list1 USING r_ucomm LIKE sy-ucomm rs_selfield TYPE slis_selfield.

CASE r_ucomm.

WHEN '&IC1'.

IF rs_selfield-fieldname = 'OBJ_NAME'.

READ TABLE itfinal INDEX rs_selfield-tabindex.

SET PARAMETER ID 'RID' FIELD itfinal-OBJ_NAME.

CALL TRANSACTION 'SE38' AND SKIP FIRST SCREEN.

ELSEIF rs_selfield-fieldname = 'TCODE'.

READ TABLE itfinal INDEX rs_selfield-tabindex.

SET PARAMETER ID 'TCD' FIELD itfinal-TCODE.

CALL TRANSACTION 'SESSION_MANAGER' AND SKIP FIRST SCREEN.

ENDIF.

ENDCASE.

ENDFORM.

K.Kiran.

Former Member
0 Kudos

Check out the FM - RFC_READ_TABLE

In the Qery table give TADIR, In Delimiter give Z* & Y*.

You will get all the custom objects in your system.

Regards

Vinayak

0 Kudos

SE80 is the way to go if you know the Package for all the Custom Developments.

Regards,

Raghav