Uploaded by Ade Palmeira

How to Guide Custom Code Lifecycle Managment in SAP Solution Manager 7.2 SP06

Custom Code Management
Navigate through your “Custom Code City”
CCLM – Custom Code Lifecycle Management
(based on SAP Solution Manager 7.2 SP06)
SAP Digital Business Services
Version 1.0
May 2017
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
CCLM – Custom Code Lifecycle Management
This document is based on SAP Solution Manager 7.2
SP06.
The set-up of CCLM is part of the SAP Solution Manager setup. From SP05 onwards the set-up of UPL/SCMON is
integrated in the SAP Solution Manager set-up as an own setup part.
For the set-up of CCLM and UPL/SCMPON this guide includes
information as well. In addition, you can find detailed
information of the CCLM and UPL/SCMON set-up directly
embedded in the UI of the respective SAP Solution Manager
set-up procedure. Please read the documentation in the
respective UI carefully.
The highlights of SP06 are marked with
.
2
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Table of content
.................................... 5
What is Custom Code Lifecycle Management (CCLM)? .............................................................. 6
Benefit Cases ...................................................................................................................................... 7
Custom Code Management Use Cases: ............................................................................................... 7
CCLM - Setup .............................................................................................................................. 8
CCLM High level architecture .............................................................................................................. 8
CCLM system pre-conditions............................................................................................................... 9
Custom Code Management in Solman_Setup SAP Solution Manager 7.20 (SP06) .............................. 9
Collecting Usage ............................................................................................................................... 17
Implementation of Notes & Corrections ........................................................................................... 19
Maintain the Authorizations ............................................................................................................. 19
CCLM - Basics............................................................................................................................ 20
Library Definition .............................................................................................................................. 20
Library Classes............................................................................................................................... 21
Attributes of a Library Classes ....................................................................................................... 21
Assigned Attributes for Library Classes .......................................................................................... 21
Maintain the CCLM Landscape Setup................................................................................................ 22
Data Collection ................................................................................................................................. 22
Deletion of Objects........................................................................................................................ 24
Local Objects ................................................................................................................................. 24
Set-up of managed systems........................................................................................................... 24
Add or delete customer-specific attributes....................................................................................... 25
Extract data for customer-specific attributes via customer-specific collectors ................................. 26
Define customer specific actions on custom code objects ................................................................ 27
..................................... 28
CCLM - How to work with the library ....................................................................................... 29
Main User Interface .......................................................................................................................... 30
City Model – Custom Code Management ...................................................................................... 31
Define Custom Code Library .......................................................................................................... 36
View Custom Code Library............................................................................................................. 36
Library classes .........................................................................................................................................36
Custom Code Object selection and details ...............................................................................................37
Attributes................................................................................................................................................38
Object type PROG....................................................................................................................................39
System Centric - Object Centric ...............................................................................................................39
Library Class: Owner ................................................................................................................................40
Library Class: Contract .............................................................................................................................41
Assign object to owner or contract ..........................................................................................................42
Maintain attributes - mass maintenance..................................................................................................44
Custom Code Improvement – Quality Cockpit ............................................................................... 45
3
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Quality Cockpit (two scenarios) .....................................................................................................45
Quality Cockpit ........................................................................................................................................45
Create New Project .................................................................................................................................47
Project List ..............................................................................................................................................50
ATC Monitoring .......................................................................................................................................53
Custom Code Retirement – Decommissioning Cockpit ................................................................... 55
Decommissioning Cockpit........................................................................................................................57
Create New Analysis ................................................................................................................................58
Analysis List.............................................................................................................................................62
SAP Blacklist Monitor ....................................................................................................................65
Custom Code - Dashboards ........................................................................................................... 68
Business Value ........................................................................................................................................69
Key Performance Indicator ......................................................................................................................69
Quick View ..............................................................................................................................................72
Custom Code Reporting / Settings – Custom Code Reporting ........................................................ 74
Maintain Owner – Namespace Classification ........................................................................ 77
Settings - Business Criticality ......................................................................................................... 78
Check Data Availability – Usage Logging ........................................................................................ 83
4
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
5
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
What is Custom Code Lifecycle Management
(CCLM)?
The management of custom code (Custom Code Lifecycle Management, CCLM) supplements
tools already available in SAP Solution Manager such as the Custom Development Management
Cockpit (CDMC). CCLM was developed especially for accompanying your ABAP
enhancements and new developments throughout their whole lifecycles from requirement to
retirement. This cycle begins when you create an object (program, transaction, table, class, etc.),
followed by its use in production systems and extends through the retirement of the object in
case of non-use or a reorientation of the development.
Custom Code Lifecycle Management: From requirement to retirement
The heart of the application is a generic library model with which you can classify and manage
custom code objects developed by your organization. Information about the use of these objects,
their quality and version-history in the connected systems can also be collected if desired. You
get an application that provides instant transparency for your custom code and records its use in a
complex landscape without any additional manual effort.
The generic central library is the central data source for all information on customer objects. You
benefit particularly from the possibilities of individual assignment of responsibilities and
contracts, consolidation of developments within an organization, and total control over new
developments. It is possible to assign any object or list of objects to a contract or other
predefined attributes.
6
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
The objective in introducing this application is to ensure that you can achieve the best possible
adaptation of custom code to SAP code and therefore receive the best possible support. You can
also benefit from cost savings and effort reduction in possible upgrades to higher SAP releases.
Benefit Cases
•
•
•
•
Cost reduction Reduce the effort for an upgrade/conversion and other change projects by
setting the focus on relevant custom code objects
Control and Simplification Governance and cleansing activities through for example
providing of ownership, contract and other relevant information
Sustainability Automatic refresh makes an update of master data and transactional data
(usage, quality). Maintainable data will untouched
Transparency and Awareness Find out what objects are used in which landscape and
which are at of "high" quality
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
Custom Code Management: Strategic roadmap
7
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
CCLM - Setup
CCLM High level architecture
CCLM is an application that collects periodically data from managed systems, thus providing up
to date information about custom code.
Multiple landscape and systems can be configured to get data from these systems into CCLM.
The information is saved locally on SAP Solution Manager internal tables and Solution Manger
BW DSOs and cubes, allowing the quick display of figures without having to log on to the
individual systems or wait for the information to be fetched from these systems.
Custom Code Management: High level architecture
Hint: Different SAP Solution Manager applications like for example Scope and Effort
Analyzer (SEA) are using the same information from the managed system(s). That’s why this
multiple step approach was chosen. It allows to extract the raw data from the managed system
and store it in BW of SAP Solution Manager. Now the different applications of SAP Solution
Manager can collect the data from this raw data storage in SAP Solution Manager BW without
extracting the data again on their own.
8
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
CCLM system pre-conditions
Custom Code Lifecycle Management in the version which is described here is available with
SAP Solution Manager 7.20 SP06.
Please check note 1828848 for using Usage and Procedure Logging (UPL) or ABAP Call
Monitor (SCMON) in the managed system.
Please check the relevant notes for CCLM using RTCCTOOL. Also check also the relevant
master notes for CCM in the different SPs. The relevant master notes will also show up in the
RTCCTOOL.
Custom Code Management in Solman_Setup SAP Solution
Manager 7.20 (SP06)
The set-up of CCLM in the SAP Solution Manager is done as part of the SAP Solution Manager
set-up.
Call transaction "SOLMAN_SETUP" and select "Custom Code Management" on the left to setup the library and activate the infrastructure to start the data extraction from managed system and
to collect the information into CCLM. Data is extracted and saved to the library periodically. The
scheduled programs ensure that information is collected and written or overwritten in accordance
with the active library definition.
From SAP Solution Manager 7.20 SP05 onwards, it is possible to activate UPL/SCMON
independent from Custom Code Management set-up. Activation of "Usage Logging" is now part
of the "Cross Scenario Configuration".
Screenshot: SAP Solution Manager set-up
9
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
The configuration of Usage Logging and the set-up of Custom Code Management can also be
started using the SAP Fiori Launchpad (transaction: SM_WORKCENTER) and selecting the
respective configuration tiles in the “Custom Code Management” section.
Screenshot: SAP Fiori Launchpad, configuration tiles
To work with CCLM in SAP Solution Manager simply launch the new Fiori Launchpad.
Call transaction "SM_WORKCENTER" and select the "Custom Code Management" section to
start the CCLM activities. Maintain the data, work with the objects in CCLM and make use of
the different cockpits within CCLM by selecting the respective tiles.
Screenshot: SAP Fiori Launchpad for Custom Code Management
Attention: From SP06 the transaction CCLM is no longer valid. The CCLM work center is
now completely integrated with all activities in the Fiori Launchpad.
Attention: SAP’S recommendation is to execute the set-up as well after implementing a new
SAP Solution Manager SP in order to update the existing CCLM implementation.
10
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
The set-up for CCLM is part of Custom Code Management set-up and it is divided in 6 steps.
Screenshot: Set_Up procedure Custom Code Management
Remark: In SAP Solution Manager 7.20 until SP04 housekeeping and UPL set-up is still
part of the CCM set-up, that's why in SP01 until SP04 there are 7 steps.
Detailed information about the set-up is embedded directly in the UI for the set-up.
Attention: The set-up for CCM was simplified for 7.20 in comparison to 7.1. The
scheduling of the extractors and of the collectors are now connected. Both are included in step 6.
Attention: With 7.20 the information collected for CCLM will be collected exclusively from
Solution Manger BW cubes and DSOs. Only the extraction of transport numbers (version) is
taken directly out of the managed system.
Attention: To collect the quality data for CCLM an ATC master run must be scheduled on
the managed system. This means the strategic ATC tool must be implemented in the respective
managed system. Code-Inspector results cannot be considered for CCLM.
All set-up steps have to be executed when implementing CCLM or after a SP upgrade of SAP
Solution Manager:
Step 1: is preparing the SAP Solution Manager system and is executing all necessary BW
activations.
Step 2: is creating roles, template users and authorizations for Custom Code Management.
Step 3: is defining the managed systems, which shall be monitored for Custom Code
Management.
Step 4: is defining the client, which shall be used for the different managed systems.
Step 5: Sub step 5.1 is checking the relevant notes in the selected system.
Sub step 5.2 is activating the extractors to extract data from the managed system and
load it into SAP Solution Manager BW cubes. This step also includes the activation of
the collectors for CCLM to collect information from the BW cubes into CCLM tables
and the activation of the needed analysis jobs, which are running in the managed
system(s).
Step 6: is providing an overview on the status of the 5 steps before.
Hint: Step 4 client selection: The client is needed to select the right RFC with needed
authorization to analyze and collect the data from the managed system. The data itself, which
will be collected or analyzed, is client independent.
Hint: In step 5.2 you can now activate and deactivate the extractors and collectors. An
indicator shows if the extractor or collector is already activated and scheduled. Step 5.2 also
allows to schedule and deschedule the analysis jobs, which are needed on the managed system.
11
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Hint: Step 5.2 is only showing if the extractor jobs are activated. To check if an extractor run
was successful please open the extractor framework. To open the extractor framework UI just
click on the link "Extractor Framework Admin UI" in step 5.2 on top of the table "Extractor
Activation". In the extractor UI, you can filter for the system and the name *Custom Code* to
check the custom code extractors. Every extractor runs through different phases. You can see
them if you select an existing extractor run in the table below the list of extractors. The extractor
phases will be listed below the runs in a new table. At least three phases are needed "Extractor",
"Dataloader" and "Finalizing". To check if an extractor run was successful all phases have to
appear in the table and all phase must show a green light. These extractors need a Read-RFC
connection.
Screenshot: Extractor phases
Hint: To open the extractor framework UI you can as well directly use transaction
"E2E_EFWK_LV".
Hint: With 7.20 SAP introduced a new administration framework UI, which is similar to the
extractor framework UI. To open the administration framework UI just click on the link
"Collector Status UI" in step 5.2 on top of the table "Collector Activation". You can as well use
transaction "CCLM_LIB" to directly open the collector administration UI.
Hint: In the collector framework UI you can activate and deactivate the different collector
jobs.
Hint: Only the extraction of references is not multi Solution Manger enabled, all other
extractors are multi SAP Solution Manager enabled. Multi SAP Solution Manager enabled
means that the data of the managed system can be extracted to more than one SAP Solution
Manager.
Hint: The reference analysis is running in a delta mode. If you need to reanalyse all objects
for whatever reason you can run the report /SDF/CC_TRUNCATE in the managed system and
confirm the popup. This report will delete the results of all previous reference analysis run and
the next reference analysis will analysis all objects again. Please check in the managed system
table /SDF/CC_OBJECTS as well for which objects the reference analysis was already done.
Attention: As the collector jobs can only collect data after the respective extractor job has
successfully extracted data. These two jobs are dependent. The system will take care that
whenever an extractor has extracted data from the managed system then automatically the
assigned collector will be scheduled.
Attention: The object collection is split into three collectors: one for custom code objects,
one for modification and one for enhancements. These object collectors have the highest priority
of all collectors for CCLM. No other collector for the same system can run in parallel to these
12
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
collectors. The system is taking care of the sequence. All other collectors can collect data in
parallel to each other.
Attention: The schedule for all the extractors is predefined by SAP. Please do only change
this schedule if there is a specific technical need and in this case please take care that they are
still running in the right sequence
Attention: Usage extraction will be scheduled twice a day, to be sure to get the data from the
previous day right on the next day. This is done because there might be a time shift between SAP
Solution Manager time and the time of managed system.
The activation of UPL/SCMON is separated from the CCM set-up. SAP Solution Manager will
automatically detect if in the managed system UPL or SCMON can be activated. If SCMON can
be activated, the SAP Solution Manager will activate SCMON and deactivate UPL. The
activation for SCMON will be done without extracting the root information. Root collection has
to be activated by the customer itself. It is now also possible to deactivate the usage collection by
UPL/SCMON in the managed system from the SAP Solution Manager.
If the managed system was upgraded to a new SAP NetWeaver release which supports already
SCMON then the SAP Solution Manager will automatically switch to SCMON and deactivates
UPL. The information of the release for the managed system will be checked by the job
SM:SCMON_CONTROL using the information of LMDB.
Hint: In case the manged system was upgraded to a SAP NetWeaver release which supports
SCMON please check the job log of the job SM:SCMON_CONTROL to get the information
about the switch from SCMON to UPL.
Attention: Extracting root information from the managed system can increase the usage data
in BW of SAP Solution Manager by a factor up to 20.
Screenshot: Set-Up usage logging
Remark: From a performance and data load perspective it is not recommended to start UPL
again manually on the managed system, while UPL was deactivated before and SCMON was
activated by the SAP Solution Manager. Don’t run the tools in parallel.
13
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Select specific data collections:
To simplify the activation of the needed jobs, you can select specific data collection groups
according to your use case. This selection will take care, that all needed analysis jobs, all needed
extractors and needed collectors are activated.
For example: If you would like to activate only the needed analysis jobs and extractors for the
new Quality Cockpit, please open the "Data Group Selection" section and click on "Select Data
Collection Group".
Screenshot: Set-Up Custom Code Management; Data Collection Group Selection
In the pop-up just select the data collection group for "Quality Cockpit".
Screenshot: Select Data Selection Group
Attention: You can also deactivate a data collection group. Please be aware that the
deactivation of a complete group will deactivate all related extractors and collectors. If there are
two data collection groups activated the deactivation of one of the group can lead to the
deactivation of the other group or parts of the other group as well, if both groups have common
extractors or collectors. It is only recommended to deactivate groups if only one group is
activated.
The following list provides an overview about all existing extractors to extract the data for
Custom Code Management:
14
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
extractor name description
cube/table
Extractor name (according
to step 5.2 – Extractor
Activation)
Custom Code:
Objects - Core
Starts four additional
extractors to extract Custom
Code Objects;
Modifications,
Enhancements and deleted
objects based on existing
deletion transports:
Custom Code: Objects Objects
Custom Code: Objects Modifications
Custom Code: Objects Enhancements
Custom Code: Objects Deleted Objects
Custom Code: Objects Namespaces
Custom Code:
Quality - ATC
results
extracts ATC results from
managed system into BW
cube
0SM_ATC
Quality(ATC)
Custom Code:
Quality - ATC
exemptions
extracts ATC open
exemptions from managed
systems into BW cube
0SM_ATCEX
Quality(ATC)
Custom Code:
SQL Monitoring
extracts SQLM results from
managed system into BW
0SM_SQLM
cube
SQL Monitoring
Custom Code:
Usage Logging SCMON
extracts UPL or SCMON
usage information
OSM_UPLDD
(day slices)
Usage Logging(UPL/SCMON)
Custom Code:
Usage Logging SCMON Call
Graph
extracts SCMON Call Graph OSM_UCGDD
information
(day slices)
Usage Logging(UPL/SCMON)
Custom Code:
transferring usage data from 0SM_UPLDW
Usage Logging day DSO to year, month and 0SM_UPLDM
SCMON for Data
week DSO
0SM_UPLDY
Aggregation
Usage Logging(UPL/SCMON)
AGS_CC_OBJ_OBJ
(Objects)
AGS_CC_OBJ_MOD
(Modifications)
AGS_CC_OBJ_ENH
(Enhancements)
AGS_CC_OBJ_DELOB
(deleted Objects)
AGS_CC_OBJ_NSP
(Namespaces system
specific)
AGSCCL_NSAPCE
(Namespaces system
independent)
Objects
15
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
extractor name description
cube/table
Custom Code:
Usage Logging SCMON (Week
DSO to Week
Cube)
Custom Code:
Usage Logging 0SM_UPL_W
transferring usage data from
SCMON (Month
0SM_UPL_M
DSO to cubes
DSO to Month
0SM_UPL_Y
Cube)
Custom Code:
Usage Logging SCMON (Year
DSO to Year
Cube)
Extractor name (according to
step 5.2 – Extractor
Activation)
Usage Logging(UPL/SCMON)
Custom Code:
References
extracts custom code
references from managed
system into BW cube
0SM_CCREF
Custom Code:
Similarity
extracts similarity results
(clones) from managed
system into similarity table
of CCLM
AGS_CC_SIMILARIT Similarity
References
Custom Code:
extracts CCLM data into
CCLM Reporting
City Model cube
- City
0SM_CCITY
CCLM Reporting
Custom Code:
extracts CCLM data into
CCLM Reporting CCLM cube (BW
- Library
Reporting)
0SM_CCLM
CCLM Reporting
Custom Code:
iCI CCM Extractor extracts
CCLM Reporting CCLM data into iCI cube for 0SM_ESRSG
- iCI Dashboards dashboard
CCLM Reporting
In addition, the cube 0CCMAW will be used to collect data from workload statistics, especially
for criticality calculation and usage information of transactions.
All extractors are registered in table E2E_ACTIVE_WLI.
Hint: If you need more information about sizing with regards to UPL or SCMON data,
please read SAP note 2159129.
The set-up can be executed by the Solman-Admin User. It is also possible to restrict the set-up to
the different configuration scenarios, e.g. Custom Code Management.
Within the SAP Solution Manager set-up under "Related Links": "Solution Manager
Configuration" and "Administration" select "Configuration User Management". Assign
predefined role (Use Case ID) "SMC_CCM_XX" to the user.
16
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Screenshot: SAP Solution Manager set-up menu
Collecting Usage
Usage information for CCLM is taken out of the DSOs for usage and still out of the workload
statistics for transactions.
For CCLM the date of last usage will be collected into table AGSCCL_OBJECT by the last
usage collector: "Custom Code: Last Usage". All detailed usage information will be recorded and
stay according to the housekeeping settings in BW DSOs and cubes.
Attention: It is currently not possible to collect usage data for all object types in CCLM. If
not used objects will be analyzed please check carefully if usage data can be collected or not. For
example, for webdynpro (WDYx) objects and tables it is not possible to collect usage data.
Usage can only be collected during runtime. This means, that CCLM can only record usage for
runtime objects. These runtime objects do not match in all cases with the design-time objects.
CCLM collects objects from TADIR which are design-time objects
For the following objects types, last usage data can be collected for CCLM directly or based on
dependencies. This is the case for the following objects:
• PROG: only for executable programs usage can be collected from UPL/SCMON or in
some cases from workload statistics
• PROG: for includes usage can be derived from main object: If the respective main object
is marked as used, all includes of this main object will be marked as well. Only accurate
for SAP Severity = 5.
17
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
•
•
•
•
•
•
METH: Usage of methods can be collected from UPL/SCMON
CLAS: Usage of classes can be collected based on UPL/SCMON derived from assigned
methods: If any method of a class is marked as used, then the respective class will be
marked as used as well.
FUNC: Usage of function modules can be collected from UPL/SCMON
FUGR: Usage of function groups can be collected based on UPL/SCMON derived from
assigned function modules: If any function module of a function group is marked as used,
then the respective function group will be marked as used as well.
DEVC: Usage of development classes can be collected based on UPL/SCMON derived
from assigned objects: If any object of a development is marked as used, then the
respective development class will be marked as used as well.
TRAN: Usage of transaction can only be collected from workload statistics.
(UPL/SCMON cannot record usage of transactions)
Please check the SAP help as well for ABAP programming: "Include programs are not loaded at
runtime, but are expanded when the program is generated. Once the program has been generated,
the load version contains static versions of all of its includes." You can find more details on:
http://help.sap.com/saphelp_scm700_ehp02/helpdata/en/9f/db973535c111d1829f0000e829fbfe/c
ontent.htm?frameset=/en/9f/db972835c111d1829f0000e829fbfe/frameset.htm&current_toc=/en/
d3/2e974d35c511d1829f0000e829fbfe/plain.htm&node_id=317.
Attention: For enhancements (SAPSeverity = 1) and modifications (SAPSeverity = 3), the
usage collection is in some cases not possible for derived usage calculation. Please check
carefully usage lists of objects with SAPSeverity = 1 or = 3.
Remark: In fact, there are three kind of usage status for the different objects.
• used: means usage was recorded by UPL/SCMON or workload statistics
• unused: only possible for objects of the object types listed above. This is not recorded but
calculated: All objects of this type minus used objects of this type
• n.a.: for all other objects with object types not listed above. This is for all object with
objects type where currently no usage can be recorded
The City Model and the iCI dashboards will take care of this as well.
Attention: As there exists three kind of usage status for the objects. The sum of all objects is
calculated: used objects + unused objects + n.a. objects.
There are different tools and different behaviour for collecting usage information. Please have a
look at the table below for a quick overview and behaviour of these tools.
18
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Overview on usage collection
Implementation of Notes & Corrections
For the managed system please implement all relevant notes from the Service market place with
search term CCLM under application component SV-SMG-CCM-CDM and SV-SMG-CCM.
This is recommended to avoid any issues and get also the latest available improvements and
enhancement shipped via Support Packages.
Furthermore, we recommend notes for Software component ST-PI on Managed systems or
systems to be observed.
For the managed systems, it is possible to check missing notes as part of the set-up step 5.1.
(Solution Manger set-up - Custom Code Management - step 5.1). In this step, the following will
be checked: If the managed system is a Solution Manger then it checks missing implementation
of notes in ST and ST-PI, if the managed system is not a SAP Solution Manager it checks for
missing notes in ST-PI.
Custom Code Lifecycle Management is fully integrated in the RTCCTOOL framework and
for all SPs there is a master note containing the relevant notes which should be implemented.
Please follow the details in SAP note 1906451.
Maintain the Authorizations
The necessary Z-roles for CCLM will be generated automatically in SolMan-Setup "Custom
Code Management" step 2 for SAP Solution Manager and for BW of the SAP Solution Manager.
19
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
This also includes the roles to access the respective SAP Solution Manager work center.
For further details please read the documentation of the Solman Set-up.
CCLM - Basics
Attention: Some of the screenshots in the text below are taken in different SPs of SAP
Solution Manager 7.20 and might have meanwhile been changed slightly. These screen shots
still show how CCLM is working although the UI might look slightly different in some areas.
This is not relevant in the specific case, which should be illustrated.
Remark: The numbers and values in the screenshots are just examples. They do not show
any kind of real numbers from a real system. Please ignore all values and entries in the
screenshots as they are just explaining the UI without any meaning of the value in the fields.
Remark: To make CCLM work it is absolutely necessary that the extractors and the
collectors are running properly. Please check the status of these jobs regularly in the extractor
framework UI and in the collector status UI.
Remark: In addition, there is an infrastructure check report for CCLM available for 7.2,
please check note 2380152. It allows you to perform central checks for the CCLM infrastructure
like BW Content Activation, Notes, Housekeeping Jobs as well as checks per managed system
like extractor status, collector status, data availability etc. You can even set up regular checks
and create metrics and alerts out of the results of this check. Please be aware that this report is
checking several topics independent from your specific installation, this might lead to red lights
which might not be relevant in your case. This is an expert tool, therefore please read the
description, which is attached to the note, carefully.
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 time table, 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”. This generic library model allows the classification and
management of data about ABAP-based custom code objects that are by definition not SAP
standard.
Attention: The data model for CCLM has completely changed from SAP Solution Manager
7.1 to 7.2. If you access data from CCLM tables directly, please adjust your access to the new
table architecture.
20
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Library Classes
The library classes are the main entities in CCLM. Data attributes about these objects is collected
and/or maintained. 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 the set-up
3. Contracts; can only be added manually
4. Owners; can only be added manually
Attention: The differentiation between "Custom Code Objects" and "Custom Code
Duplicates" as it was designed in SAP Solution Manager 7.1 is no longer needed. According to
the new data model this differentiation is obsolete.
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.
Screenshot: Attributes of a library class
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".
21
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Maintain the CCLM Landscape Setup
Preparing the landscape with the assignment of systems is part of the SAP Solution Manager setup in the section Custom Code Management step 3 and 4.
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:
Typical SAP landscape
Data Collection
The Set-Up and the scheduling of the collector jobs, which collect the information from SAP
Solution Manager BW to CCLM, is as well part of the Solman-Setup for Custom Code
Management step 5.2 section "Collector Activation".
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
The different runs of the collector can be monitored using the "Collector Status UI".
Attention: The collector for version will still directly read the data from the managed
system. There is no BW cube and no extractor to extract this information. The collector for
22
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
version will collect the number of the last transport (TRANSPORT_NO) of this object and the
number how often this object was included in a transport (VERSNO).
Attention: Depending on the system it can take some time after the activation before the
collectors will run and before the collectors will be shown in the "Collector Status UI". In some
cases, this can take more than 30 minutes, please be patient and wait some time to see if the
collectors are scheduled in SAP Solution Manager.
With 7.20 SAP introduced a new collector administration UI, which is similar to the extractor
framework UI. To open the collector administration UI just click on the link "Collector Status
UI" in step 5.2 on top of the table "Collector Activation". You can as well use transaction
"CCLM_LIB" to directly open the collector administration UI.
Screenshot: CCLM collector administration UI
In the "Collector Administration UI" you can monitor, release or deactivate the collectors. You
can find more information of their different runs by selecting a collector and scroll down to the
log-section at the bottom.
As the object collector is the main collector it has to run exclusively, all other collectors can run
in parallel. The system will take care that this is the case.
If an object is found by the extractor in a system the object collector will create an entry in
CCLM. This means CCLM contains an entry for each object and system.
Attention: There is a major difference to CCLM in SAP Solution Manager 7.1. With 7.2 for
each object and each system in which the object was found a record will be created in CCLM,
there is no more attribute "Ref2System".
23
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Attention: The consequence of the new way to create entries in CCLM is that the all
attributes are now system dependent, as they are available for each entry in CCLM (for each
object and system).
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 still 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" (based on the extracted data of the extractor: "Custom Code:
Objects - Deleted Objects").
Remark: The "SAP Lifecycle Status" will be set to "99" by the collector if the date for
object found is more than 10 days in the past (field "CHECK_REF_DATE" in table
"AGS_CC_CUSTOM").
Attention: The deletion flag itself has changed the meaning in Solution Manger 7.20. It is
now reflecting the field DEL_FLAG out of TADIR and is no longer representing the deletion of
the object, as it was in SAP Solution Manager 7.1. The deletion of an object is now only
reflected by the lifecycle status of “99”.
Local Objects
Local Objects ($tmp objects) are in SAP Solution Manager 7.2 now collected for all managed
systems.
Set-up of managed systems
SAP proposal to set-up CCLM for the different managed systems:
system
development
collection Collecting Collecting
of local objects for
quality
object
CCLM
information
yes
yes
(standard)
no
Collecting
usage
information
no
Executing
reference
analysis
yes
Executing
similarity
analysis
no
24
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
quality
yes
yes
(standard)
yes
yes
(if test
execution
should be
monitored)
yes
yes
yes
yes
yes
yes
production
yes
yes
(standard)
(if not in
quality)
The table above just lists a standard proposal. The set-up might vary depending on customer
needs, situation and use cases.
Attention: According to the fact that now CCLM contains entries per object and system the
respective attributes might be empty for the object and system if the respective information is not
collected for this system.
Add or delete customer-specific attributes
To add customer-specific attributes, start CCLM work center:
• Select "Library Definition" on the left
• Select the library class tab for which you want to create a customer specific attribute
("Objects", "Systems", "Contracts", "Owners")
•
•
•
Click on edit button
Click on "Create Attribute" button
Fill corresponding fields in the pop up
Screenshot: Create customer specific attribute
25
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
•
•
•
•
•
•
Attribute ID: ID of the attribute. It is recommended to start with a prefix for the customer
namespace. e.g. "Z".
Attribute Type: Technical definition of the attribute
Attribute Name: Name for appearance on UIs
Maintainable: Set this checkbox if you want to maintain this attribute manually.
Confirm pop up of creation of attribute
Confirm information message
Screenshot: Confirmation of attribute creation
To change a customer-specific attributes, start CCLM work center:
• Select "Library Definition" on the left
• Select the library class tab for which you want to create a customer specific attribute
("Objects", "Systems", "Contracts", "Owners")
•
•
•
Click on edit button
Click on edit button in front of the attribute row
Maintain "Attribute Name" and/or the maintainable flag directly in the selected attribute
row
•
Click on save button
in front of the attribute row to save the changes.
Extract data for customer-specific attributes via customerspecific collectors
Once you have defined your custom attributes and know which ones of them should be
maintained automatically via a custom collector, then you have to define your customer
individual collector.
In the standard object collector SAP implemented an enhancement section within the assigned
method "EXTRACT". In this enhancement section, you can implement your collection of data
for the customer specific attributes.
If you have already defined a customer specific collection in Solution Manger 7.1, this
enhancement includes default code which calls the existing customer specific collection.
Hint: Of course, you are also able to feed multiple customer fields at the same time of
extraction.
26
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Define customer specific actions on custom code objects
For this purpose, please implement a Filter BADI enhancement called
"AGS_CUSTOM_CODE_ACTION". To learn how it works please follow the example
implementation in class "AGS_CUSTOM_CODE_ACTIONS". You have to implement 4
interfaces and define a filter value. This filter value is very important to ensure the action will be
triggered.
Implement the BADI within transaction "SE80", select the node implemented Enh. Spots and
create an implementation for "AGS_CUSTOM_CODE_ACTION". Use the possibility to copy
the sample implementation.
As soon as you implement the BADI, ensure you have a unique filter defined. Assign a customer
individual value to the filter "AGS_CC_BADI_ACTION_FILTER".
Then implement the interfaces:
GET_TEXT = Will prompt you for a popup window with a description of the started action.
GET_ID = Will define the menu entry name
EXECUTE_ACTION = Is the main implementation and process the selected entries
ACTION_PROCESSING = Determines the mode if you want to execute object by object or a
mass processing
The "Action" button will only be active, if you have the change and delete authorization for
custom code objects.
27
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
28
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
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)
CCLM Data flow overview
Hint: This overview shows that first the extractor needs to successfully extract data from the
managed system(s) and then data can be collected into CCLM tables and afterwards into the
reporting tables for CCLM. You can only see data for example in the city model after the data
was extracted successfully from the managed system and after the data was then collected from
BW into CCLM and after the data was then extracted into the cube for the city model.
Hint: The scheduling of extractors and collectors will be done in step 5.2 of the set-up. The
extractor and collector framework will take care that the extractors and the collectors are
scheduled in the right sequence.
29
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Main User Interface
Starting CCLM with transaction SM_WORKCENTER will open a Fiori Launchpad to execute
the different activities.
Screenshot: SAP Fiori Launchpad
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.
The following sections provide detailed descriptions of all elements and their functions that will
help you managing the lifecycle of your custom code.
• 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
The following tiles are part of the settings and will not be explained here. Please read the
documentation which is embedded in the respective UI.
• Configuration Custom Code Management (to set-up Custom Code Management in the
Solution Manager)
30
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
•
•
•
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)
City Model – Custom Code Management
Screenshot City Model
The City Model provides a first overview of the selected managed systems. It is possible to
choose all systems or select one or more system to be displayed in the city model.
Screenshot: Select system for City Model presentation
On the top, the overall number of objects are displayed for the selected systems.
With the slider at the bottom of the city model the history of the city can be displayed.
Attention: The history shows exactly the data from the day/period, which is selected.
Especially in case the history is selected for a specific day it might happen that at this specific
day the data extractor was not scheduled, so no data will be shown for this specific system. In
this case, a message symbol will be displayed and the system(s) for which no data was extracted
for this specific day will be listed, by mouse over (see screenshot below). If data is available on
the following days, no action is necessary.
31
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Screenshot: Warning if historical data for selection does not exist
The city itself is built on 3+2 dimension:
1. Severity:
Severity is based on the attribute "Severity".
It is possible to collect three different severity levels: Enhancements, Modifications and
Custom Code.
These severity levels are automatically collected and stored in the CCLM-attribute
"Severity" for each object.
Severity=1 -> Enhancements
Severity=3 -> Modifications
Severity=5 -> Custom Code
Severity Levels 2, 4 and 6 are not available
Attention: The Modifications (Severity=3) are based on the entries of table
"SMODILOG" in the managed systems.
Hint: If a modification, which is listed in CCLM, is inactive it will be treated as
"deleted". This means it gets the lifecycle status "99". For the first run of the object
collectors the time range to catch inactive modifications from "SMODILOG" is set to
365 days. This means only inactive modifications will be collected, which are created
between the date the collector runs and 365 days back. This time range can be changed in
table "AGS_CC_CUSTOM" field "MOD_RANGE".
2. Criticality:
Criticality is based on the attribute "Sap Criticality Score".
The criticality can be determined by a collector job for each managed system. For the
configuration of the critically please open in Solman-Setup for Custom Code
Management in step 5.2 the section "Analysis Jobs" and click on "Business Criticality
UI".
32
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Screenshot: Start Business Criticality UI within set-up
You can also start the configuration in the Launchpad selecting “Settings Business
Criticality”.
You do not need to change the standard settings to get a criticality score. The system will
start an analysis job to calculate a criticality based on the standard settings and the
available data.
Within the Business Criticality Settings, you can influence the criticality calculation and
score of your custom code objects.
Screenshot: Business Criticality Settings
The criticality level is stored per system.
The criticality level is distributed from Level 1 - 5.
1=Low critical
until
5=Very critical
33
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Attention: Not all object types can be evaluated based on the definition in the setup. Currently only the object types "PROG" and "TRAN" can be evaluated, because the
evaluation is dependent on the workload statistics. All objects which cannot be evaluated
appear in the "N/A" column of the criticality dimension in the city model.
Attention: The criticality calculation is done for custom code objects and SAP
objects. The criticality ranking is created for SAP and custom objects, to give a realistic
picture of the criticality of your custom code. The ranking influences the criticality level
of each object, as the criticality levels are created in 5 equal portions based on the
ranking.
3. Quantity:
The quantity dimension shows the number of objects for each Severity/Criticality section.
The additional dimensions are shown in the two sections of the city model dashboard on the
bottom of the right-hand side. The section on the very bottom on the right is showing the
additional dimension for the selected blocks in the city model and the section above is showing
the additional dimension in an overview for all selected systems.
Hint: If you want to select another block or row, the block/row that was selected before has
to be deselected first.
For the additional dimension are quality and usage. It is possible to switch between quality and
usage. Just select the respective button in the respective box.
Usage dimension:
Screenshot: Usage dimension from City Model
34
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
The usage dimension shows the number of used and unused objects overall and for the selected
block/row. Unused in the city model means not used in the last 12 months. The usage data is
based on workload statistics and UPL/SCMON data. From the display of the usage you can
directly jump into the decommissioning cockpit by simply click on "Decommissioning Cockpit".
Hint: For used and unused objects only the object types which are listed in the chapter
"Usage Collection" are considered. All other object types will fall under "N.A."
Quality dimension:
Screenshot: Quality dimension from City Model
The quality dimension shows the number of good, medium and low quality objects overall and
for the selected block/row. The quality data is based on ATC master runs in the selected systems.
From the display of the quality you can directly jump into the quality cockpit by simply click on
"Quality Cockpit".
An object is rated as:
• low quality, if the ATC run detects at least one priority 1 message (red message)
• medium quality, if the ATC run detects at least one priority 2 message (yellow
message) and no priority 1 message
• good quality, if the ATC run detects no priority 2 message and no priority 1 message
(only priority 3 or no message at all in the ATC run)
• N.A., if the object was not part of an ATC run at all or cannot be evaluated by ATC
Attention: To show the quality data in CCLM an ATC master run must be scheduled on the
managed system. This means the strategic ATC tool must be implemented in the respective
system. Code-Inspector results cannot be considered for CCLM.
35
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
For more information on the implementation of ATC please read: http://scn.sap.com/docs/DOC32791
Remark: The information for quality, usage and criticality is depending on the system. The
city model will take care of system dependencies. This means if just one system is selected for
the city model, the model shows the data for this specific system. If more than one system will be
selected the number of objects in any case which is shown in the model is the addition of the
respective number of the selected systems. In fact, in this case an object will be counted multiple
times if it exits in multiple selected systems.
Define Custom Code Library
To work with the library definition simply select "Define Custom Code Library" in the
Launchpad.
In this view, you can see the different library classes and the defined attributes for each class.
In this part, you can define new customer specific attributes for each class and change the
naming and the flag for maintainable for customer specific attributes. With the tabs on the top
you can easily switch between the different library classes.
Screenshot: Attributes of a CCLM-object
View Custom Code Library
To display a list of objects directly in CCLM, simply select "View Custom Code Library" in the
Launchpad.
Library classes
With the tabs on the top you can easily switch between the different library classes.
36
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Screenshot: Switch between different library classes
Custom Code Object selection and details
All customer objects from namespaces, which are defined as customer namespaces will be
collected, if the objects are listed in TADIR. These means, that all object which are defined in
TADIR from customer namespace will be collected automatically.
Screenshot: Object list and filtering within list
The objects collected are displayed as a list with some fixed columns. Additional columns can be
selected individually by clicking on "Settings" on the right-hand side on top of the list. There is a
filter area above the list that can be expanded to filter on the objects. There are also filtering
options for every column in the list, by simply clicking on the header of the respective column.
37
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Screenshot: Object list and additional filtering options
Attributes
Screenshot: Object list showing attributes of selected object
To show the values of the attributes for an object simply select the object in the list and all
attributes of the selected object will be shown below the object list.
The maintainable attributes can be maintained by clicking on
in the respective line where
the attribute is shown. After maintaining, save the value with
.
38
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Object type PROG
Object type PROG includes different program types. To identify for example includes the
attribute "Program Type" can be checked for the following values:
• 1 = Executable Program
• I = Include
• M= Module Pool
• S= Subroutine Pool
Attention: For includes of SAPSeverity = 1 or = 3, the "Program Type" will currently not be
filled in all cases.
System Centric - Object Centric
With SAP Solution Manager 7.20 the way of storing the data in CCLM was changed completely.
In fact, now in CCLM there is an entry for the combination of object and system in which the
object exists. This means if the same object exists in two or more different systems it has two or
more entries in CCLM, although it is the same object in the two or more systems.
Screenshot: Top of object list; Switch between system- and object centric
If "System Centric" was selected then the object list will list all existing combination of system
and object. If "Object Centric" is selected the object list will just show one line for each object.
As an example, let's have a look again at an object with two entries in CCLM, because it exists in
two different connected systems.
•
•
For "System Centric" three lines will be shown in the object list. One line for each
system.
For "Object Centric" only one line will be shown in the object list. -> As all attributes are
now assigned to each entry in CCLM the value of the attributes shown directly in the
object list are taken from the first entry which was found in CCLM.
To show all attributes with the respective values for each system of the objects, you can
visualize this by selecting the object and expanding the attributes for a system in the
attributes section below the list.
39
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Screenshot: Object list showing attributes for object centric view
Library Class: Owner
Owners can be defined in CCLM as well. For each owner, there exists a set of predefines
standard attributes, but it is as well possible to add customer specific attributes. This can be done
in "Define Custom Code Library", similar to the creation of an attributes for the objects.
Screenshot: Owner and assigned attributes
The main purpose of the owner concept when assigned directly to an object is to identify
someone responsible for example from the business area. This owner is in most cases the person
who presented/requested the business need and created the business requirement.
Hint: The developer created the custom code is not the business owner. He is the creator of
the object and for the most part available on project base only.
Examples for owners are real life representatives from an internal organization like Financial,
Logistics, Sales, Distribution, etc. You should have only one owner assigned to each custom
code object (although multiple assignations are possible).
40
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
To create an owner, select the button "Create Owner" in the "Objects" section and fill the
appropriate data. Maintain at least the mandatory fields, marked with a star.
Screenshot: Create owner
It will be recorded who and when the owner was created in CCLM and who and when the data of
an existing owner was changed.
You should assign a real SAP user from the SAP Solution Manager system in order to have a
link to an e-mail address which is part of the system user. Maintaining also some contact
information will help you in cases when there is the need to contact the owner to obtain business
related information about the custom code object.
Library Class: Contract
A contract is means to group multiple objects that have similar characteristics and assign them to
an organization responsible for them.
In most organizations, you have a separation between development, maintenance & support and
sometimes also outsourcing teams. However, normally only one is responsible to maintain the
object at a technical level.
The main purposes of having contracts is keeping transparency about the current activities on
custom code objects and assigning technical responsibilities on organizations rather than on real
life people.
Thus, objects should be assigned to a contract rather than to an owner for technical purposes.
Contracts can be defined in CCLM as well. For each contract, there exists a set of predefines
standard attributes, but it is as well possible to add customer specific attributes. This can be done
in the "Library Definition" section, similar to the creation of an attributes for the objects.
41
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Screenshot: Contract and assigned attributes
To create a contract, select the button "Create Contract" in the "Objects" section and fill the
appropriate data. Maintain at least the mandatory fields, marked with a star.
Screenshot: Create contract
There are two optional owners for contracts: Responsible Owner and Personal Owner. The first
one represents the person closest to the object (i.e. developer) and normally who created/owns it,
from a technical perspective. The second one represents the overall responsible (i.e. manager) for
a big group of objects.
Assign object to owner or contract
Assignation of individual or multiple objects to a contract or owner should be done to be able to
manage your custom code efficiently.
To do so, select the objects tab and use the "Assign" button, pick the corresponding contract or
owner from the drop-down list in the new window and then save and close the window.
42
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Screenshot: Assign attribute
Screenshot: Assign attribute to owner
Once you have done it, the assigned owner or contract will be shown in the section below the list
by selecting the respective tab on top.
Screenshot: Select object to see assigned owners/contracts
43
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Maintain attributes - mass maintenance
It is possible to manually maintain attributes for custom code objects, as described in the chapter
"Attributes" above.
The list of objects is designed to perform a sort of mass maintenance. Select the relevant objects
for which you would like to do a mass maintenance of a specific attribute. You can do this either
by selecting each single object directly from the list or do a filtering on the objects and then
select all objects in the list using
.
Screenshot: Object list; select all objects
After selecting the objects click on the "Maintain" button select the attribute and enter the
attribute value in the pop up window. Save and close the window.
Screenshot: Maintain attribute of selected object(s)
Attention: Maintenance of attributes have a different behavior, because every attribute is
now system dependent:
• If you are in system view: Only the attribute of the CCLM entry for the selected object
and system will be changed
• If you are in object view: The attributes of the CCLM entry for this selected object and
all respective systems will be changed
44
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Custom Code Improvement – Quality Cockpit
The Quality Cockpit is designed to support quality improvement projects in your managed
systems. It is based on the ATC runs in the managed system(s).
Attention: Custom Code Improvement with CCLM is based on SAP ABAP Test Cockpit
ATC. Therefore, ATC must be implemented in the managed system(s) to analysis the objects.
This is only working based on ATC it is not working based on code-inspector results.
Quality Cockpit (two scenarios)
There are two basic scenarios supported by CCLM Quality Cockpit:
1. ATC runs directly in the managed system
2. ATC runs remotely in an ATC-hub system and checks the code in the managed system.
Support quality scenarios)
Hint: In order to follow the scenario 2, the ATC-Hub must be connected to Solution
Manager as well and the extractors for quality have to be activated in the custom code set-up for
this hub system.
Quality Cockpit
To start the Quality Cockpit, select tile “Custom Code Improvement – Quality Cockpit” from the
Fiori Launchpad.
45
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Hint: Please be aware that for the Quality Cockpit and ATC Monitoring the ATC results
which can be selected for monitoring are taken directly out of the BW cubes for ATC.
Hint: The CCLM attributes for each object "QUAL PRIO 1 MSG"; "QUAL PRIO 2 MSG";
"QUAL PRIO 3 MSG" and "QUAL DATE" are filled by the quality collector with the result of
the last ATC master run for this object. The master run which will be used for the attributes is
selected automatically by the collector. These fields are just informational attributes and have no
active part in the quality cockpit.
The quality cockpit provides an overview on the current quality projects on your managed
systems.
On the top, the number of projects are shown in three blocks with regards to their current status
or number of critical objects. In each block, it is possible to click on the list and directly jump
into the list view of the selected project. In the "Active Projects" block it is possible to switch to
the screen to start a new project.
In the middle of the cockpit an overview is provided on the quality of your custom code objects.
You can select the objects by entering selection criteria in the section "Object Selection" and
press the refresh button.
Switching to time estimation will give you a first view on the effort needed to correct the
existing errors in the selected objects.
Screenshot: Decommissioning Cockpit
Attention: Quality projects are designed to monitor ATC runs in the managed systems.
Therefore, it is necessary to implement ATC in the managed systems and to set-up regular ATC
runs and extract the results which then can be assigned to a project in the quality cockpit.
46
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Hint: The Quality Cockpit and ATC Monitoring are designed to monitor the ATC runs and
to display the results in a graphical view. They are not designed to operate on the ATC results
and to work directly with the results or the respective code of the objects.
Create New Project
Selecting "Create New" on the top of the quality cockpit in the "Active Projects" block will open
the screen to create a new project.
Screenshot: Create new decommissioning project
Section "New Project"
In the section "New Project" you can enter a name and a description and a project owner in the
respective fields. In order to be able to directly send an e-mail to the project owner, when
working with the object list, the owner has to be maintained as an owner in CCLM and the
respective SAP User in the SAP Solution Manager is maintained in the owner data as well. The
e-mail address will be taken out of the SAP User.
In this section, you can also define the threshold (%) of errors you would like to correct in this
project. This can be used for information and to monitor success.
It is also possible to define the objects which should be included in this project based on the ATC
results (errors, warnings, information, no result) and the quality of the objects.
Section "System Selection"
47
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
In the section "System Selection" the system of the ATC runs has to be selected together with an
ATC series/run. This selected run(s) will then be monitored in this new project.
In the entry field “Quality System” select the system in which the objects will be analysed by the
ATC runs.
In the entry field “Statistical Systems” select the system(s) from which the last usage date of the
selected objects should be taken.
In the entry fields “ATC Series and Variant” select the respective ATC run which should be
monitored.
Screenshot: Select ATC run and variant for quality project
If the ATC runs are executed from an ATC-hub the respective ATC hub will be displayed in the
screen as well.
In the entry field "Custom Classification Variant" it is possible to change the standard rating
from ATC of specific checks only for this project. Search for the respective check, assign new
custom classification and add the check to the list. Save your classification variant.
48
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Screenshot: Define customer specific classification variant
In the entry field "Custom Time Estimation Variant" it is possible to change the standard time
estimation (=0.2 hours = 12 min) of specific checks only for this project. Search for the
respective check, assign a new time estimation and add the check to the list. Save your time
estimation variant.
Screenshot: Define customer specific time estimation variant
49
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Attention: It is no longer needed to define the objects from CCLM which should be
included in the project. All objects from the selected ATC run which are as well registered in
CCLM will be monitored in the CCLM Quality Cockpit.
Section "Analysis Schedule"
In the section "Analysis Schedule" you can define the start date and time of the analysis job and
the frequency. These jobs will check if new ATC results of the assigned ATC run(s) have been
extract and will load the results into the quality projects for the selected objects.
Screenshot: Define start time and analysis schedule for quality analysis
Project List
Section "Project List"
Selecting "View List" in one of the blocks on the top of the quality cockpit will open the list
view of the projects.
On the top, the project list is presented. Select a project which you would like to work with. You
can also deactivate an analysis with the effect that the respective scheduled analysis job in SAP
Solution Manager is canceled. You can reschedule the job by activating the analysis again.
Screenshot: Overview on quality analysis
50
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Section "Analysis History"
In the Analysis history section the results of the different ATC runs will be presented in a list and
in a graphical view for the selected project. It shows the number of objects which are part of the
project and the number of error results for the three categories critical (red), to be improved
(yellow) and information (green). You can specify a time frame as well for the ATC runs which
should be listed.
Select one of the runs to get a statistical overview on this run below.
Screenshot: ATC results of selected quality analysis
Select an analysis from the analysis history you would like to work with and click on the button
"Object List" on top of the analysis history list. A new browser session will be created to work
with the objects of this analysis.
In this new session click on "Search" to get all the objects. You can filter the objects of the
selected analysis by entering "Search Criteria" on top of the list and press search again, or by
using the filter function in the list by clicking in the header of the column you would like to set a
filter.
51
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Screenshot: Object list of selected quality analysis
It is possible to add or delete columns of the list by clicking on settings
the right.
on top of the list on
It is now possible to work with the objects by selecting the objects. You can notify the project
owner via e-mail or show the ATC results for a specific object.
Select an object and click on "Show ATC Results" will open a window which presents all check
results of this object, together with the time estimation.
Screenshot: Detailed ATC results of selected object
In the object list the quality status indicates the rating of the object. If the status is:
• a red sign, it indicates that this object has at least one error message (critical message Prio 1)
• a yellow sign, it indicates that this object has at least one to be improved message and no
error message (to be improved message - Prio 2)
52
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
•
•
a green sign, it indicates that this object has at least one information message and no error
message and no to be improved message (information message Prio 3)
a grey sign, it indicates that no message at all was assigned to this object by the ATC run
Screenshot: Object with no ATC result
ATC Monitoring
To get an overview on the available ABAP Test Cockpit (ATC) runs simply select "Quality"
menu on the left side and navigate from the Quality Cockpit to the list of the quality projects
(click on "View List" in one of the boxes in the "Project Status" section). On top of the project
list click on "ATC Monitoring" on the right. All presented data in this section will be shown
directly from the ATC cubes in the SAP Solution Manager.
Screenshot: Start ATC monitoring
Attention: To get results for ATC Monitoring ATC must be implemented in the managed
system(s) to analysis the objects. This is only working for ATC it is not working based only on
code-inspector results.
53
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Screenshot: ATC monitoring; Show results of all runs
On the top, you can select the period, a specific ATC run and a specific check variant. You can
switch in this view between showing the results of ATC and showing the open exemptions.
In the middle please select the system you would like to see the results. Which will then be
displayed in a chart on the right. The different lines represent the number of prio 1 (red), prio 2
(yellow) and prio 3 (green) messages detected by ATC in the different runs.
You can also select the granularity of the graphical view (daily, monthly, yearly). More details
for each run are displayed in the table below the graph.
Screenshot: ATC monitoring; Show all ATC runs in table
You can select a specific ATC run to display the detailed result for the single objects (button
"Show Details" on top of the ATC result list).
54
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Screenshot: ATC Monitoring; Show detailed results for selected run
Custom Code Retirement – Decommissioning Cockpit
The Decommissioning Cockpit supports your decommissioning strategy. It supports the deletion
of custom code objects in your landscape, according to SAP best practices.
Generic approach to decommission custom code
If an object is deleted in the complete landscape it will still remain in CCLM, but the "SAP
Lifecycle Status" will be set to "99". In the attribute "Last Found" you will find the date for
which the object was found last in the respective system.
55
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
The SAP lifecycle status is reflecting the actual lifecycle status of each object in the different
systems.
Lifecycle status of custom code objects
The Custom Code Lifecycle Status is very important in a decommissioning or retirement project.
The procedure for the lifecycle status in CCLM is as follows:
In the activation phase, it will be set only by the object collector.
Lifecycle status during activation phase
56
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Depending on the definition of the role of a system, based on "IT Admin Role" in LMDB, the
status will be set in the activation phase as described above.
In the retirement phase, some of the status will be set by system actions (Decom. Analysis,
Object Collector, Deletion Collector), some have to be set by the user.
Lifecycle status during retirement phase
Remark: "Set to Phasing out" is a manual activity done by the user in the decommissioning
cockpit.
Remark: The "SAP Lifecycle Status" "99" will be set by the object collector if the date for
attribute "Last Found" is more than 10 days in the past (field "CHECK_REF_DATE" in
"AGS_CC_CUSTOM"). If a deletion transport for an object is found the status will be set to
“99” immediately without taking care of the attribute “Last Found”. If the object was deleted by
a deletion transport, then the number of the deletion transport will be recorded as well in the
attribute "Deletion Transport”.
Decommissioning Cockpit
The decommissioning cockpit provides an overview on the active decommissioning analysis.
Attention: To use the decommissioning cockpit for your decommissioning project it is
absolutely necessary, that workload statistics and UPL/SCMON data is available. Without these
two data sources usage data cannot be calculated and the decommissioning cockpit cannot be
used to decommission objects based on usage information. Please make sure that workload
statistics is available and UPL/SCMON is running on the different systems and the data is
collected into the BW of SAP Solution Manager.
57
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
On the top, the number of analysis are shown in four blocks with regards to their current status.
In each block, it is possible to click on the list and directly jump into the list view of the selected
analysis. In the "New Analysis" block it is possible to switch to the screen to start a new analysis.
In the middle of the cockpit an overview is provided of the number of objects in each lifecycle
status. You can select the objects by entering "Object Selection Criteria" and press the refresh
button.
On the bottom an overview can be shown on the usage of all objects from all systems for a
specific number of days in the past. Press the "Fetch Statistics" button to get the data. Fetching
the data for this section can take some time.
Screenshot: Decommissioning Cockpit
Attention: The status "Under Development" is displayed but it is currently not possible to
show any numbers.
Create New Analysis
Attention: A decommissioning analysis can only be created for objects of SAPSeverity = 5.
All other objects with a different "SAPSeverity" level will be excluded from the analysis
automatically, although they might fulfill the selection criteria.
Selecting "Create New Analysis" on the top of the decommissioning cockpit in the "New
Analysis" block will open the screen to create a new analysis.
58
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Beside some generic information like name and description the selection of objects have to be
entered. There are three standard use cases:
1. Objects which are not used in specific time frame in specific system(s)
2. Objects which are not active in specific system(s)
3. Objects which are similar to SAP objects (clones)
If none of these standard selections apply to your project settings choose "Other" and select the
objects via the assigned attributes.
Screenshot: Create new decommissioning analysis
To be able to directly send an e-mail to the analysis owner, when an object was used during
waiting period the owner has to be maintained as an owner in CCLM and the respective SAP
User in the SAP Solution Manager is maintained in the owner data as well. The e-mail address
will be taken out of the SAP User.
Save and start the analysis by pressing the button on the top on the right-hand side.
Attention: What does it mean "unused objects" in an analysis period?
An object fulfills the criteria of an "unused object", if:
1. the last usage date for any statistical system is before the start date of the analysis period
2. there is no last usage date recorded for any statistical system so far, but UPL/SCMON or
workload statistic is able to record the usage for this object type
3. there is no last usage date recorded for any statistical system so far and UPL/SCMON or
workload statistic is not able to record the usage for this object type
(e.g. WDYN, TABL, ...)
59
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Attention: This means that the result list of the analysis has to be checked carefully, which
case is relevant for the specific object, before decommissioning the object. Especially case three
needs to get attention.
Hint: You can easily check if for a specific object if usage can be recorded via either
UPL/SCMON or workload statistics by checking attribute "Usage Flag" of this object. If it is
marked with an "x" usage data can be recorded. See as well chapter "Collecting Usage" in this
document.
Role of “Development Systems” and “Statistical Systems” entries in settings for the
selection of objects.
Entry in "Development System": It is recommended to select development system(s) (as defined
in IT ADMIN ROLE in LMDB), which are connected to CCLM. Although this entry field is
named "Development System" any system connected to CCLM can be selected.
Entry field "Statistical Systems": Any system, which is connected to CCLM can be selected.
1. Standard use case: Selection of not used objects in statistical systems:
An object will be classified as not used, if
a. (existence check) the object was found by CCLM object collector in at
least one of the statistical systems (one CCLM entry for the object
together with at least one statistical system) and if the object was found in
at least in one of the development systems (one CCLM entry for the object
together with at least one development system) and if
b. (usage check) there exist no usage data (last usage date) for this object in
CCLM for any of the statistical systems.
c. -> the object will be displayed for each development system where it was
found
2. Standard use case: Selection of not active objects in statistical systems:
An object will be classified as not active, if:
a. (existence check) the object was found by CCLM object collector in at
least one of the development systems (one CCLM entry for the object
together with at least one development system) and if
b. (nonexistence check) the object was not found by CCLM object collector
in any statistical system (no CCLM entry for the object together with any
statistical system).
c. -> the object will be displayed for each development system where it was
found
3. Standard use case: Selection of similar objects:
An object will be classified as a similar object (clone), if
60
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
a. (existence check) the object was found by CCLM object collector in at
least one statistical system or development system (one CCLM entry for
the object together with at least one development system or one statistical
system) and if
b. (similarity check) the object was found by CCLM similarity collector in at
least one of the development systems or statistical systems.
c. -> the object will be displayed for each development system and each
statistical system where it was found
4. Selection "Other":
An object will be classified for this selection, if
a. (existence check) the object was found by CCLM object collector in at
least one statistical system or development system (one CCLM entry
together with at least one development system or one statistical system)
and if
b. (attribute check) the attributes in the system where it was found fulfil the
selection criteria
c. -> the object will be displayed for each development system and each
statistical system where it was found
This is the basic selection of the objects for the decommissioning analysis. Beside these basic
selections based on development and statistical system entries the additional criteria will be
checked if applicable (e.g. analysis period, similarity degree, creation date, ...).
For selection 1 "not used objects" it is possible to add an additional selection "Used less than" to
detect also rarely used objects. Example: If used less than is filled with 3, then those objects will
be selected as well, which are used in sum less than 3 times in the defined analysis period in each
of the statistical systems.
Attention: The number of execution in each statistical system must be lower than the
defined number -> although the sum of executions in all statistical system might be higher.
As CCLM is only recording the last usage data, the number of execution is taken directly from
the historical detailed raw date from the BW cubes/DSOs.
Attention: "used less than" is only valid for executable PROGs, METHs and FUNCs. It is
for example not valid for the following object types:
• TRAN; as usage data is based on workload statistics, which is not counting real
executions but performed dialog steps
• FUGR, CLAS, DEVC; as these types represent a group of objects and the number of
execution is the sum of the sub-objects
• Includes; as the last usage data is derived from the main object, but in the BW cubes there
is no historical data for includes, because UPL/SCMON can not collect usage
information for includes
61
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Attention: As the calculation of executions for "used less than" is done on UPL/SCMON
cubes in BW this will lead to an analysis, which might run for a long time. The recommendation
is to use this additional feature not if more than one statistical system was entered for this
analysis.
For selection 3 "similar objects" it is possible to add a similarity percentage as additional
selection criteria.
For all 4 selections, the creation date can be selected as additional criteria and all other attributes
entered in section "Additional Attributes" below can be used as additional selection criteria for
the analysis.
Analysis List
Selecting analysis list in one of the blocks on the top of the decommissioning cockpit will open
the list view of the analysis.
On the top the analysis list is presented. Select an analysis which you would like to work with.
The "Object Statistic" provides an overview on the current status of the selected analysis. It
includes also the information if objects of this analysis have been executed since the analysis was
created.
Screenshot: List of existing decommissioning analysis with assigned statistic below
Hint: For every decommissioning analysis, a job will be scheduled in the background to
regularly check the usage of the objects in the analysis (name of the job:
DECOM_REFRESH_JOB_<decom project ID>). If for whatever reason this job was cancelled
and doe no longer exist it can be rescheduled by pressing the “Refresh Statistics” button in the
Object Statistic section.
62
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Select an analysis you would like to work with and click on the button "Object List" on top of
the analysis. A new browser session will open to work with the objects of this analysis. In this
new session click on "Search" to get all the objects. You can filter the objects of the selected
analysis by entering "Search Criteria" on top of the list in the "Search Area" and press search
again, or by using the filter function in the list by clicking in the header of the column you would
like to set a filter.
Screenshot: Object list of selected decommissioning analysis
The lifecycle status of all objects, which are part of a decommissioning analysis will be set to
"Recommended for Decommissioning" by the system when creating the analysis.
It is possible to add or delete columns of the list by clicking on settings
the right.
on top of the list on
Take action and work with the objects by selecting the objects. You can change the lifecycle
status or reject objects by clicking on "Set Status" and select the action you would like to
perform.
If an object will be rejected from the analysis the lifecycle status of this object will be set back
again to the status that was assigned to the object before the analysis project was created.
Before working with these objects, it is recommended to change the lifecycle status to "Identify
and Waiting".
Attention: If an object appears in more than one analysis it will be listed in all analysis. If in
one analysis the lifecycle status will be changed to any status higher then "Recommended for
63
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Decommissioning" from this time on the object can only be maintained in this analysis. In all
other analysis, this object will be greyed out in the list.
You can select the objects in the list and group them to different packages and assign a package
owner with button "Assign Package". It is possible to directly send an e-mail to the package
owner. Therefore, the owner has to be maintained as an owner in CCLM and the respective SAP
User in the Solution Manger is maintained in the owner data as well. The e-mail address will be
taken out of the SAP User.
Screenshot: Assign objects of a decommissioning analysis to a package and an owner
You can also select objects from the list and group the objects for a backup transport, which can
be created with the button "Backup Transport". As soon as the backup transport is created the
number of the backup transport will be recorded in CCLM and the lifecycle status of the objects
in this transport will be set to "Backed Up".
The target, a description and the client from the development system of the backup transport
must be entered in the "Backup Transport" pop-up window. The back-up transport will be
created in the system of the selected object(s) (normally this is the development system). The
target defines the target system for the transport. This field is not mandatory. This field is also
not displayed in the case it is not possible to get a list from the development for the valid target
systems via RFC. In this case or if the field is empty the target system has to be defined when the
back-up transport will be released manually in the development system.
Screenshot: Create backup transport for objects in a decommissioning analysis
Attention: A backup transport must be created, if in the settings of the analysis it is marked
that a backup transport is mandatory. If the backup transport is not created from SAP Solution
64
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Manager, then the status of the objects must be set manually to "backed-up", when the backup
transport was created.
Attention: It will not be checked if for the backup transport dependent objects are part of the
transport as well.
The waiting time was defined for the whole analysis, but it is possible to change the waiting time
for each individual object. The waiting time can be changed for an individual object by pressing
the button "Change Wait Time".
All attributes of each object can be shown in a pop-up as one of the actions of the button
"Attribute".
All attributes can be maintained for the selected object(s) as one of the actions of the button
"Attribute" in the same way as in the object view of CCLM.
The "Used Status" column indicates if an object was used in the meantime. This means if it was
used after it was selected for the analysis. A message to the analysis owner will be send if the
respective selection was marked when creating the analysis.
4. Red sign means object was used,
5. Green sign means object was not used in the meantime since the analysis was created.
Screenshot: Usage status of objects in object list of decommissioning analysis
Remark: At the end, each analysis should be set to completed if no more objects of this
analysis shall be deleted, or if all objects in the analysis have been deleted. If an analysis will be
set to completed all remaining objects which are not deleted will be rejected and the SAP
Lifecycle Status will be set back to the status before the analysis was created.
SAP Blacklist Monitor
With the SAP Blacklist Monitor it is now possible to block an object from execution in the
managed system. The SAP Blacklist Monitor for an object can be used within the
Decommissioning Cockpit. It is one of the action which can be taken in the object list.
The SAP Blacklist Monitor can be activated in the defined statistical systems for the following
object types: TRAN, FUNC, METH and PROG. For these four object types there are two
possibilities to monitor/block the usage with the SAP Blacklist Monitor:
65
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
•
•
Logging and Dump
If you select this option, the system creates a log entry and triggers a short dump for the
object which is executed.
Only logging
If you select this option, the system only creates a log entry but it does not create a dump.
This is useful for objects still in use, for example in a critical business process where you
want to impede short dumps. The advantage of the log is that you still get to know when
and by whom the objects where executed.
Screenshot: Activate SAP Blacklist Monitor (BLM) for a specific object
In order to activate SAP Blacklist Monitor (BLM) for a specific object, just select the object in
the object list and press button “Insert into BLM”.
With the button “Remove from BLM” the SAP BLM will be deactivated for this object and if
there is a BLM log for the usage this BLM log will be deleted. For both options, multiple
selection of objects is possible.
If the option “Logging and Dump” will be selected the execution of the object will lead to a short
dump in the system. This dump is classified as “SYSTEM_ABAP_ACCESS_DENIED” so that
you can easily identified that it was caused by the BLM.
66
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Screenshot: Dump caused by the BLM
Attention: Activation of BLM for a specific object will be done in all statistical systems
which are defined in this specific decommissioning analysis. If it is not possible to activate BLM
for a specific system the user will get a message in which system the activation was not possible.
In order to check the usage with BLM two new columns can be displayed in the
decommissioning object worklist:
• BLM Status
• BLM Used System
The BLM status will be displayed with the following symbols:
Object type is supported, but the object is not included in the BLM yet.
Object is included in the blacklist monitor, but this object is not yet used in a statistical
system.
Object is included in the BLM and not used, but this object is not in all statistical systems
(investigation required) included in the BLM.
Object is included in the BLM and it is being used in at least one of the statistical systems
No Symbol - Object type is not supported by the blacklist monitor.
In the column “BLM Used System” the systems will be listed in which the object was used and
logged by the BLM.
Screenshot: BLM columns in decommissioning object list
You can check in detail the BLM status and log of an object, just select the object and press
button “BLM Details”.
The header the BLM details includes the decommissioning project ID, object type and object
name which is the technical name of the object.
In the table below, the BLM details show the system ID where the object is included into BLM, a
timestamp when the object was added (to the BLM), the action mode which means whether you
get a log only or a log and a dump, and a “Change” pushbutton to change the action mode.
67
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
In the second table at the bottom you see the usage information if the object was used and the
usage was logged by the BLM: system where it was used, user, timestamp of usage, root type
and root information for executed object.
Screenshot: BLM log details for a used object
Within the details you can change the “Action Mode” from “Log and Dump” to “Log only” at
any time, if needed.
Attention: Please read SAP notes 2441393 and 2491079 for more details on the BLM and
for the prerequisites in the managed systems.
Custom Code - Dashboards
Starting the Custom Code Management dashboards by selecting "Custom Code - Dashboards" in
the Launchpad will lead to an overview of seven predefined KPIs. All relevant numbers are
calculated from CCLM data, by extracting the relevant CCLM data into specific cubes in the
SAP Solution Manager BW.
Attention: Depending on the extractor runs there might be a delay between the data in
CCLM and the data shown by the custom code dashboards.
Remark: If the "Dashboard" button is not available in the control panel, please activate the
field "BI_ANALYSIS" in table AGS_CC_CUSTOM.
There are seven predefined KPIs, which will be delivered in standard. These KPIs represent
information of the 3+2 dimensions of the city:
• Total number of Custom Code Objects
• Total number of Custom Code Objects with low quality (red messages)
• Total number of not used Custom Code Objects (only objects are counted for which
usage information can be collected, see chapter "Usage Collection")
• Percentage of Custom Code Objects with Criticality Level 4 and 5
• Total number of Custom Code Objects with SAPSeverity Level 1 - enhancements
• Total number of Custom Code Objects with SAPSeverity Level 3 - modifications
68
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
•
Total number of Custom Code Objects with SAPSeverity Level 5 - independent custom
code objects
Business Value
Selecting "Business Value" will show a quick information for the seven KPIs.
Screenshot: CCLM Dashboard; overview
This overview is showing the numbers for all systems. With a click on a specific KPI more
information will be displayed.
Key Performance Indicator
Selecting "Key Performance Indicators" will show all relevant information for the seven KPIs.
Select "Custom Code Management" in the KPI group to show the relevant KPIs for Custom
Code Management.
Screenshot: CCLM Dashboard; Key Performance Indicators
69
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
The following information is displayed for all seven KPIs for all systems:
• Status: Overall status of the KPI
• KPI: Description of the KPI
• Trend: Changes/Trend of KPI
• Baseline
• Achievement: Current achievement
• Target: Target number
• Benchmark
• KPI current: current value of KPI
• Monthly improvement
At the bottom, best and worst KPI will be named with regards to the current achievement and the
monthly improvement.
The following numbers are calculated and displayed in the iCI dashboards:
Example:
The example is based on the KPI "Total number of Custom Code Objects"
Baseline
The baseline is the starting point for each KPI. It can be calculated automatically by the system
as the first measurement of the KPI or it can be set manually by the user (within th iCI
configuration). This might be the case if for example the first measurement by the system
includes not all systems then the baseline can be set manually to the overall number for all
systems afterwards. The baseline might also reflect the number, which should not be exceeded.
Example: baseline = 60000 objects
Target
The target is the number which should be achieved at the end of a specific time frame. Therefore,
a start date and a target end date must be defined.
Example: target = 40000 objects starting March 1st with target end date December 31st.
Benchmark
The benchmark is provided by SAP for all KPIs. It is calculated from SAP's experience out of
several customer projects.
Example: benchmark = 12000 objects
KPI current (measurement)
KPI current represents the current value of the KPI in the system.
Example: March = 60000 objects (baseline), April = 59500 objects, May = 57350 objects, June =
58100 objects, July = 56100 objects, August = 47020 objects current day August 25th.
Achievement (value and %)
The achievement will be calculated by the system. 100% achievement will be calculated if the
target value is reached. Therefore, the difference between the baseline and the target is calculated
and set to 100%. For the current achievement, the difference between the baseline and the
70
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
current KPI value is calculated. This result will then be set into relation to the 100%
achievement.
Example: 100% achievement = baseline-target = 60000 - 40000 = 20000 objects
current achievement = baseline - KPI current:
March: 60000 - 60000 = 0; April: 60000 - 59500 = 500; May: 60000 - 57350 = 2650; June:
60000 - 58100 = 1900;
July: 60000 - 56100 = 3900; August : 60000 - 47020 = 12980
achievement (%) = current achievement month/target achievement * 100; current achievement in
month in relation to target achievement (target achievement = 100%)
March: 0/20000 *100 = 0; April: 500/20000 * 100 = 2,5; May: 2650/20000 * 100 = 13,25; June:
1900/20000 * 100 =9,5;
July: 3900/20000 * 100 = 19,5; August 12980/20000 * 100 = 64,9
Set-Value (value and %)
Based on the baseline and the target a set-value will be calculated for each month. Therefore, the
number of month between the starting date and the target end date will be calculated. The 100%
achievement (delta baseline - target) will be divided by the number of calculated months.
Following a linear approach this is the target achievement, which should be reached each month.
The set-value is now the baseline changed by the calculated target achievement for the first
month and set-value of month before changed by the calculated target achievement for each
following month.
Example: start date: March 1st; target end date: Dec. 31st. Number of month March to
December: 10 month
100% achievement: 20000 objects. Set-value for each month: 20000 / 10 = 2000 objects
Set-value for each month = baseline(set-value of month before) - set value per month:
March: 60000-2000 = 58000; April: 58000 - 2000 = 56000; May: 54000; June: 52000 ...
November: 42000; December: 40000
Set value (%) = set-value month/baseline * 100; set-value month in relation to the baseline
(baseline=100%)
March: 58000/60000 * 100 = 96,67; April: 56000/60000 * 100 = 93,33; ... Nov: 42000/60000
*100 = 70; Dec: 40000/60000 * 100 = 66,67
Plan/Actual
This is the relation between plan (set-value of each month) and actual (current KPI value). It will
be calculated by setting plan to 100% and calculating percentage for actual in relation to the
plan. From this result 100 is subtracted as we would like to show the difference to 100%.
Though higher the value though greater the distance to the set-value of each month.
Is the number positive the current KPI value is still above the set-value, it is negative if the
current KPI value is below the set-value.
Example: Plan/Actual = (current KPI/set value month *100) - 100
March: (60000/58000 * 100) -100 = 3,45; April: (59500/56000 * 100) -100 = 6,25; May:
(57350/54000 * 100) - 100= 6,20
June: (58100/52000 * 100) - 100 = 11,73; July: (56100/50000 * 100) -100 = 12,2; August:
(47020/48000 * 100) - 100 = -2,04
Monthly Improvement
71
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
The monthly improvement shows the improvement of the current month in relation to the last
month. The KPI value of the last month will be set to 100% and the current KPI value of the
current month will be calculated with relation to the 100%. From this result 100 is subtracted as
we would like to show the difference to 100%.
Though higher the value though greater the difference to the KPI value of the month before.
Is the number positive the current KPI value is above the KPI value of the month before, it is
negative if the current KPI value is below value of the month before.
Example: Monthly Improvement = (KPI value current month/KPI value last month * 100) - 100
March: no result, as there is now value for last month; April: (59500/60000 * 100) -100 = -0,83;
May: (57350/59500 * 100) -100 = -3,61;
June: (58100/57350 * 100) -100 = 1,31; July: (56100/58100 * 100) -100= -3,44; August:
(47020/56100 * 100) -100= -16,19
Input Measures
Selecting one of the KPIs with a click will lead to detailed historical information. Select "Input
Measures" to see the historical details on the overall numbers. On the left the overall number for
each system with historic data is displayed. You can select the granularity of the historical data
(weeks, month, days) on the top on the right.
On the right a system can be selected as well to get more details on the respective number for
each severity level. This number can be drilled down to the specific object types. The object
types, which will be displayed can be selected individually. The settings for the object types can
be done by selecting the "VMDB Configuration" button
on the left.
Screenshot: CCLM Dashboard; Input measures
Quick View
Selecting one of the KPIs with a click will lead to detailed historical information. Select "Quick
View" to see the historical details on the achievement, plan/actual, KPI value and monthly
improvement. You can select the granularity of the historical data (weeks, month, days) on the
top on the right.
72
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Screenshot: CCLM Dashboard; Achievement overview
In the Quick View scroll down to the bottom to set the target. If you can't set the target please
make sure that the following roles are assigned to your user:
•
•
•
SAP_BI_ICI,
SAP_SM_BI_ADMIN,
SAP_SM_DASHBOARDS_ADM_ICI.
Screenshot: CCLM Dashboard; Quick View: Set target
73
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Hint: More Information and documentation on the dashboards can be found on:
http://wiki.scn.sap.com/wiki/display/ICI/ICI+Dashboard+Home
and for troubleshooting on: http://wiki.scn.sap.com/wiki/display/ICI/Troubleshooting.
Custom Code Reporting / Settings – Custom Code Reporting
With Custom Code Reporting it is possible to define specific reports on CCLM data. The reports
will access the generic BW cube for CCLM (0SM_CCLM). In this info cube data from CCLM
will be transferred via the respective extractor (Custom Code: CCLM Reporting - Library).
Most of the standard attributes are already available in the cube. With “Settings – Custom Code
Reporting” there is the possibility to map additional standard attributes and customer specific
attributes to free fields in the cube (fields: 0SM_CCLMxx). After the mapping, these fields will
be filled with the values of the mapped fields from CCLM.
Attention: Please map the fields before you start the CCLM extractor for this cube. After the
fields are mapped please do not change existing mappings, as the historical data will not be
changed. Of course, if there are still free fields they can be mapped to other fields at every time.
From the point in time the mapping was done, with the next run of the extractor the newly
mapped field(s) will be filled.
Attention: After the new custom code fields have been filled in CCLM they only appear in
BW reporting if the CCLM extractor was running at least once after the fields have been filled.
In the Fiori Launchpad please select “Settings – Custom Code Reporting” to map the fields to the
free fields of the CCLM InfoCube.
74
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Screenshot: Map attributes for BW reporting
In the Fiori Launchpad select “Custom Code Reporting” to define the report and to start the
analysis.
You will first be navigated to a selection screen where you can already define an analysis. The
field "Snapshot Day" must be filled with the date of the last extraction of data from CCLM. This
is mandatory as the InfoCube does contain historical data as well and to show only the actual
data or the data of a specific extraction an extraction date (snapshot day) must be defined. It is
also recommended to do the analysis for one or more specific systems and enter one or more
specific systems as well in field "System ID".
75
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Screenshot: Select and filter data for BW reporting
Attention: The snapshot day is essential for the result of the analysis. For example, if
current usage data should be analyzed it is necessary to enter a snapshot day. If you want to
analyze the current usage it is recommended to enter the date of the last extraction date of CCLM
data into BW cube (0SM_CCLM) as snapshot day. Normally this extraction runs daily. If you
are not sure about the last extraction date you can check the last run of the extractor "Custom
Code: CCLM Reporting - Library".
After selecting this section, the available fields will be shown in the "Navigation Block". Each
existing field can be selected to be part of the analysis either in a row or in a column. In addition,
a filter can be defined for each selected field.
Screenshot: Select attributes for report
After defining the report, the result of the report will be shown below in the section "CCLM BW
Reporting".
Screenshot: Result of a BW report (usage of specific object types)
76
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
The analysis above shows the last usage of the objects types FUNC, METH, PROG, TRAN in
system FBT by year (column # shows the number of objects not used since data collection from
usage sources have been started).
Remark: The ad-hoc reporting in CCLM in SAP Solution Manager 7.10 is now replaced by
the BW reporting and is no longer available.
Remark: As the ad-hoc reporting is no longer available, the respective report
RAGS_CC_REPORTING cannot be used any longer.
Hint: There are several possible actions available to work with the result list, e.g. download
to Excel or bookmark the analysis to access it directly. Just click on the header line (description)
to open the context menu.
Screenshot: Possible actions on BW report
Maintain Owner – Namespace Classification
It is possible to check if an object in CCLM is a “real” custom code object created in a customer
namespace or if it is a partner object created in a partner namespace. These objects will be
classified with SAP severity 5, but differentiated via the standard CCLM attribute “Namespace
Owner” (CODE_ORIGIN).
CUST = created in customer namespace
PART = created in partner namespace
The namespace classification is collected from the different managed systems and consolidated
in the SAP Solution Manager. The following rules apply:
• No object which was created in SAP namespace will be collected for CCLM.
Only modified SAP objects will be collected for CCLM and classified with SAP severity
3 and Namespace Owner = SAP.
• All objects of a customer namespace and a partner namespace will be collected for
CCLM and classified with SAP severity 5 and Namespace Owner = CUST for customer
namespaces or = PART for partner namespaces.
77
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
•
•
•
Only objects which have Namespace Owner = CUST can be analyzed in the
decommissioning cockpit.
Objects which have Namespace Owner = PART will not be shown in the City Model.
This means that the number of objects in the city model will not match the number of
overall objects in CCLM.
If the namespace classification is differently in different connected system the
consolidation will be done in the following way:
o If one classification is SAP it will be treated as SAP namespace and the objects
will only be collected if they are modified.
o If one classification is CUST and no classification is SAP then it will be treated as
CUST namespace.
The namespace owner in SAP Solution Manager can be modified from partner to customer and
vice versa. Select the tile “Maintain Owner – Namespace Classification” from the Fiori
Launchpad to change the namespace owner.
Screenshot: Customer Namespace Classification
The modification of the namespace owner affects only the collection and classification of objects
for CCLM and the respective attributes. There is no change in the managed system.
Settings - Business Criticality
Criticality is one of the dimensions of the custom code city model. To get a complete view of the
city the criticality should be defined.
Hint: The criticality of an object does not have an active part for the quality or the
decommissioning cockpit. It is just an additional information. The recommendation is to set up
CCLM first without any criticality settings and if you are familiar with the features of CCLM
start to set up criticality as well.
78
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
The business criticality information is collected by an analysis job, which can be scheduled in the
CCM setup of Solution Manger setup in step 5.2 section "Analysis Jobs".
Screenshot: Schedule criticality analysis in managed system within CCM set-up
This analysis is collecting information from 5 system-dependent data pools, based on this
information the criticality collector (Custom Code: Criticality) is calculating a value between 1 =
not critical and 5 = very critical, which will then be stored in CCLM. The data pools are
extracted per system and based on that the criticality score is calculated per system. As of SAP
Solution Manager 7.20 all attributes of an object are now system specific the criticality score of
an object can be different for different systems in CCLM. It might even be possible, that for
some systems the criticality score for an object might be not applicable, because the data pools
are not available or not analyzed.
Attention: The criticality score is now stored system dependent, which is different to CCLM
in SAP Solution Manager 7.1.
The criticality is calculated based on 5 data pools:
• Usage: Number of end users using this business transaction. The highest and lowest
execution values are relevant.
• Frequency: Frequency of business transaction and program execution. The most and the
least used transactions and programs are relevant.
• Runtime: Overall time to execute the business program or business transaction.
• Data Growth: Increase in the volume of data related to business processes in the context
of transactions and reports.
• Table Utilization: Overall number of times a table is used by transactions and programs.
Although it is called "Business Criticality" in the set-up, the calculation is based on technical
measurable facts, which are available in the systems.
For usage, frequency and runtime the data will be extracted out of the workload statistics, for
data growth and table utilization the data will be extracted from Data Volume Management
(DVM).
Attention: Because criticality calculation is using workload statistics, not all object types
can be evaluated. Currently only the object types "PROG" and "TRAN" can be evaluated. All
objects which cannot be evaluated appear in the "N/A" column of the criticality dimension in the
city model.
79
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Attention: Only the reports and transactions assigned to the selected DVM data will be
evaluated and checked for data growth and table utilization.
The criticality calculation can be customized in the "Business Criticality UI". This UI can be
launched from the Fiori Launchpad using tile “Settings – Business Criticality”.
Screenshot: Settings for criticality analysis
To calculate the criticality for specific object types the relevant extractors for the data pools have
to be scheduled and sufficient data must be available. Sufficient data means at least one month of
data must be available. You can define the period, which should be used to collect the data from
one month up to one year.
To check the extractors and the data availability go to CCM setup of Solution Manger setup in
step 5.2 section "Analysis Jobs", click on "Business Criticality UI" on top on the right of the list
of the analysis jobs.
80
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Screenshot: Check extractors and data availability for Business Criticality
Settings for Business Criticality:
Attention: If the analysis job for the criticality will be scheduled and executed without any
customer specific settings, the analysis job will use the default standard settings for the criticality
calculation.
Section "Data Pool Activation"
You don't need to activate all data pools for the calculation, but at least two pools have to be
activated. For each selected pool a criticality rating can be specified. This criticality rating refers
to how important you consider each data pool and is used to determine the default weighting
factor of each pool:
• Low = rating factor 1
• Medium= rating factor 2
• High = rating factor 3
For the selected data pools, specify the upper and lower limit for which objects you want to rate
as critical in the analysis. For example, if you set both the upper and lower limits to 10 for the
Frequency pool, the least used 10% and most used 10% of objects are rated as critical.
81
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
Screenshot: Data Pools for criticality analysis
You can check for each selected pool and system if necessary data is available in CCM setup of
Solution Manger setup in step 5.2 section "Analysis Jobs", click on "Business Criticality UI" on
top on the right of the list of the analysis jobs, after you have saved your settings.
The extractor for the workload statistics can be activated in the basic configuration and the
extractor for DVM can be activated in solman_setup section Data Volume Management step 8
"Activate DVM Extractors".
Section "Weighting Assignment"
To calculate the criticality, it is necessary to check in which data pool an object is rated as
critical. For the calculation, all possible intersections of all possible combinations between the
selected data pools will be considered. The means the overall criticality of an object will be
calculated in relation in how many intersections this object is included.
Attention: If a combination is greyed out, this means that one or more of the pools in this
combination is not activated.
For each intersection, a specific weighting factor can be defined. The default factor is based on
the rating of the data pools itself.
Screenshot: Assign weighting for criticality analysis for intersection of data pools
Remember: Each criticality rating of a data pool corresponds to a numerical value, that is, the
Low, Medium, and High criticality ratings are converted into a weighting factor of 1, 2, and 3
respectively. The default weighting factor of each combination is determined by the sum of the
pools it contains. For example, you set the following criticality ratings:
• Usage: High
• Frequency: Low
• Growth Factor: Medium
82
CCLM – Custom Code Lifecycle Management in SAP Solution Manager 7.2 SP06
The default weighting factor of the combination USAGE, FREQUENCY, GROWTH FACTOR
is equivalent to 3 + 1 + 2. Therefore, the default weighting factor for this combination is 6.
The default value for each intersection can be adjust to a custom factor if needed.
After you have defined the weighting save your entries.
Attention: Each object is only included in the combination for which it contains the most
relevant data for the highest number of data pools. For example, if an object has relevant data for
the combination USAGE, FREQUENCY, GROWTH FACTOR, the object is not included in the
combination USAGE, GROWTH FACTOR, even though it is relevant for both of those
intersections.
Check Data Availability – Usage Logging
Here you can check the existing UPL/SCMON data for each connected system. Just select the
system and then select the usage data UPL or SCMON you would like to check.
In addition, you can either select a time period or a time frame to get information about the
available data in the respective usage DSOs and cubes (day, week, month, year) in the “System
Summary” table. To switch between the different DSOs and cubes for day, week, month and
year, just select the respective tab on the top of the screen.
Screenshot: UPL/SCMON data availability
www.sap.com/contactsap
© 2017 SAP SE or an SAP affiliate company. All rights reserved.
No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP SE or an SAP affiliate company.
The information contained herein may be changed without prior notice. Some software products marketed by SAP SE and its distributors contain proprietary software components of other software vendors. National product
specifications may vary.
These materials are provided by SAP SE or an SAP affiliate company for informational purposes only, without representation or warranty of any kind, and SAP or its affiliated companies shall not be liable for errors or
omissions with respect to the materials. The only warranties for SAP or SAP affiliate company products and services are those that are set forth in the express warranty statements accompanying such products and services, if
any. Nothing herein should be construed as constituting an additional warranty.
In particular, SAP SE or its affiliated companies have no obligation to pursue any course of business outlined in this document or any related presentation, or to develop or release any functionality mentioned therein. This
document, or any related presentation, and SAP SE’s or its affiliated companies’ strategy and possible future developments, products, and/or platform directions and functionality are all subject to change and may be changed by
SAP SE or its affiliated companies at any time for any reason without notice. The information in this document is not a commitment, promise, or legal obligation to deliver any material, code, or functionality. All forwardlooking statements are subject to various risks and uncertainties that could cause actual results to differ materially from expectations. Readers are cautioned not to place undue reliance on these forward-looking statements, and
they should not be relied upon in making purchasing decisions.
SAP and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP SE (or an SAP affiliate company) in Germany and other countries. All other product
and service names mentioned are the trademarks of their respective companies. See http://www.sap.com/corporate-en/legal/copyright/index.epx for additional trademark information and notices.
83