SAP Program RDDKOR62 - Consistency Check for SOBJ Object Definitions

Description
Report RDDKOR62 checks the objects and sub-objects for consistency(definition tables: OBJH, OBJT, OBJS, OBJSL, OBJM, OBJSUB, OBJSUBT).Any errors found are output.
The objects to be checked can be restricted by selection (object nameand object type).
The following groups of checks can be selected:

  • Object checks

  • Checks of the generic object lists

  • Object directory entry checks

  • Sub-object checks

  • IMG module checks

  • Check of the sub-object positions
  • Object checks

    • There is a header entry in OBJH for each entry in OBJT, OBJS, OBJSL or
    • OBJM.

      Checks of the header table OBJH

      • OBJH-OBJECTTYPE: Valid values: V,S,L,T,C,K,D (not empty)

      • OBJH-OBJECTNAME: The object name is not empty

      • Type V: The name specifies an active view (DD02L) with changeauthorization
        Type S: The name specifies an active table (DD02l)
        Type L: The name has length 4 and is not a predefined transport object
        Type C: The name defines a view cluster (VCLDIR)
        Types V, S: The table/view has extended maintenance (TVDIR)
        • There is an entry in OBJT for language SY-LANGU for objects of types L,
        • T, K and D.
          • OBJH-OBJCATEG: Valid values: APPL,CUST,CUSY,SYST (empty for type D)

          • OBJH-OBJTRANSP: Valid values: Space,1,2,3 (empty for type D)

          • Type L: OBJH-OBJTRANSP: Value must be 2 if CHECKID = L
            The value 3 is only permitted for type D.
            • Type L: OBJH-OBJNAMELEN: Length > 0

            • Type L: OBJH-OBJNAMELEN: Length <= 40 if CHECKID = L

            • Type L: OBJH-CHECKID: Valid values: R,L (not empty)

            • Type L: OBJH-CHECKID: Value L not permitted if CLIDEP = X

            • Type L: OBJH-LOCKMETH: Valid values: SPACE,ROOT (only CHECKID = L)

            • Type L: OBJH-OBJNAMCLS: Valid values: SPACE,1,2,3 (only CHECKID = L)
            • Checks of the object list OBJS

              • OBJS-TABNAME

              • Types V,S,L,T: The name specifies an active table.
                Types C,K: The name specifies an active table or view.
                Type D: No object list permitted.
                The table/view is client-dependent <-> OBJH-CLIDEP = X
                The table can only be a protected system table if the table belongs tothe generated object list (i.e. object type is V or S and DDIC = X).
                Types C,K: There is an object of type V/S for the table/view

                Checks of the object list for logical objects OBJSL

                • OBJSL-PGMID/OBJECT: Valid values: R3TR/TABU, LIMU/DOCU (not empty)

                • OBJSL-TOBJ_NAME or OBJSL-TOBJKEY must contain /&

                • For R3TR TABU: Table OBJSL-TOBJ_NAME is active

                • For R3TR TABU: The table is client-dependent <-> OBJH-CLIDEP = X

                • For LIMU DOCU: OBJH-CLIDEP must be SPACE

                • OBJSL-PRIM_TABLE: Value X only permitted for R3TR TABU

                • OBJSL-TOBJKEY: Checks for R3TR TABU:

                • Warning: Generic symbol /* at the beginning of the field or in the lastfield
                  Key fields as of position 120 must be generic
                  The client field must be specified with /C
                  The language field must be specified with /L
                  A numeric field contains only numbers
                  Table key is generic or not too short
                  Table key is not too long
                  Key fields of non-character type must be generic
                  • OBJSL-TOBJ_NAME/TOBJ_KEY: Checks of the substitution symbols:

                  • String contains no / without subsequent /,C,L or *
                    /&, /C, /L, /* may only occur once
                    OBJSL-TOBJ_NAME: /* may not appear before /&
                    OBJSL-TOBJKEY: /* may only occur at end
                    • OBJSL-MASKNLEN/MASKKLEN: The mask lengths are computed correctly
                    • Checks of object attributes against the object list

                      • Type <> D: The object list is not empty.

                      • Fields CLIDEP, OBJCATEG, LANGDEP, PROTECT and OBJTRANSP of OBJH are
                      • derived from the tables or views (types C, K) of the object list orchecked against these.
                        • OBJH-CLIDEP: Value is SPACE <-> Object list contains client-independent
                        • table/view/DOCU; there may not be a mixture with regard to clientdependency in the object list
                          • OBJH-OBJCATEG: The category may not be "less than" a category of an
                          • element of the object list; the following order exists here: APPL Table of class A -> APPL
                            client-dependent table of classes C,G,E -> CUST
                            client-dependent table of class S -> CUSY
                            client-independent table of classes C,G,E -> CUSY
                            all other tables -> SYST
                            LIMU DOCU element -> SYST
                            • OBJH-LANGDEP: Value is X <-> object list contains language-dependent
                            • table/view (DD09L-UEBERSETZ)
                              • OBJH-PROTECT: Value is X <-> generated object list contains protected
                              • system table (SYSTABCHECK)
                                • OBJH-OBJTRANSP:

                                • Types V, S: value must be 2 if TVDIR-FLAG = SPACE or an entry withTVIMF-EVENT = 10,11,12 exists
                                  Types C, K: The value must be the maximum of the values of the objectsof the object list

                                  Checks of the method table OBJM

                                  • OBJM-METHOD: Valid values: AFTER_IMP (not empty)

                                  • OBJM-METHODNAME: Not empty and named F-module (TFDIR)
                                  • Checks of the generated object lists

                                    • Types V, S: The tables of the object list with DDIC = X are exactly the
                                    • view tables with update authorization (VIEW_GET_TABLES)
                                      • Type C: The views/tables of the object list with DDIC= X are exactly
                                      • the view cluster components (VIEWCLUSTER_GET_OBJECTS)
                                        • Type L: The tables of object list OBJS with DDIC= X are exactly the
                                        • R3TR TABU elements of object list OBJSL

                                          Object directory entry checks

                                          • There is an object directory entry for each object (R3TR TOBJ)

                                          • There is an object for each object directory entry of type R3TR TOBJ
                                          • Sub-object checks

                                            • There is an object in OBJH for each entry in OBJSUB

                                            • There is a header entry in OBJSUB for each entry in OBJSUBT

                                            • OBJSUB-SUBOBJNAME: The name is not empty

                                            • There is an entry in OBJSUBT for language SY-LANGU for each sub-object.

                                            • OBJSUB-TCODE: The transaction is filled and exists (TSTC)

                                            • OBJSUB-VARIANT: If the variant is not empty, the object type is V or S
                                            • and the variant exists (TVIMV)
                                              • OBJSUB-HELPFLAG: Value must be X
                                              • IMG module checks

                                                • OBJSUB-DOC_TYPE/DOC_OUTL/DOC_CLS/DOC_OBJ/POSITION: All the values are
                                                • empty or all the values are filled.
                                                  • OBJSUB-DOC_TYPE: Value must be 0

                                                  • OBJSUB-DOC_OUTL: The structure exists (TOCX_OBJECT_EXISTS)

                                                  • OBJSUB-DOC_CLS: Value must be SIMG

                                                  • OBJSUB-DOC_OBJ: The object exists (TOCX_FIND_CHAPTER_IN_STRUCTURE)
                                                  • Check of the sub-object positions

                                                    • The positions OBJSUB-POSITION are unique in the whole table OBJSUB for
                                                    • each document (OBJSUB-DOC_CLS and OBJSUB-DOC_OBJ).