Transaction SE16 is a development tool.
Restrictions which are required in a production environment are not evaluated in detail by Transaction SE16. These restrictions are set via transactions SCC4 and SE03.
Generally, - in productive environments - a view should be created via Transaction SE54 for tables whose data must be maintained. Data maintenance is then carried out via Transaction SM30.
For safety reasons, the change options of the system must be queried from SE16. This is carried out since Release 3.1I. However, in this case, the following restrictions are valid:
- The delivery class of a table is not taken into account. Also, tables with delivery class 'A' cannot be changed if 'No changes permitted for client-specific objects' is set.
- Tables without the client as the first key field can only be processed if the setting 'Changes to Repository and client-ind. Customizing allowed' is set in SCC4.
- Tables with the client as the first key field can only be processed when changes for client-specific objects are allowed in SCC4.
- As of Release 4.0, it is possible to fix the change option of objects in detail by using Transaction SE06 (button 'System change option'). However, only the global setting of the system maintainability is evaluated by Transaction SE16. This setting affects tables which do not have the client as a first key field.
Direct changes to SAP tables can cause inconsistencies and change the effectiveness of your system. Only make such changes if explicitly asked to do so by SAP. Otherwise, SAP cannot provide support for resulting problems.
The following problems are known:
1. Table maintenance is not possible with Transaction SE16 although it is allowed according to dictionary and system settings. One of the following messages is displayed:
- SV037: The maintenance dialog for & is not complete.
- MO416: Table maintenance not allowed for table &.
- MO418: A maintenance view exists for table &.
2. In some clients, tables cannot be maintained with Transaction SE16.
3. You can add entries to a table although, according to the system settings, the table is not supposed to be maintainable.
Cause and prerequisites
1). A view maintenance already exists for the table. In this case, Transaction SE16 only permits the display. During the creation, you directly branch to SM30 if a maintenance view with the same name as the table exists. There is no error in Transaction SE16.
2). The following prerequisites can cause this behaviour:
- The system change option (Transaction SE06) is set to 'not modifiable'.
- The logon client is set via the client maintenance (Transaction SCC4) to 'No changes allowed for client-dependent objects' (up to Release 4.0B).
- The logon client is set via the client maintenance (Transaction SCC4) to 'No changes allowed for cross-client objects' (up to Release 4.0B).
As a result, no table, not even a client-dependent table, can be changed in systems which include the setting 'cross-client objects cannot be changed'.
3) In this case, the permission to change is not checked.
1. Use the maintenance views belonging to the table:
Enter the table name in the initial screen of Transaction SM31 and then press 'View maintenance'. You then branch to the maintenance view belonging to the table or receive an overview from which you can choose a maintenance view.
As of Release 4. 5, the functions of Transaction SM31 are replaced by Transaction SM30. However, Transaction SM30 only provides the maintenance of the table (on intent) if a corresponding IMG activity is available. Only, in this case, it is ensured that a maintenance is actually intended and that unwanted inconsistencies are avoided.
If you are aware of the risk and you want to maintain a table nevertheless, you have to choose a maintenance view for this table. Maintenance views can be found via the F4 help of Transaction SE11: Select 'All Selections' and enter the table name as basis table.
For your own table in the customer name range, you can create a corresponding maintenance view - if required - with Transaction SE54. You can then maintain the data via Transaction SM30.
2. For this, compare solution 1. and 3.
3. Advance correction:
The advance correction prevents the creation of entries if maintenance is not allowed, and it also permits the change of client-dependent tables with the SE06 setting 'System cannot be changed'. However, the above-mentioned restrictions of the development tool remain.
Replace the routine SYS_PARAMS_CHECK with the source code which is specified in the advance correction. The routine is in Include LSETBU03 (function module RS_TABLE_LIST_CREATE).
- In Release 3.1I you can implement the advance correction or you can apply Hot Package 12.
- In Release 4.0B you can apply Hot Package 10, or you can implement the attached advance correction.
- In Release 4.5A you can implement the advance correction, or you can apply Hot Package 4.
- The correction is contained in the standard system as of Release 4.5B.