Mass Change of TADIR-Entries after System Copy

Nützliche Abap Codes und Code Fragmente

Mass Change of TADIR-Entries after System Copy

Postby Tron » Thu Oct 28, 2021 9:23 am

Oft werden Systemkopien erzeugt und das "Neue" System bekommt danach eine neue SystemID.
Solange man keine Objekte im kopierten System ändern will ist das (fast) OK.
Jedoch wenn es ein neues Entwicklungssystem bedeutet, lassen sich die Objekte nicht so einfach ändern,
da die TADIR Einträge auf das Original/Entwicklungsystem System verweisen.
Das Problem besteht auch, wenn man "fremde" Transporte in sein System importiert.
Das ist unschön.
Man kann diese Routine auch generell zu den Nacharbeiten nach einer Systemkopie einsetzen.

Beispiel : Änderung des Sourcesystems des Pakets ZODATA auf die neue System-ID.
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. *&---------------------------------------------------------------------*
  2. *& Report  ZBC_CHANGE_SOURCE_SYSTEM
  3. *&
  4. *&---------------------------------------------------------------------*
  5. *&
  6. *&
  7. *&---------------------------------------------------------------------*
  8. REPORT ZBC_CHANGE_SOURCE_SYSTEM.
  9. data ls type tadir.
  10. data lt type TABLE OF tadir.
  11. data ltxt type string.
  12. data nl(6).
  13.  
  14. select * from tadir into TABLE lt where DEVCLASS = 'ZODATA' and SRCSYSTEM = <<OLDSystemID>>.
  15. nl = lines( lt ).
  16.  
  17. concatenate nl ' lines found.' into ltxt.
  18. cl_demo_output=>write_text( ltxt ).
  19. cl_demo_output=>display( lt ).
  20.  
  21. loop at lt into ls.
  22.  
  23.   CALL FUNCTION 'TR_TADIR_INTERFACE'
  24.     EXPORTING
  25. *     WI_DELETE_TADIR_ENTRY                = ' '
  26. *     WI_REMOVE_REPAIR_FLAG                = ' '
  27. *     WI_SET_REPAIR_FLAG                   = ' '
  28.       WI_TEST_MODUS                        = ' '
  29.       WI_TADIR_PGMID                       = ls-PGMID
  30.       WI_TADIR_OBJECT                      = ls-OBJECT
  31.       WI_TADIR_OBJ_NAME                    = ls-OBJ_NAME
  32. *     WI_TADIR_KORRNUM                     = ' '
  33.       WI_TADIR_SRCSYSTEM                   = sy-sysid
  34. *     WI_TADIR_AUTHOR                      = ' '
  35. *     WI_TADIR_DEVCLASS                    = ' '
  36. *     WI_TADIR_MASTERLANG                  = ' '
  37. *     WI_TADIR_CPROJECT                    = ' '
  38. *     WI_TADIR_VERSID                      = ' '
  39. *     WI_REMOVE_GENFLAG                    = ' '
  40. *     WI_SET_GENFLAG                       = ' '
  41. *     WI_READ_ONLY                         = ' '
  42. *     IV_SET_EDTFLAG                       = ' '
  43. *     IV_TRANSL_TECH_TEXT                  = ' '
  44. *     IV_DELFLAG                           = ' '
  45. *     IV_NO_PAK_CHECK                      = ' '
  46. *     IV_OBJ_STABILITY                     = ' '
  47. *     WI_TADIR_CHECK_DATE                  = ''
  48. *     WI_TADIR_CHECK_CFG                   = ' '
  49. *   IMPORTING
  50. *     NEW_GTADIR_ENTRY                     =
  51. *     NEW_TADIR_ENTRY                      =
  52.    EXCEPTIONS
  53.      TADIR_ENTRY_NOT_EXISTING             = 1
  54.      TADIR_ENTRY_ILL_TYPE                 = 2
  55.      NO_SYSTEMNAME                        = 3
  56.      NO_SYSTEMTYPE                        = 4
  57.      ORIGINAL_SYSTEM_CONFLICT             = 5
  58.      OBJECT_RESERVED_FOR_DEVCLASS         = 6
  59.      OBJECT_EXISTS_GLOBAL                 = 7
  60.      OBJECT_EXISTS_LOCAL                  = 8
  61.      OBJECT_IS_DISTRIBUTED                = 9
  62.      OBJ_SPECIFICATION_NOT_UNIQUE         = 10
  63.      NO_AUTHORIZATION_TO_DELETE           = 11
  64.      DEVCLASS_NOT_EXISTING                = 12
  65.      SIMULTANIOUS_SET_REMOVE_REPAIR       = 13
  66.      ORDER_MISSING                        = 14
  67.      NO_MODIFICATION_OF_HEAD_SYST         = 15
  68.      PGMID_OBJECT_NOT_ALLOWED             = 16
  69.      MASTERLANGUAGE_NOT_SPECIFIED         = 17
  70.      DEVCLASS_NOT_SPECIFIED               = 18
  71.      SPECIFY_OWNER_UNIQUE                 = 19
  72.      LOC_PRIV_OBJS_NO_REPAIR              = 20
  73.      GTADIR_NOT_REACHED                   = 21
  74.      OBJECT_LOCKED_FOR_ORDER              = 22
  75.      CHANGE_OF_CLASS_NOT_ALLOWED          = 23
  76.      NO_CHANGE_FROM_SAP_TO_TMP            = 24
  77.      OTHERS                               = 25
  78.             .
  79.   IF SY-SUBRC <> 0.
  80. * Implement suitable error handling here
  81.   ENDIF.
  82.  
  83.  
  84. clear: nl,ltxt.
  85. select * from tadir into TABLE lt where
  86.   DEVCLASS = 'ZODATA' and SRCSYSTEM = <<OLDSystemID>>.
  87.  
  88. nl = lines( lt ).
  89. concatenate nl ' lines found.' into ltxt.
  90. cl_demo_output=>write_text( ltxt ).
  91. cl_demo_output=>display( lt ).
GeSHi ©
Tron
.....
.....
 
Posts: 1107
Joined: Sat Aug 04, 2007 10:21 pm

Return to Code Snippets

Who is online

Users browsing this forum: No registered users and 1 guest

cron