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

Return to Code Snippets

Who is online

Users browsing this forum: No registered users and 6 guests

cron