Custom code analysis for SAP S/4HANA with SAP Fiori App Custom Code Migration
Maybe you already know, that ABAP Test Cockpit offers the option of executing the checks remotely on any ABAP system (SAP_BASIS >= 7.00). Using remote ABAP Test Cockpit infrastructure SAP customers and partners can analyze custom code in older systems using the latest ABAP Test Cockpit checks and only one central system for ABAP Test Cockpit (see blog series about Remote Code Analysis in ATC).
With SAP S/4HANA 1809, we offer the SAP Fiori Custom Code Migration App based on this remote ABAP Test Cockpit infrastructure. The App should be used for custom code analysis for SAP S/4HANA in the context of SAP S/4HANA conversion (see also SAP S/4HANA System Conversion – Custom code adaptation process).
NEW: Starting with the SAP Cloud Platform ABAP Environment 1908 (now named SAP Business Technology Platform (BTP) ABAP Environment) you can use SAP Fiori App Custom Code Migration in the Cloud to analyze custom code in your on-premise SAP system for SAP S/4HANA readiness. See also the blog ABAP custom code analysis using SAP Business Technology Platform.
The App performs SAP S/4HANA checks on your custom code, which needs to be migrated from your SAP Business Suite System to SAP S/4HANA and provides the analytical presentation of the ABAP Test Cockpit check results with comprehensive filtering and navigation capabilities. Beyond this the App identifies the unused custom code based on your collected usage data, and this enables you to remove it automatically during a system conversion to SAP S/4HANA.
There are two options to setup the custom code analysis with SAP Fiori App Custom Code Migration:
1) Use SAP Fiori App Custom Code Migration in SAP Business Technology Platform
For technical setup instructions for using the SAP Fiori App Custom Code Migration in SAP Business Technology Platform please refer to the blog ABAP custom code analysis using SAP Business Technology Platform.
The SAP Fiori App Custom Code Migration will run in SAP SAP Business Technology Platform (BTP) ABAP Environment – formely known as SAP Cloud Platform ABAP Environment – and will check custom code in your on-premise SAP system using the remote ATC infrastructure with RFC through SAP Cloud Connector:
2) Use SAP Fiori App Custom Code Migration on-premise
You need an SAP S/4HANA >=1809 system set up as a central ATC check system. Our recommendation is to use your SAP S/4HANA sandbox system. See also Remote Code Analysis in ATC – Technical Setup step by step for setup guidance.
You need also to setup and configure the SAP Fiori App Custom Code Migration on this SAP S/4HANA 1809 system. Use SAP documentation on SAP Help Portal for specific implementation and configuration information on SAP Fiori App Custom Code Migration. The SAP Note 2436688 provides all required SAP Notes for the SAP Fiori App Custom Code Migration.
The SAP Fiori App Custom Code Migration will check custom code in your SAP backend system using the remote ATC infrastructure:
Create your Custom Code Migration Project
Start Custom Code Migration App on your SAP Fiori Launchpad. You can maintain multiple custom code migration projects in the App:
Create your Custom Code Migration Project by pressing “+” (Create Object) button and entering your project data: Project Description, Target Release for your SAP S/4HANA System and RFC Destination to your SAP ERP system:
Add usage data to your Custom Code Migration Project
Now you can add usage data collected either by the ABAP Call Monitor (SCMON) and aggregated by the SUSG transaction or add usage data collected in your SAP Solution Manager system (SAP Solution Manager 7.2 SP8 is the prerequisite).
NOTE: You should collect usage data of your business processes at least for one year in order to get really reliable results for not productively used code.
For information about how to collect usage data and aggregate it in your ERP production system see the blogs: ABAP Call Monitor (SCMON) – Analyze usage of your code and Aggregate usage data in your production system with SUSG transaction.
If you collected usage data in your ERP production system, use there the SUSG transaction to create a snapshot of the usage data. Afterwards download the snapshot and upload it using the SUSG in your checked system. The App will access your checked system (and snapshot with usage data) via RFC:
You can add usage data to your Custom Code Migration Project by pressing “+” (Add) button and using F4 Help in the Usage Description field. Save your project by pressing the “Save” button.
NOTE: If you collected usage data in the SAP Solution Manager, then the App detects whether it is a SAP Solution Manager system behind the RFC destination for the usage data. Then the existing SAP Solution Manager usage data records are displayed in the selection dialog. See the blog How to upload usage data from the SAP Solution Manager to the SAP Fiori App Custom Code Migration.
Define the scope of your Custom Code Migration Project
Now you can define (based on usage data) which ABAP custom code needs to be taken over to your SAP S/4HANA system. The App will create a deletion transport in order to enable deletion of unused ABAP custom code during the system conversion to SAP S/4HANA.
Navigate to the Scope overview. You will see the graphical presentation of the detailed scope information. When you add usage data to your custom code migration project, a default scope is calculated. The default scope includes all used objects, all objects which are statically referenced by the used objects, and objects for which no usage data is available such as database tables or data elements.
Generally the following scope information categories are possible:
In scope (by object) – objects, for which usage data do not exist, for example DDIC objects like Data Elements. Such objects are always automatically in the scope.
In scope (by usage) – objects, for which usage data exist. These objects are used and therefore they are in the scope.
In scope (by reference) – objects, which are statically referenced by the objects in the scope. Such objects cannot be removed from the scope as this would lead to syntax errors.
In scope (by user selection) – objects, which were added to the scope by the user.
Not in scope – objects , which are not used (not listed in the usage data) and not statically referenced by the objects in the scope.
Not in scope (by user selection) – objects, which were removed from the scope by the user.
If you included usage data into your Custom Code Migration Project, you can click on the Scope Request Entry Points. There you will get (based on the usage data) a list of the executed request entry points (such as a specific transaction, RFC call, URL request, or ABAP report) along with all ABAP procedures that have been executed under these entry points, and you can decide, which objects you want to remove (Remove from scope) (for example based on the last usage date).
In case you want to adjust the scope manually, the App offers the possibility to add/remove packages or single objects to/from the scope (click “Scope Packages” button). This can be useful to include new developments that are not yet productively used or exclude some developments that you will not need in your new SAP S/4HANA system.
When defining the scope, you can also display the complexity of your custom code in a graphic (click Scope Packages and then go to the Packages tab):
It summarizes the number of relevant changes in accordance with the complexity of the custom code on package level (or request entry point level of the ABAP Call Monitor (SCMON) if you go to the Entry Points tab).The upper right part of the diagram represents the most complex and most frequently changed development packages. They should be removed from the scope for SAP S/4HANA migration, since they cause high TCO. SAP recommends to review these custom code developments to reconfirm the need of this functionality with the business, and reevaluate if meanwhile the same can be achieved by using SAP standard, or with in-app extensibility, or if it qualifies for a side-by-side extension on SAP BTP.
After you defined the scope of your Custom Code Migration Project, you can create a transport request in your ERP system, which contains all information about your unused custom code (all objects that are not in scope). To do so go to the Project tab and click Save Scope as Transport Request):
NOTE: in the newer versions of the Custom Code Migration App the button is called “Create Deletion Transport”.
The transport request gets created and appears under Request/Task of your Custom Code Migration Project:
This transport request can be added to the Software Update Manager (SUM) during the SAP S/4HANA conversion, the unused objects (not in scope) will be deleted by SUM.
NOTE: In case you want to keep a backup of the unused objects we recommend to use gCTS after SAP S/4HANA system conversion to store the objects in the Git repository, see the blog How to backup custom code with gCTS for details. You can also use abapGit (see the Steps 1-3 in the tutorial Use abapGit to Transform ABAP Source Code to the Cloud on sap.com).
Analyze your custom code with SAP S/4HANA checks
As soon as you create your Custom Code Migration Project the SAP S/4HANA custom code checks are executed automatically by ATC, and the App offers you the analytical presentation of SAP S/4HANA custom code check findings.
Go to the Analysis tab and click on the “Analyze Findings” button:
Using the visual filters above you can group your ATC findings to get information on for example:
- What are the most important (urgent) findings (-> filter Findings by Priority)
- How many findings relate to the custom code objects you take over to SAP S/4HANA (-> filter Findings by Scope Information)
- How many findings relate to your custom package XYZ (-> filter Findings by Package)
- In which simplification areas do you get the most findings (->filter Findings by SAP Note Number)
- For which findings there are Quick Fixes available and which findings you need to fix manually (->filter Findings by Quick Fix Availability, currently available with SAP S/4HANA 1809 FPS02)
Download SAP S/4HANA analysis results
Use the Export to Spreadsheet button in the Findings table to download the analysis results:
Integration with SAP Readiness Check 2.0
You can download the check results with purpose to upload them later on to SAP Readiness Check 2.0.
To do so press Export to Spreadsheet button and select Export for SAP Readiness Check:
See the latest information about SAP Readiness Check 2.0 in the blog SAP Readiness Check for SAP S/4HANA – What’s New in November 2020.
See Documentation on SAP Fiori App Custom Code Migration on SAP Help Portal.