SAP Knowledge Base Article - Preview

3139583 - SPRO | SM30 | SM34 | SV138 Check maintenance object xxx or update function group xxx

Symptom

Message no. SV138 appears for example:

Check maintenance object V_T007_GL_ACCOUN or update function group T007_GL_ACCOUNT

Message no. SV138

Diagnosis

The table maintenance dialog called has no maintenance object description. This can be for the following reasons:

  1. 1. It is an SAP table maintenance dialog which was delivered without a maintenance object description.
  1. 2. 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.
  1. 3. 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.

System Response

1st case: contact SAP.

2nd case: retransport the missing maintenance object description or create it.

3rd case: regenerate your maintenance dialog and modify your user routines if necessary. Otherwise the required function cannot be performed.

Procedure

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 (Tools -> ABAP/4 Workbench -> Development -> Other tools -> Gen.tab.maint.dialog). Choose Environment -> Maintenance objects -> Generate.

3rd case: regeneration of a user table maintenance dialog which was created before Release 3.0A

Proceed as follows:

  1. 1. 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

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.
  1. 2. 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.

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.

  • 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

R3TR VDAT

    • and the extension of the transport object

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

SOBJ

  • ) to their maintenance objects. This keeps the logical context.

Action:

    • Delete the TVIMF entry for the event 10.
      Call the transaction "Generate table maintenance dialog" (Tools -> ABAP/4 Workbench -> Development -> Other tools -> Gener.Tab.Maint.dialog). Choose Environment -> 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 SOBJ).

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

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

VIM_CORR_OBJTAB

    • is to be filled. This table has the structure

E071

  • . Further details are in the example below.

  • 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

CORR_KEYTAB

    • (structure

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

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.

Action

  • :
    • Change FORM routines as described above

  • 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.

  • Transport changes
  • If there are several SAP systems, the changed FORM routines must be distributed from the original system.

Example:

Maintenance object: View AROTA01

    1. 1. View definition in Dictonary

TableComments
T9AR_TA1Primary table, changeable
T9AR_TA1TPrimary table text table, changeable
T9AR_TA1SSecondary table, changeable
T002Secondary table, not changeable
T002TSecondary table, not changeable

    1. 2. Maintenance object description object list (transaction SOBJ):

TableComments
T9AR_TA1contained in view
T9AR_TA1Scontained in view
T9AR_TA1Tcontained in view
T9AR_TA2not contained in view

  1. 3. additional table, which is not in the object list, to be maintained
  • T9AR_TA3

  1. 4. Transport link FORM routines:
    • 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.

    • 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.
    IF RC NE 0 AND CORR_ACTION EQ PRUEFEN .
* in test mode exit, if a sub-object is not in
* correction (RC <> 0)
      EXIT.
    ENDIF.
  ENDLOOP.
  IF RC NE 0 AND CORR_ACTION EQ PRUEFEN .
* in test mode exit, if a sub-object is not in
* correction (RC <> 0)
    SY-SUBRC = RC. EXIT.
  ENDIF.

* 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.
    IF RC NE 0 AND CORR_ACTION EQ PRUEFEN .
* in test mode exit when a sub-object is not in
* the correction (RC <> 0)
      EXIT.
    ENDIF.
  ENDLOOP.
  IF RC NE 0 AND CORR_ACTION EQ PRUEFEN .
* in test mode exit when a sub-object is not in
* the correction (RC <> 0)
    SY-SUBRC = RC. EXIT.
  ENDIF.
  SY-SUBRC = RC_SAFE.
ENDFORM.

    • 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.
  IF RC NE 0 AND CORR_ACTION EQ PRUEFEN .
* in test mode exit when a sub-object is not in
* correction (RC <> 0)
    SY-SUBRC = RC.  EXIT.
  ENDIF.

* 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
*     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.
  IF RC NE 0 AND CORR_ACTION EQ PRUEFEN .
* in test mode exit when a sub-object is not in
* correction (RC <> 0)
    SY-SUBRC = RC.  EXIT.
  ENDIF.
  SY-SUBRC = RC_SAFE.
ENDFORM.

Changes in procedure

After making modifications, the following data maintenance procedure is possible:

    1. 1.

Data maintenance

  1. Changed entries are copied into a specified change request.
    1. 2.

Modify change request

    1. Choose the transport mode (

Table view

    1. ->

Transport

  1. ), 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.


Read more...

Environment

This KBA applies for all SAP Products based on NetWeaver and S4H

Keywords

KBA , BC-CUS-TOL-TME , View Maintenance Tool , BC-CUS-TOL-IMG , Implementation Guide , Problem

About this page

This is a preview of a SAP Knowledge Base Article. Click more to access the full version on SAP ONE Support launchpad (Login required).

Search for additional results

Visit SAP Support Portal's SAP Notes and KBA Search.