Skip to Content
avatar image
Former Member

Global list of all custom/developed objects

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?

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

6 Answers

  • avatar image
    Former Member
    Mar 10, 2008 at 11:48 AM

    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.

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Mar 10, 2008 at 11:53 AM

    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.

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Mar 10, 2008 at 12:00 PM

    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.

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Mar 10, 2008 at 12:03 PM

    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.

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Mar 11, 2008 at 08:46 AM

    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!

    Add comment
    10|10000 characters needed characters exceeded

    • 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.

  • avatar image
    Former Member
    Mar 11, 2008 at 09:10 AM

    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

    Add comment
    10|10000 characters needed characters exceeded