Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
Showing results for 
Search instead for 
Did you mean: 

Custom Code Lifecycle Management
Usage And Use-Cases

In this blog post, you will learn the importance of Custom Code Lifecycle Management and when and where to leverage it.

What is Custom Code?

Custom Code extend the standard SAP software. They implement customer-specific business requirements and fill functional gaps ​by using Custom Development, Modification and Enhancements.​

​Inconveniences of Custom Code:

  • Functional needs already exist with standard SAP 

  • Lack of transparency 

  • Poor quality : do not always meet the quality standards set by SAP

  • Uncountable numbers of Custom Code (costly to maintain) 

The solution to this is Custom Code Lifecycle Management.

What is Custom Code Lifecycle Management (CCLM)?

The Custom Code Lifecycle Management (CCLM) application is the central location where customers can manage their collection of custom code all the way from creation to clearing of unused custom code objects across the entire SAP landscape. Once identified, the custom code objects in the landscape can be managed more effectively because you can document ownership, version, data quality, and usage patterns. Unused custom code can then begin to be identified and removed.

Benefit Cases

  • Identify which custom developments customer actually need for his business​

  • Full control over the lifecycle of custom​ code

  • Information about it’s use in production system​

  • Information about it’s quality and criticality ​

  • Possibility to retire the object from the landscape if needed (not used/ not active)​

  • Transparency and awareness ​

  • Control and Cost Savings​

​Custom Code Management Use Cases:

  • Detect used custom code in complex SAP landscapes

  • Decommission unused/obsolete code

  • Improve quality of custom code objects in complex landscapes

  • Document ownership, contract and other information for custom code objects

  • Automatic refresh and maintenance mechanism of relevant data

  • Transparency of custom code number, usage, quality and many other information in different systems

Library Definition

The core of CCLM is a library that classifies custom-code objects and contains a set of information, which can be extracted from the managed system. The data extractors retrieve the data from the managed systems automatically into SAP Solution Manager BW, then collectors are collecting information out of SAP Solution Manager BW into CCLM tables automatically. Data extractors and collectors are scheduled based on a predefined timetable, which means that after the initial set up, the information continues to be automatically retrieved, thus providing always an up-to-date status without any additional effort. These attributes and the relationship among them are located in the heart of the application, which is called “the library”.

Library Classes

The library classes are the main entities in CCLM. There are 4 main library classes:

  1. Objects (all custom code objects, modifications and enhancements); automatic collection activated in the CCM set-up

  2. Systems (all connected systems); automatic collection based on the system selection in the CCM set-up

  3. Contracts; can only be added manually

  4. Owners; can only be added manually

Attributes of a Library Classes

The library class and the assigned attribute for each object classes can be maintained by selecting "Define Custom Code Library” in the Fiori Launchpad.

Attributes are special fields or characteristics of a library class.

Examples of attributes for library class "object" are creation date and development package. Each attribute has an ID or a technical name and a screen name, which will be used for the UI. For each attribute, it is defined if it is maintainable or not, this can't be changed for any standard attribute.

Assigned Attributes for Library Classes

The assigned attributes to each library class can be shown and created by choosing the respective tab in "Define Custom Code Library"

Maintain the CCLM Landscape Setup

CCLM is designed as a single source of truth, therefore it is recommended to connect the complete landscape from development system(s) up to the productive system(s) to the SAP Solution Manager CCLM. Only with the connection to the complete landscape it will be possible to benefit completely from the transparency and the features provided by CCLM.

Typically, each customer landscape will have one development system, one quality system and one production system.

Data Collection

The collector jobs collects the information from SAP Solution Manager BW to CCLM.

The following collectors are available for each managed system:

  • Objects; three different object collectors: Custom Code Objects, Modification, Enhancement

  • References

  • Last Usage

  • Similarity

  • Quality (ATC)

  • Version

  • Criticality

Deletion of Objects

If an object is deleted in a system, then the object collector will no longer find this object in this system. Deleted objects will remain in CCLM, but it will be set to the "SAP Lifecycle Status" "99", which means deleted.

This process is triggered by the attribute "LastFound" in CCLM. The attribute "LastFound" is automatically updated when the object collector finds the object in a system.

If a custom code object is deleted in all systems, this attribute will no longer be updated and the "SAPLifecycleStatus" will be set automatically to "99". If the object is deleted in one system, then the respective "LastFound" attribute will indicate the date it was found the last time in this system by the object collector.

If there is a deletion transport for this object, then automatically the deletion transport number will be transferred to the attribute "DELETION_TRANSPORT"

CCLM - How to work with the library

The data for CCLM will be collected in steps:

  1. Extract data from managed system into SAP Solution Manager BW cubes and DSOs (using extractor framework)

  2. Collect data from BW cubes/DSOs into CCLM tables (using collector jobs)

  3. Extract data from CCLM into reporting cubes for ICI dashboards, City Model and BW reporting (using extractor framework)

Main User Interface

Starting CCLM with transaction SM_WORKCENTER will open a Fiori Launchpad to execute the different activities.

Select Custom Code Management section to work with CCLM. It is possible to customize the Launchpad and select or deselect the tiles for each section.

  • City Model –Custom Code Management

  • Define Custom Code Library

  • View Custom Code Library

  • Custom Code Improvement –Quality Cockpit

  • Custom Code Retirement –Decommissioning Cockpit

  • Custom Code -Dashboards

  • Custom Code Reporting and Settings Custom Code Reporting

  • Maintain Owner – Namespace Classification

  • Settings Business Criticality

  • Check Data Availability –Usage Logging

  • Configuration Custom Code Management (to set-up Custom Code Management in the Solution Manager)

  • Configuration Usage Logging (set-up usage logging (UPL/SCMON) in the managed systems)

  • Settings Custom Code Management (define housekeeping for BW)

  • Settings Usage Logging (define usage granularity and housekeeping settings for usage logging)

To conclude, A popular saying is that “you can’t manage what you can’t measure.” Of course, good management requires more than just measurement to be effective, but in the case of something as important to an organization as the software it uses to do business, measurement is a critical first step. Custom code delivers the functionality we need to run our business. At the same time, custom code is the source of much anguish within an organization. CCLM helps us with making the management easy and saving lots of time and cost.

Key Takeaways

  1. CCLM helps us in managing the custom code from it's identification till it's retirement.

  2. The soul of CCLM is it's Library Definitions and Attributes.

Please feel free to provide feedback either directly here in the comment section or, in case of questions, you can submit them here. You are also encouraged to follow SAP Solution Manager tag here and Focused Build for SAP Solution Manager tag here.