Last edit: October 30, 2023
This document tries to answer the most important questions around the
custom code adaptation process for SAP S/4HANA.
For general information about custom code adaptation process to SAP S/4HANA please take a look at our central blog
SAP S/4HANA System Conversion – Custom code adaptation process.
If you have common questions, which should be answered in this collection, you can propose them here, in case you are interested to discuss more specific topics please take part at the
forum/discussions.
Frequently Asked Questions
General
Usage analysis
Custom code analysis
SAP Fiori App Custom Code Migration
Custom code adaptation
Frequently Asked Questions
General
Is this custom code adaptation process only for the conversion to the SAP S/4HANA or also for the database migration from Any DB to SAP HANA?
This process is only of limited use for the SAP HANA migration and is not recommended. For custom code adaptation to SAP HANA check the blog
ABAP custom code adaptation for SAP HANA - The efficient way.
What is the difference between custom code analysis within SAP Readiness Check and with ATC? What do I need to use?
SAP Readiness Check should be used in the planning phase of an SAP S/4HANA conversion. SAP Readiness Check provides a high-level overview of the custom code analysis and gives you the impression about the upcoming efforts. The ATC should be used in the project phase of an SAP S/4HANA conversion. The ATC executes deep custom code analysis and detects all critical usages of simplified SAP standard objects in your custom code which must be adapted.
Can I use the Custom Code Migration Worklist instead of remote ATC? What is the advantage of remote ATC?
The custom code analysis with Custom Code Migration Worklist is only offered on SAP NetWeaver AS ABAP 7.50. It is not provided anymore on >7.50 releases and was replaced by the remote ATC. Technically the Custom Code Migration Worklist approach is based on the SYCM tool. The difference to ATC is, that SYCM is based purely on where-used list, meaning it finds e.g. all usages of simplified SAP standard code in your custom code but doesn’t analyze if this usage is critical. Consequently the false-positive rate is extremely high. The analysis if the usage is critical can do only ATC.
Usage analysis
Should I use UPL or SCMON for usage analysis? Why there are two tools?
Both tools can be used, however SCMON is recommended. SCMON is the replacement for UPL. It comes with new features (calling business process aka entry point) and can be used on the ABAP stack without SAP Solution Manager. In this way you can analyze the SCMON results directly within the ABAP stack.
The transaction SCMON is not available in my system. What should I do?
ABAP Call Monitor is available with SAP NetWeaver AS ABAP 7.50 and for the lower releases (>=7.00) you can install ST-PI Add-on and use then the transaction /SDF/SCMON. Please see also the SAP Note
2679723.
Is there a performance decrease when using SCMON? If yes, how much (roughly)?
Roughly about 5% CPU time on the application server.
What amount of data (roughly) can we expect after 12-15 months of usage data collection with SCMON in our ERP system?
Of the order of about 5 GB.
We use SAP Solution Manager with UPL. Can we switch to SCMON and how can we integrate already collected UPL data and new SCMON data?
SAP Solution Manager >=7.20 supports SCMON and collects either UPL or SCMON data depending whether the connected system is capable of SCMON or UPL. It is also possible to extract the SCMON data into Solution Manager BW. The existing already collected UPL data get also imported into Solution Manager BW and simply mixed with the new SCMON data.
Can I collect usage data for Smart Forms and/or Adobe Forms?
SCMON (and also UPL) collects only ABAP-based usage data.
We want to replace UPL with SCMON. Are there any known functional implications?
SCMON is the SAP recommended successor for UPL. There are no functional implications.
During the conversion to SAP S/4HANA: is it possible to add the SCMON usage data to the ATC analysis to focus on used custom code?
Yes, it is possible with the SAP Fiori App Custom Code Migration, based on ATC. See also the blog
Custom code analysis for SAP S/4HANA with SAP Fiori App Custom Code Migration.
Please note, that custom code that has not been adopted to the SAP S/4HANA has to be removed from the system; being left it possesses risk to data consistency.
We switched on SCMON in our system and found out, that only the data of the last 7 days is available. How to collect the usage data for a longer period of time?
The SCMON stores usage data on the system for a certain period of time (default 7 days). In order to store the usage data for a longer period of time, you should use transaction SUSG. See also the blog
Aggregate usage data in your production system with SUSG transaction. The purpose of the transaction SUSG is to aggregate the usage data collected by SCMON for a longer period of time.
Can I see results of SCMON during the recording, before an SUSG snapshot was taken?
Yes, you can do it in the transaction SCMON (or /SDF/SCMON) using the Data Browser. See also the blog
ABAP Call Monitor (SCMON) – Analyze usage of your code.
I haven’t found the transaction SUSG in my system. What should I do?
SUSG is provided also for older SAP NetWeaver releases (>=7.00). You need to install SUSG on your system via SNOTE. See please the corresponding SAP Notes in the “Prerequisites” chapter of the blog
Aggregate usage data in your production system with SUSG transaction.
Can I use the transaction SUSG with the UPL usage data?
No, SUSG aggregates only the SCMON usage data, the UPL usage data are aggregated in the SAP Solution Manager BW.
Can I add already collected UPL usage data to the SUSG/SCMON?
No, SUSG aggregates only SCMON usage data. You use either SUSG with SCMON directly in in your production system or SAP Solution Manager with SCMON or UPL.
Custom code analysis
I want to perform SAP S/4HANA custom code checks for release SAP S/4HANA 1909 (or SAP S/4HANA 2020, or SAP S/4HANA 2021, or SAP S/4HANA 2022), but the check variant S4HANA_READINESS_1909 (or S4HANA_READINESS_2020, or S4HANA_READINESS_2021, or S4HANA_READINESS_2022, or S4HANA_READINESS_2023) is not available in my central ATC check system. What should I do?
The SAP note
2812556 explains how to get the S4HANA_READINESS_1909 check variant into your central ATC check system.
The SAP note
2959341 explains how to get the S4HANA_READINESS_2020 check variant into your central ATC check system.
The SAP note
3090106 explains how to get the S4HANA_READINESS_2021 check variant into your central ATC check system.
The SAP note
3231748 explains how to get the S4HANA_READINESS_2022 check variant into your central ATC check system.
The SAP note
3365357 explains how to get the S4HANA_READINESS_2023 check variant into your central ATC check system.
What is the difference between the S4HANA_READINESS_REMOTE and the SAP S/4HANA version dependent check variants (e.g. S4HANA_READINESS_2023)?
The SAP S/4HANA specific check variants (e.g. S4HANA_READINESS_2023) check your custom code for the simplification items, relevant for the target SAP S/4HANA release (e.g. S4HANA_READINESS_2023 checks only the SAP S/4HANA 2023 relevant simplification items). S4HANA_READINESS_REMOTE checks all the items of the Simplification DB.
Many customers use partner products or 3rd party coding. Are they considered within the ATC check?
It is possible to register foreign namespaces at the central ATC check system. See also the SAP Help Portal documentation:
register custom namespaces of the checked systems at the central ATC system.
What needs to be adjusted in my custom code if I decide not to use the long MATNR (40) of SAP S/4HANA?
In this case after ATC run you will need to adjust only the places in your custom code where there are data lost, type or length conflicts of your MATNR (18) with the new MATNR (40), e.g. at passing it as a parameter to a method, which accepts MATNR(40), concatenation, comparison or assignment with a new MATNR (40).
SAP Fiori App Custom Code Migration
Is the SAP Fiori App Custom Code Migration the successor of the CCLM in SAP Solution Manager? Which tool should we use in the future?
The SAP Fiori App Custom Code Migration should be used only for the use case of custom code adaptation during the SAP S/4HANA conversion.
Is the SAP Fiori App Custom Code Migration also available in the SAP NetWeaver AS ABAP 7.51/7.52?
The SAP Fiori App Custom Code Migration is available only with the >=SAP S/4HANA 1809 (ABAP Platform 1809).
What is the minimum release of the SAP Fiori Frontend Server for using the SAP Fiori App Custom Code Migration?
SAP Fiori for SAP S/4HANA 1809 requires SAP Fiori Frontend Server 5.0. See also the SAP Help Portal documentation
Custom Code Migration.
Do we necessarily need the SAP Fiori App Custom Code Migration for custom code analysis for SAP S/4HANA?
The SAP Fiori Custom Code Migration App is the SAP recommendation for the custom code analysis for SAP S/4HANA. However, if the required SAP S/4HANA >=1809 system is not available, the SAPGUI-based remote ATC infrastructure with the central ATC check system on SAP NetWeaver AS ABAP 7.52 can also be used for custom code analysis.
What are the prerequisites on the central ATC check system to run and operate the SAP Fiori App Custom Code Migration?
The prerequisites are the same as for the central ATC check system in remote scenario. Depending on how many custom objects you need to consider, SAP recommendation for system sizing is about 1 CPU and 4GB RAM per 16000 objects, for data volume on the DB about 400kB per object. See also the blog
Remote Code Analysis in ATC - Technical Setup step by step.
What can I do if I don’t have an SAP S/4HANA system in my landscape and want to use the SAP Fiori App Custom Code Migration?
You can use the SAP Fiori App Custom Code Migration on SAP Business Technology Platform (SAP BTP) -
formerly known as SAP Cloud Platform. For more details see the blog
ABAP custom code analysis using SAP Business Technology Platform.
Is the SAP Fiori App Custom Code Migration bound to the SAP extended maintenance?
The SAP Fiori App Custom Code Migration is part of the SAP S/4HANA and is subject to the maintenance rules of SAP S/4HANA.
Do I need to pay any additional license fee to use the SAP Fiori App Custom Code Migration?
You need only a valid SAP S/4HANA license.
I have concerns about deleting the unused code. What should I do if I still need it later on?
You can keep a backup of the deleted objects using
abapGit in order to store the objects of the deletion transport request of the SAP Fiori App Custom Code Migration in a Git Repository. For assistance how to do it see also the Steps 1-3 in the tutorial
Use abapGit to Transform ABAP Source Code to the Cloud on sap.com.
We collect usage data with UPL in the SAP Solution Manager. Can we use this usage data for scoping in the SAP Fiori App Custom Code Migration?
Yes, it is possible. You can upload your UPL usage data in the SAP Fiori App Custom Code Migration. The prerequisite is the SAP Solution Manager 7.2 release. See the blog
How to upload usage data from the SAP Solution Manager to the SAP Fiori App Custom Code Migration
Should I check the development or the production system with the SAP Fiori App Custom Code Migration?
It can be both: either a development system or a production system, depending on which system you convert to SAP S/4HANA.
Can I add more than one system to a custom code migration project in the SAP Fiori App Custom Code Migration?
For each system, a separate custom code migration project must be created in the SAP Fiori App Custom Code Migration.
According to which criteria I define which custom code is in/out of scope for my converted SAP S/4HANA system ?
The basis for scoping is the collected usage data with SCMON (or UPL/SAP Solution Manager 7.2). You can also change the scope manually in the SAP Fiori Custom Code Migration App: add or remove objects.
If I have issues in my Custom Code Migration app where can I look for a solution?
The blog
Custom Code Migration app - Known Problems & Solutions offers the list of the known issues and solutions.
How can I recognize from issues, which ones can be already fixed on my SAP Business Suite system?
Unfortunately this is not possible.
Custom code adaptation
Are there any SAP tools for automated custom code adaptations?
Yes, the Quick Fixes (Ctrl + 1) in ABAP Development Tools for Eclipse, which make it possible to adapt approximately 60% of your custom code to SAP S/4HANA in a semi-automated way. The Quick Fixes not only adapt custom code automatically but can also do it in one shot (mass-enabled Quick Fixes). See also the blog
Semi-automatic custom code adaptation after SAP S/4HANA system conversion.
What are the prerequisites for using ADT Quick Fixes?
The system requirements for Quick Fixes are SAP S/4HANA 1809 and ADT in Eclipse 3.0
Is there a list of available ADT Quick Fixes?
The ADT Quick Fixes are available for accesses to database tables VBFA, VBUK, VBUP, KONV, BSEG and usage of VBTYPE data elements in source code and also for the new MATNR (40). See also the blog
Semi-automatic custom code adaptation after SAP S/4HANA system conversion.
Do I need to apply a Quick Fix for every ATC finding manually? It will cost much time…
No, you don't need to. We offer mass-enabled Quick Fixes, so that you can apply all Quick Fixes in one shot. See also the blog
Semi-automatic custom code adaptation after SAP S/4HANA system conversion.
Is it possible to add comments to the adapted code after Quick Fix automatically?
Yes, see the blog
Comments for the ADT Quick Fixes.
Is there a dashboard/overview, which my custom code objects can be adapted with Quick Fixes?
You get the preview and dashboard on Quick Fixes by using the
SAP Fiori App Custom Code Migration and grouping the ATC findings by the Quick Fix filter in the App.
Can I see which changes will the Quick Fixes do on my code?
There are two compare editors in the Quick Fix wizard. You will see each your source code object “before” and “after” Quick Fix at one glance.
Can I implement my own Quick Fixes?
Yes, it is possible. Please refer to the chapter "Creating Quick Fixes" in the
How to write an ATC Check guide.