How To Fix SV138 - Check maintenance object &1 or update function group &2.


SAP Error Message - Details

  • Message type: E = Error

  • Message class: SV - View Maintenance: Customize Messages

  • Message number: 138

  • Message text: Check maintenance object &1 or update function group &2.

  • Show details Hide details
  • What causes this issue?

    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.

    System Response

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

    How to fix this error?

    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.

    The system issues an error message and will not allow you to continue with this transaction until the error is resolved.

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

    Error message extract from SAP system. Copyright SAP SE.


Smart SAP Assistant

  • What is the cause and solution for SAP error message SV138 - Check maintenance object &1 or update function group &2. ?




    • Do you have any question about this error?


      Upgrade now to chat with this error.


Instant HelpGet instant SAP help. Start your 7-day free trial now.


Related SAP Error Messages

Click the links below to see the following related messages:

Click on this link to search all SAP messages.


Rating
ERPlingo's SAP support assistant is amazing. Saves me countless hours trying to solve complex SAP issues myself. It's a real game changer!
Rate 1
Thomas Michael
SAP Consultant, Author & Speaker