Was verursacht dieses Problem?
The table maintenance dialog called has no maintenance object
description. This can be for the following reasons:
It is an SAP table maintenance dialog which was delivered without a
maintenance object description.
The table maintenance dialog is a customer development from Release
3.0A or later and an error may have occurred in the maintenance dialog
transport so that the maintenance object description has not arrived in
the target sytem.
The table maintenance dialog is a customer development from before
Release 3.0A, and you have not used this maintenance dialog since the
upgrade to a higher release. You must then change the maintenance
dialog for the changed transport link because the transport link to the
extended table maintenance (View maintenance, SM30) was changed for
Release 3.0A.
There is now an automatic transport link in addition to the manual
transport link which has existed since 2.0: the user must now specify a
change request when saving in the table maintenance dialog. All changed
entries are then put in the change request via the automatic transport
link.
The extended table maintenance transport link changes require changes
in the generated parts of the table maintenance dialog and the creation
of, so that they must be regenerated.
If you use user routines in the table maintenance dialog to link to
other tables which are maintained by user routines, they must also be
slightly modified.
Systemantwort
<ZU>1st case:</> contact SAP.
<ZU>2nd case:</> retransport the missing maintenance object description
or create it.
<ZU>3rd case:</> regenerate your maintenance dialog and modify your
user routines if necessary. Otherwise the required function cannot be
performed.
Wie behebe ich diesen Fehler?
1st case: missing maintenance object description of an SAP table
maintenance dialog
Inform SAP of the error and the table maintenance dialog name.
2nd case: missing maintenance object description of a user table
maintenance dialog which was created after 3.0A
Check your maintenance object description or maintenance dialog
transports. If the maintenance object description is in your
development system, repeat its transport.
If the maintenance object description is not in your development
system, create it using the transaction "Generate table maintenance
dialog" in (<LS>Tools</> -> <LS>ABAP/4 Workbench</> -> <LS>Development
</> -> <LS>Other tools </> -> <LS>Gen.tab.maint.dialog</>). Choose
<LS>Environment</> -> <LS>Maintenance objects</> -> <LS>Generate</>.
3rd case: regeneration of a user table maintenance dialog which was
created before Release 3.0A
Proceed as follows:
RESET N1
Regenerate the table maintenance dialog for your maintenance dialog
which is not delivered by SAP.
Perform the regeneration which has been made necessary by the transport
concept changes with the program <ZH>RSVIM30A</>. You can pass tables
or views or function groups to this program for processing via
selection options. Specify those tables or views (or function groups)
for which you generated table maintenance dialogs before release 3.0
using the program RSVIEWGN or the transaction SE54. The program
RSVIM30A documentation contains further information.
Transport the regenerated objects
If there are several SAP systems, you must distribute the regenerated
objects from the original system. For this purpose, the objects changed
by the program RSVIM30A are automatically logged in a change request
(see the program documentation). You can transport this request into
subsequent systems.
RESET N1
If you have not used any user FORM routines in the table maintenance
dialogs, to link other tables which are maintained by user routines, no
further action is required.
If you have used such user routines, you must modify and transport
them. You must do this for all the tables or views for which there are
entries in the table TVIMF for the events 10, 11 and/or 12.
<ZH>FORM routines for entering further tables in the change request</>
(Event "10" - after generating the change request header record (E071))
Since the introduction of the new transport object <ZH>R3TR VDAT</> and
the extension of the transport object <ZH>R3TR TABU</> functionality,
you should no longer enter these tables, which belong logically to the
maintenance object (SM30 object), individually in the change request.
This loses the logical context which is then no longer visible in the
change request.
Use the new possibility of assigning the additional tables in the
maintenance object definition object list (transaction <ZH>SOBJ</>) to
their maintenance objects. This keeps the logical context.
<ZH>Action:</>
Delete the TVIMF entry for the event <ZH>10</>.
Call the transaction "Generate table maintenance dialog" (<LS>Tools</>
-> <LS>ABAP/4 Workbench</> -> <LS>Development</> -> <LS>Other tools</>
-> <LS>Gener.Tab.Maint.dialog</>). Choose <LS>Environment</> ->
<LS>Events</>.
If you no longer need these FORM routines, delete them with the ABAP/4
editor.
Put the additional tables in the maintenance object object list
(transaction <ZH>SOBJ</>).
<ZH>Note:</>
You can also transport tables which are not specified in the
maintenance object object list, in user FORM routines. These tables
then require their own header record (R3TR TABU ...) in the change
request. The relationship between these objects can no longer be seen
in the change request. If you want this, you must modify the FORM
routine so that it only creates R3TR-TABU entries for the tables which
are <ZH>not</> in the maintenance object object list. Also, the records
must no longer be written directly in the change request, (the routine
FCOMMAPPEND(RDDCORRD) has been used until now), only the global
internal table <ZH>VIM_CORR_OBJTAB</> is to be filled. This table has
the structure <ZH>E071</>. Further details are in the example below.
Das System gibt eine Fehlermeldung aus und erlaubt Ihnen nicht, mit dieser Transaktion fortzufahren, bis der Fehler behoben ist.
<ZH>FORM routine to add the keys of additional table entries to a table
or view record</> (Event "11" - after changing a change request key
entry (E071K))
This routine appends the key entries for the additional tables, which
belong to each maintenance object entry, to the internal table
<ZH>CORR_KEYTAB</> (structure <ZH>E071K</>). The additional table in
question has so far itself been entered as the master object
(CORR_KEYTAB-MASTERTYPE = 'TABU'. CORR_KEYTAB-MASTERNAME = '......').
This is now only necessary for those additional tables which are <ZH>
not</> in the maintenance object object list.
For additional tables which are in the object list, the maintenance
object itself must be specified as master object. This has already been
done in the global variables E071K, so that the assignments for
CORR_KEYTAB-MASTERTYPE and CORR_KEYTAB-MASTERNAME can be deleted after
the initialization of CORR_KEYTAB with E071K (CORR_KEYTAB = E071K).
Alternatively, the global variables MASTER_TYPE or MASTER_NAME can be
assigned.
<ZH>Action</>:
Change FORM routines as described above
<ZH>FORM routine to add the keys of the additional table entries</>
(event "12" - after the change request key entry changes (E071K))
This routine appends the key entries for the additional tables, which
do not necessarily belong to a single maintenance object entry, to the
internal table CORR_KEYTAB (structure E071K).
The same apples as for the FORM routine at event 11.
<ZH>Transport changes</>
If there are several SAP systems, the changed FORM routines must be
distributed from the original system.
Example:
RESET N1
<ZH>Maintenance object:</> View AROTA01
View definition in Dictonary
Table,,Comments
T9AR_TA1,,Primary table, changeable
T9AR_TA1T,,Primary table text table, changeable
T9AR_TA1S,,Secondary table, changeable
T002,,Secondary table, not changeable
T002T,,Secondary table, not changeable
Maintenance object description object list (transaction SOBJ):
Table,,Comments
T9AR_TA1,,contained in view
T9AR_TA1S,,contained in view
T9AR_TA1T,,contained in view
T9AR_TA2,,not contained in view
additional table, which is not in the object list, to be maintained
T9AR_TA3
Transport link FORM routines:
<ZH>Routine for entering additional tables in the change request</>
(event "10" - after creating the change request header entries (E071))
*--------------------------------------------------------
* FORM E071_AROTA01
*-------------------------------------------------------
* Fill VIM_CORR_OBJTAB with additional objects. Only objects
* which are NOT in the object description object list (SOBJ)
* Specifically only the table T9AR_TA3.
-------------------------------------------------------*
FORM E071_AROTA01.
VIM_CORR_OBJTAB = E071.
VIM_CORR_OBJTAB-PGMID = 'R3TR'.
VIM_CORR_OBJTAB-OBJECT = 'TABU'.
VIM_CORR_OBJTAB-OBJ_NAME = 'T9AR_TA3'.
VIM_CORR_OBJTAB-OBJFUNC = 'K'.
APPEND VIM_CORR_OBJTAB.
ENDFORM.
<ZH>Routine to add the key of the additional table entries to a table
or view entry</>
(event "11" - after changing change request key entries (E071K))
*---------------------------------------------------------
* FORM E071KS_AROTA01
*---------------------------------------------------------
* Fill the CORR_KEYTAB with the key entries of the
* additional objects, which belong to the current view
* entry. These are in the appropriate work area at
* call time.
*---------------------------------------------------------
FORM E071KS_AROTA01.
DATA: RC LIKE SY-SUBRC, RC_SAFE LIKE SY-SUBRC VALUE '1'.
* 1. additional object: T9AR_TA2 (in object list):
* construct CORR_KEYTAB entry (E071K):
* 1.1 Initialize with global pre-set E071K
CORR_KEYTAB = E071K.
* or:
* CORR_KEYTAB-TRKORR = E071K-TRKORR.
* CORR_KEYTAB-PGMID = TRANSPORTER. "R3TR
* CORR_KEYTAB-OBJECT = TRANSP_OBJECT. "TABU
* CORR_KEYTAB-MASTERTYPE = MASTER_TYPE "VDAT
* CORR_KEYTAB-MASTERNAME = MASTER_NAME "e.g. AROTA01
* 1.2 specify individual object name
CORR_KEYTAB-OBJNAME = 'T9AR_TA2'.
* 1.3 determine which object keys are to be transported,
* depending on the current view entry
* and enter them in CORR_KEYTAB ...
LOOP AT IT9AR_TA2 INTO T9AR_TA2
WHERE KEY1 EQ AROTA01-KEY1.
CORR_KEYTAB-TABKEY = T9AR_TA2-KEY1.
* ...Object key has now been found, use central
* FORM routine to update table:
CLEAR RC.
PERFORM UPDATE_CORR_KEYTAB USING CORR_ACTION RC.
RC_SAFE = RC * RC_SAFE.
* in test mode exit, if a sub-object is not in
* correction (RC <> 0)
EXIT.
ENDLOOP.
* in test mode exit, if a sub-object is not in
* correction (RC <> 0)
SY-SUBRC = RC. EXIT.
* 2. additional object: T9AR_TA3 ( NOT in
* object list):
* - construct CORR_KEYTAB entry (E071K):
* 2.1 Fill fields with individual values
CLEAR CORR_KEYTAB.
CORR_KEYTAB-TRKORR = E071K-TRKORR.
CORR_KEYTAB-PGMID = 'R3TR'.
CORR_KEYTAB-OBJECT = 'TABU'.
CORR_KEYTAB-OBJNAME = 'T9AR_TA3'.
CORR_KEYTAB-MASTERTYPE = 'TABU'.
CORR_KEYTAB-MASTERNAME = 'T9AR_TA3'.
* 2.2 determine object keys to be transported, depending
* on the current view entry
* and enter them in CORR_KEYTAB...
LOOP AT IT9AR_TA3 INTO T9AR_TA3
WHERE KEY1 EQ AROTA01-KEY1.
CORR_KEYTAB-TABKEY = T9AR_TA3-KEY1.
CORR_KEYTAB-TABKEY+4 = T9AR_TA3-KEY2.
* ...Object key has now been found, use the
* central FORM routine to update the table:
CLEAR RC.
PERFORM UPDATE_CORR_KEYTAB USING CORR_ACTION RC.
RC_SAFE = RC * RC_SAFE.
* in test mode exit when a sub-object is not in
* the correction (RC <> 0)
EXIT.
ENDLOOP.
* in test mode exit when a sub-object is not in
* the correction (RC <> 0)
SY-SUBRC = RC. EXIT.
SY-SUBRC = RC_SAFE.
ENDFORM.
<ZH>Routine to add the keys of the additional table entries</>
(event "12" - after changing the change request key entries (E071K))
*---------------------------------------------------------
* FORM E071KA_AROTA01
*---------------------------------------------------------
* Fill CORR_KEYTAB with the key entries of the
* additional objects which could not be immediately
* assigned to a single view entry.
*---------------------------------------------------------
FORM E071KA_AROTA01.
DATA: RC LIKE SY-SUBRC.
* 1. Additional object: T9AR_TA2 (in
* object list):
* construct CORR_KEYTAB entry (E071K):
* 1.1 Initialize with global pre-set E071K
CORR_KEYTAB = E071K.
* or:
* CORR_KEYTAB-TRKORR = E071K-TRKORR.
* CORR_KEYTAB-PGMID = TRANSPORTER. "R3TR
* CORR_KEYTAB-OBJECT = TRANSP_OBJECT. "TABU
* CORR_KEYTAB-MASTERTYPE = MASTER_TYPE "VDAT
* CORR_KEYTAB-MASTERNAME = MASTER_NAME "e.g. AROTA01
* 1.2 specify individual object name
CORR_KEYTAB-OBJNAME = 'T9AR_TA2'.
* 1.3 determine object keys to be transported
* and enter them in CORR_KEYTAB...
...... individual coding, the view entries can
...... be taken from the internal table TOTAL.
CORR_KEYTAB-TABKEY = T9AR_TA2-KEY1.
* ...Object key has now been determined, use
* central FORM routine for table update:
CLEAR RC.
PERFORM UPDATE_CORR_KEYTAB USING CORR_ACTION RC.
RC_SAFE = RC * RC_SAFE.
* in test mode exit when a sub-object is not in
* correction (RC <> 0)
SY-SUBRC = RC. EXIT.
* 2. additional object: T9AR_TA3 ( <ZH>not</> in
* object list):
* - construct CORR_KEYTAB entry (E071K):
* 2.1 Fill fields with individual values
CLEAR CORR_KEYTAB.
CORR_KEYTAB-TRKORR = E071K-TRKORR.
CORR_KEYTAB-PGMID = 'R3TR'.
CORR_KEYTAB-OBJECT = 'TABU'.
CORR_KEYTAB-OBJNAME = 'T9AR_TA3'.
CORR_KEYTAB-MASTERTYPE = 'TABU'.
CORR_KEYTAB-MASTERNAME = 'T9AR_TA3'.
* 2.2 determine object keys to be transported
* and enter them in CORR_KEYTAB...
...... individual coding, the view entries can
...... be taken from the internal table TOTAL.
CORR_KEYTAB-TABKEY(4) = T9AR_TA3-KEY1.
CORR_KEYTAB-TABKEY+4 = T9AR_TA3-KEY2.
* ...Object key has been determined, use
* central FORM routine for table update:
CLEAR RC.
PERFORM UPDATE_CORR_KEYTAB USING CORR_ACTION RC.
RC_SAFE = RC * RC_SAFE.
* in test mode exit when a sub-object is not in
* correction (RC <> 0)
SY-SUBRC = RC. EXIT.
SY-SUBRC = RC_SAFE.
ENDFORM.
RESET N1
&HANDLING&
After making modifications, the following data maintenance procedure is
possible:
<ZH>Data maintenance</>
Changed entries are copied into a specified change request.
<ZH>Modify change request</>
Choose the transport mode (<LS>Table view</> -> <LS>Transport</>), and
enter the number of the request which is to be changed. Then either
copy the additional entries into the request, or delete those entries
from the request which are not to be transported.
You only need to perform the second step after finishing the work, just
before releasing change request to the change task. As all changed
entries are logged, nothing is forgotten during the transport. In
particular table record deletions can now be transported.
The previous procedure using only the manual transport link is still
possible, but in this case deletions cannot be easily transported.
Fehlermeldungsextrakt aus SAP-System. Copyright SAP SE