Wednesday, December 22, 2021

Manipulating entries in OBJH table

While working on transporting a table maintenance entry recently I came across interesting issue. Normally systems that have a purpose of test/integration/pre-production/production or similar are closed for customizing changes. It is a setting on client level in t-code SCC4 like:

Client Role = "Productive"

Cross-Client Objects Changes = "No changes to Repository and cross-client Customizing objects"

That means that customizing is not allowed to be performed in these systems. Such a systems are called as "non-changeable" systems or "production clients". Change of the customizing is normally only done via transports.

However, a particular customizing (or parameter) table can be set in a way that changes are allowed even in productive clients. To setup the table in that way there is a checkbox called "Current Settings" available in t-code SOBJ (Maintenance Object Attributes). The value is saved in table OBJH (Object: Header) and column OBJTRANSP (Flag for Transport Interface of Maintenance Object). That mean that even changes to client specific objects are not allowed, current settings in the client can be changed. The column OBJTRANSP can have one of these entries:

             No transport

1          Manual transport

2          Automatic transport

3          Transport is not required


There has to be a blank value of the column in order to make the table customizable. Only way, how change the column OBJTRANSP is to regenerate the table maintenance view from t-code SE42 or from SE11.


Initially, I was not sure what makes the table or not maintained. Only once, I debugged table maintenance view (function group TABLEPROC_<table_name>) I realized that value OBJH- OBJTRANSP is being checked.

More information:

356483 - In test system, behavior of customizing objects which are editable in production i.e. Current Settings

77430 - Customizing: Current settings

No comments: