cancel
Showing results for 
Search instead for 
Did you mean: 

Naming Conventions ideally on creation for repository (dictionary) objects

JaySchwendemann
Active Contributor

Dear all,

we are preparing for an S4H conversion, hence cleaning up our ERP system from obsolete coding. We are effectively deleting old code, after saving it to an external Git repo.

After code has been deleted, we want to make sure we don't allow new repository objects (let's exclude data dicitionary for now, if that helps) to have the same name as formerly deleted objects. We are talking AS ABAP only.

Example

  • t-1
    Object "ZSOMEREPORT" exists
  • t
    Object "ZSOMEREPORT" is considered obsolete and deleted
  • t+1
    Object "ZSOMEREPORT" should not be allowed to be created again
    Object "ZSOMEOTHERREPORT" should be allowed

I could think of different ways to achieve this, however, I'm pretty unsure what's the best way to takle the situation

  1. Solution Manager critical objects
  2. Solution Manager allowed list (fka as whitelist)
  3. (Custom) Code Inspector check (maybe together with ATC)
  4. Some BAdI in application system, e.g. CTS_REQUEST_CHECK - CHECK_BEFORE_ADD_OBJECTS
  5. other?

Ideally the solution already prevents the object creation instead of checking on transport release and it should be working both in GUI and ADT

Don't expect solutions here, obviously, but a nudge in the right direction / best practices how you guys dealt with such requirements on your end.

Cheers

Jens

ChristianGünter
Contributor

Unfortunately BADI CTS_REQUEST_CHECK - CHECK_BEFORE_ADD_OBJECTS cannot be used.

https://launchpad.support.sap.com/#/notes/2150125

https://launchpad.support.sap.com/#/notes/2263131

JaySchwendemann
Active Contributor

Yeah, thanks for pointing that out.

SAP is being like

Accepted Solutions (0)

Answers (2)

Answers (2)

david_song
Product and Topic Expert
Product and Topic Expert

There is a so-called blocklist monitor when an object e.g. ABAP program is added to the list, and when it is executed, an ABAP dump occurs. Probably this may help developers to identify the namings that should no longer be used.

To have a brief look of the function, please check out Blocklist Monitor Demo Video.
Blocklist monitor is a function inbeded in Decommission Cockpit. Detailed Configuration steps can be found in CCLM How-to Guide.

JaySchwendemann
Active Contributor
0 Kudos

One could use (or maybe missuse rather) the Naming Conventions in the SAP system. One could insert e.g. the following entry in the object type specific (export mode) maintenance view (V_TRESN) to at least force the object being created in an obsolete package.

  • Program ID = R3TR
  • Object Type = PROG
  • Name Range (Generic) = ZSOMEREPORT
  • Package = Z_OBSOLETE
  • Reservation Type = D / H (also F might be viable here)

However, there seem to be several downsides in this approach

  • Since it is effectively foiling / reverting SAP's intended mechanism to force (program) names in specific packages to prevent naming conflicts in a later consolidation system, I would probably not opting for this solution.
  • Also it would prevent creating "ZSOMEREPORTNEW" because ZSOMEREPORT is considered the start of an allowed name range within the given package.
  • It would also still allow the willful creation of ZSOMEREPORT in Package Z_OBSOLETE, however, one could again mitigate this by specifying H as reservation type

So I don't think this is the ideal answer, albeit our requirement kind of lives in the same vicinity, I dare to say