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