Skip to Content

What options exist to quickly clean-up inactive objects?

Hi Folks!

We are currently executing a system upgrade from NW 7.4 and EHP7 to NW 7.5 and EHP8 in a sandbox system. We have run into issues due to many inactive objects (+/- 200) which need to be cleaned up.

We already tried activating impacted objects individually via SE80 and en masse via a Z-program calling FM RS_WORKING_OBJECTS_ACTIVATE but are not having much success. There are inactive objects for many different object types (TABL, REPS, CINC, CUAD to name just a few) and trying to activate them individually runs into various issues:

  • some don't even exist
  • we have inactive text-elements for no longer existing programs
  • the source system for some objects is different (this might be due to previous system copies)
  • many objects are "old" and the developer who changed it last is long gone
  • trying to activate an object creates an additional entry in table DWINACTIV instead of getting rid of some (most likely due to a different user trying to activate the object)
  • for some activations, transport-requests are required
  • some DDIC-objects cannot be activated due to inconistencies like missing data elements

Trying to activate them via FM RS_WORKING_OBJECTS_ACTIVATE doesn't work as expected either (even though several SCN-threads pointed towards this FM as a solution). Even when it finishes with "Object activated" it - in most cases - the objects don't vanish from the SE80-list of inactive objects and also remain in table DWINACTIV or even insert additional entries for my user-ID.

This is how the FM currently gets called - not sure if the parameters are all needed but I already tried with different combinations and none was successful (the parameter p_check for CHECK_ONLY can be provided via the selection-screen):

      suppress_syntax_check  = 'X'
      suppress_corr_insert   = 'X'
      activate_ddic_objects  = 'X'
      SUPPRESS_ENQUEUE       = 'X'
      check_only             = p_check
*     WITH_POPUP             = ' '
*     P_WB_MANAGER           =
*     SUPPRESS_INSERT        =
*     CWB_MODE               =
*     DISPLAY_SYSID          = ' '
*     UI_DECOUPLED           =
*     CONTEXT                =
*     P_CHECKLIST            =
      objects                = gt_objects
      excecution_error       = 1
      cancelled              = 2
      insert_into_corr_error = 3
      OTHERS                 = 4.

We are looking for two types of solutions:

  1. If push comes to shove, a quick and dirty one to be able to proceed with the upgrade of the sandbox, even if it means deleting some objects if they cannot be activated "easily"
  2. A robust and save option we can implement for the productive development systems, ideally via a custom-program calling a FM or BAPI to tackle or activate multiple objects in one go.

Does anybody have some ideas what we could do and try? Are there other FMs, BAPIs, transactions or reports available we could use or will the objects need to be tackled individually as there just is no "one size fits all" option?

Thanks for any pointers you have!



P.S.: Yes, we know that this is quite a mess!

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

1 Answer

  • Jul 13, 2017 at 04:29 PM

    There is a transaction - don't remember what it is, but it begins with S and has 4 characters... - that finds objects that don't exist in TADIR and entries in TADIR where there is no object and cleans them up. It might help,

    Frankly, a sandbox? Copy development (better, production!) over it and upgrade that.

    Add comment
    10|10000 characters needed characters exceeded

    • Replacing the systems is unfortunately not an option. We have to find a means to activate the incactive objects or to dispose of them in another way. For the sandbox we are open to quick & dirty options to get the upgrade moving forward, for the actual dev-systems we need a workable solution (or multiple solutions dependend on object types and/or current state of the various objects).