During the upgrade of an SAP system, you first have to clean up inactive objects. Here’s how you can find these inactive objects:
In SE80, there is a search option for inactive objects in the menu. You can also access the same dialog through SE11, SE37, SE38, or SE24 via the menu.
How do inactive objects come into existence?
Inactive ABAP objects are created when you edit ABAP source code or tables or data structures and fail to activate them.
Possibly, the object contains errors, preventing its activation. If a more important development task then comes up, you might leave such a leftover behind, resulting in keping an inactive object in the system.
When do inactive objects become a problem?
As long as, for example, an ABAP report is not called, it doesn’t really matter whether you activate it or not. When it gets called, the last activated version will automatically be used. This might work without being noticed.
However, when the SAP system needs an upgrade, the inactive objects must be dealt with. A prerequisite for starting an SAP upgrade is that all inactive objects are cleaned up. You can either (fix and) activate them or delete them.
You might also have to track down the original developers on the system and encourage them to clean up their development. For yourself, it can be difficult to determine whether further development is still needed or how to handle errors during activation.
Inactive objects: how to generate an example
In order to have inactive objects to find later, let’s quickly create two: an inactive report and an inactive structure. I have created each of these objects, saved, activated, and then modified them again, and saved them without activation.
Here is a sample structure.
Please note that the inactive state is indicated in SE11.
Likewise, I have generated an inactive version of a report in SE38.
Findind inactive objects via transaction SE80
The transaction SE80 allows access to all ABAP developments. For instance, it can do everything that the transactions SE11, SE37, and SE38 can do.
For searching inactive objects, there is a dedicated area located within the “Repository Browser” section. When you click on it, a combobox appears with various search options. One of the entries in the Combobox is “inactive objects.”
This list is filtered based on a username. Your username is pre-set. If you want to search across all users, you must first remove this username. The display can be empty, or you can use an asterisk * for filtering.
Here is a list with several entries:
For each kind of object, a node appears (Tables, Programs, Classes, etc.).
It’s important to note that these nodes do not expand automatically. Even a double-click with the mouse does not reliably work. To open the object list, click on the parent node and then press the “right arrow” key on the keyboard.
The list supports forward navigation: you can double-click on the development objects to open them directly.
When you right-click on the objects, the context menu even offers the option to activate them.
Finding inactive objects via SE11, SE37, SE38 or SE24
There is another way to access the search for inactive objects: Transaction SE11, Menu => Environment => Inactive Objects
You can also find this menu entry under “Environment” in the developer transactions SE37 (Function Modules), SE38 (Reports), or SE24 (Classes).
The target of these entries is always the same: the dialog in SE80 that we have already seen (Repository Browser, subsection “inactive objects”)
How to avoid inactive objects
In my company – an SAP consulting firm – we have multiple SAP development systems to test developments. We also practice SAP upgrades on these systems. It’s always a considerable journey. Surely, someone must have forgotten to activate all their objects.
Hence, it is crucial to repeatedly encourage developers to clean up their SAP development and avoid leaving inactive objects lying around.
You might want to make it a monthly task to check for inactive objets on your development system.
More SAP tips can be found here.