Enterprise Resource Planning Blogs by SAP
Get insights and updates about cloud ERP and RISE with SAP, SAP S/4HANA and SAP S/4HANA Cloud, and more enterprise management capabilities with SAP blog posts.
cancel
Showing results for 
Search instead for 
Did you mean: 
OlgaDolinskaja
Product and Topic Expert
Product and Topic Expert

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.

Technical Setup

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 - formerly 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:

The SAP Discovery Center Mission Use SAP Fiori Custom Code Migration App to Analyze Your ABAP Custom Code for SAP S/4HANA Readiness enables you to setup Custom Code Migration app in SAP BTP ABAP Environment easily using automated capabilities with CIAS (Cloud Integration Automation Service) guided workflow and execute step-by-step guided custom code analysis in your on-premise SAP ERP system.


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.

Further information

See Documentation on SAP Fiori App Custom Code Migration on SAP Help Portal.

182 Comments
antonio_steinhuser
Participant
0 Kudos
Hello,

is it possible to import an existing ATC RUN into the Fiori Migration App (Project)?

 

Thx

Toni
OlgaDolinskaja
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi Toni,

no, it is not supported. It is only possible to create ATC run series in the Custom Code Migration app at project creation (prerequisite is the S/4HANA 2022 release) and reuse these ATC run series in SAP GUI ATC for scheduling an ATC run. It is also possible to analyze the Custom Code Migration app results in SAP GUI ATC.

Kind Regards,

Olga.
antonio_steinhuser
Participant
0 Kudos
Hello Olga,

thx for the fast answer.

Gruß

Toni
MattBrightman
Explorer
0 Kudos
From a Security Perspective for the SAP BTP ABAP Custom Code App, does the source code in the remote system get uploaded into BTP, or are the checks performed in the remote system and only the results get sent back to BTP?
ThFiedler
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi Matthew,

no, the source code is not uploaded to SAP BTP. The source code and other metadata (e.g. DDIC information) is transformed into an ATC specific format in the checked system. This information is transformed to SAP BTP and the check runs there.

Regards,

Thomas.
david_arias
Explorer
0 Kudos
Hi Olga,

Just a question regarding simplification item category meaning when you download the ATC to excel

Where could I find the meaning of different categories on the 'SI Category' column? I have been looking up for documentation but unfortunately I have not found it.

Thanks in advance.


Simplification Item Category

OlgaDolinskaja
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi David,

what are looking for exactly? In most cases the SI Category is actually self-explaining, like for example

  • Functionality not supported anymore: usages of this SAP object must be removed from your code

  • Functionality not recommended anymore: SAP recommends to remove usages of this SAP object from your code.

  • Syntactically incompatible change: Your code needs to be adapted as described in the related SAP note.

  • Semantically incompatible change : Your code needs to be adapted to the new semantics as described in the related SAP note.

  • Database-specific finding: The finding relates to specific usage of classic database, you code needs to be adapted for SAP HANA


I all cases you would need to follow the explanations and instructions how to proceed to adapt the code in the related SAP note.

Kind regards,

Olga.
david_arias
Explorer
0 Kudos
Thank you for your answer,

What I would like understand is the meaning of the initials ("A, B, C, I, S and W") according to the screenshot I provided.

The screenshot is the result of an ATC executed from the Custom Code Migration Fiori App.

Best,

 
OlgaDolinskaja
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi David,

how does SI Category look like in the CCM app`result list before download?

It must be actually provided in the table with text. Here how it should like:

Result table in the CCM app:


Excel download:


Kind Regards,

Olga.
david_arias
Explorer
0 Kudos
Hi Olga,

Understood.

Thanks a lot.

Regards.
BartvdKamp
Discoverer
0 Kudos
Dear Olga,

In 2021 our company has completed a system conversion from ECC to S/4 HANA 2020. Currently we're preparing an upgrade from S/4 HANA 2020 to S/4 HANA 2023. The S/4 HANA Readiness check shows a small number of findings in the custom code analysis area as unresolved (55) and lots of findings in the baseline (10157). Unfortunately I was not working with the company during the conversion to S/4 HANA and it's not clear which actions were taken on the findings as result of the custom code analysis back then.

Program RC_COLLECT_ANALYSIS_DATA has created 2 items in the ATC: SAP_S4U_1 (check variant against S/4 2020 as baseline) and SAP_S4U_2 (check against variant for S/4 2023 minus the baseline findings from S/4 2020).

I would like to use the custom code migration app to work on the adjustments, but only those small number of findings which are also indicated in the S/4 Readiness check as unresolved. This is how we proceeded: created a project for S/4 2020 and added the results as baseline in ATC, then created another project for S/4 2023. However it seems that the app is still displaying all the findings, including those from the baseline. Question: Can this app be used for a migration between different S/4 HANA releases or only for a conversion from ECC/ Business Suite to S/4 HANA? For sure we can also work on the adjustments via Eclipse ATC Result Browser.

Thanks in advance for clarification.

Regards, Bart
OlgaDolinskaja
Product and Topic Expert
Product and Topic Expert

Hi Bart,

yes, the Custom Code Migration app can be used (and it is recommended to us it) during S/4HANA upgrades as well. If you use the Custom Code Migration app on-premise, the app takes existing baselines into account. The only important thing is, that either the check is carried out locally in the system or if you check the system remotely, then for the checked system there is an ATC object provider from the same system group as the baseline run. But in principle this should work: an ATC run with the app for the S/4HANA 2020 as target release, take the findings into baseline, then an ATC run with the app for the S/4HANA 2023 as target release.

Kind Regards,

Olga.

kasithunuguntla
Participant
0 Kudos
Hi Olga,

Thanks for nice and detailed blog.

One quick question. I am executing CCM projects from our BTP system to on-premise. How do I find the API behind consuming findings data. The reason for the ask is that I want to programatically consume Custom Code Analyses(SLIN_SEC) findings for each of the CCM projects and massage it before passing it on to our security team via another API(using RAP).

The other question actually I have is if it is possible to schedule a weekly run of CCM analyses.

Regards

Kasi
BartvdKamp
Discoverer
0 Kudos
Dear Olga,

Thanks for confirming that my understanding is correct. Unfortunately this procedure does not work yet, will give it another try and let you know the outcome.

Regards, Bart
OlgaDolinskaja
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi Kasi,

we have an API that can be used to trigger ATC runs in a SAP BTP environment and read the results in checkstyle format: https://help.sap.com/docs/btp/sap-business-technology-platform/executing-abap-test-cockpit-atc-check...but it is not possible to export run results executed with the Custom Code Migration app. It is planned but not yet possible to schedule weekly runs with the Custom Code Migration app.

Kind Regards,

Olga.
0 Kudos
Hi Olga,

Thank you for a detailed post.

As our product is due to undergo certification, we are doing  cloud readiness check.

During the same we came across keywords such as OPEN/CLOSE/READ/ Transfer Dataset, Import, Export From Memory ID which are not compactible with cloud.

Could you kindly suggest a workaround regarding the same.

 

Thank you,

Sandeep.
OlgaDolinskaja
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi Sandeep,

yes, file system access will never be possible in the cloud, also we are currently extremely careful with memory operations in the cloud.

As replacement for files you could create a z-table with a string as the key that would correspond to the file name, and a xstring for any content. The same you could do for the memory import/export.


Kind Regards,
Olga.

Chunleng
Advisor
Advisor
0 Kudos
Hi Olga,

Can you kindly explain the difference between SAP Fiori Custom Code Migration App, Custom Code Migraion App and also ABAP Test Cockpit?

 

Also, are both the App and ATC supported in S4 Hana and also SAP BTP ABAP env exactly the same?

CL
OlgaDolinskaja
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi Chun Leng,

SAP Fiori Custom Code Migration App and Custom Code Migration App is the same app, which is SAP Fiori app, technically based on the ABAP test cockpit infrastructure and built upon of it reusing its check varíants and checks. ABAP test cockpit is the SAP GUI transaction. Custom Code Migration app was originally built for custom code analysis for S/4HANA and then further extended for custom code analysis for cloud. Beyond the ABAP test cockpit analysis capabilities the Custom Code Migration app can consider usage data and show which issues in custom code can be fixed in automated way with quick fixes, the app has graphical capabilities for advanced filtering of the analysis results etc.

Meanwhile is the Custom Code Migration app also the essential part of the cloud-based ABAP test cockpit (see the blog https://blogs.sap.com/2023/11/12/usage-of-abap-test-cockpit-atc-in-the-cloud-for-on-premise-developm...).

Kind Regards,
Olga.
AntekW
Explorer
0 Kudos
Hi Olga,

Thanks for this great blog and overview!

I am wondering, could we also use the Custom Code Migration app for a move to a HANA DB?

For example we have a remote analysis available in our ATC run with FUNCTIONAL_DB & FUNCTIONAL_DB_ADDITION and on the checked system we have the SUSG data available from the PRD system.

Would we be able to execute the Analyze and scoping part as well or is this only supported for S/4HANA conversions?

Kr,

Antek
OlgaDolinskaja
Product and Topic Expert
Product and Topic Expert
Hi Antek,

you could create a new check variant, containing FUNCTIONAL_DB & FUNCTIONAL_DB_ADDITION checks in the system, where Custom Code Migration app is set up. Then you could create a new project of type "Custom Code Analysis Project" and use your check variant. You can then also upload usage data.

Kind Regards,
Olga.
AntekW
Explorer
Hi Olga,

Many thanks for the clarification.

I already assumed\hoped for this answer 🙂

Kind Regards,

Antek
suman_sap
Discoverer
0 Kudos

Hi Olga,

Firstly Thanks for the blogs !

We enabled custom code migration app in BTP ABAP environment and able to connect to backend system via cloud connector. We can do the analysis now. However as mentioned in your blogs and videos,

1. We don't see the deletion transport option

2. We don't see the option to add/remove objects for scoping

3. For Analysis, under the include package option, we selected only one package but scoping is done for few other packages and other Z* and Y* objects also.

Please suggest what are we missing.

Thanks,

Suman.

hsinger
Explorer
0 Kudos

Hi Olga

I am getting conflicting information about the apps needed, perhaps you can clarify.

We have installed App F3191 and can use it.

We have found apps F4198, F4199 and F4200 on the Fiori Reference Library. But we see no reference to them in TC SAP_BASIS_TCR_T and don't see to be able to create them. 

Are these apps needed? We do get Scope and Analysis data from App F3191.

Thanks

Henry

hsinger_0-1709070575458.png

hsinger_1-1709070851251.png

 

 

OlgaDolinskaja
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hello Henry,

the Custom Code Migration app F3191 is only relevant, other apps are technically sub-apps of the Custom Code Migration app (Scoping, Analysis, Usage), therefore the are also listed in the Fiori Library, but they cannot be placed on the Fiori Launchpad, they don't have tiles.

KInd Regards,
Olga.

hsinger
Explorer
0 Kudos

Hi Olgah, Thank you for the prompt reply.

antonio_steinhuser
Participant
0 Kudos

Hello,

in which tab of the Migration App can i add customer namespaces to the scope?

Gruß
Toni

 

OlgaDolinskaja
Product and Topic Expert
Product and Topic Expert

Hi Toni,

you need to do this in the system, which will be checked by the Custom Code Migration app. See https://help.sap.com/docs/ABAP_PLATFORM_NEW/ba879a6e2ea04d9bb94c7ccd7cdac446/d140a689c1ad4a2baa6c12a... for details.

Kind Regards,
Olga.

mainak-aich
Participant
0 Kudos

Hi @OlgaDolinskaja , 

Very informative blog. Couple of queries with respect to SAP Readiness Check 2.0-

1. After downloading the check result in custom code analysis report Fiori app, how to upload it in the readiness check? Is it same way like how we upload the custom code analysis result collected from ECC via report RC_COLLECT_ANALYSIS_DATA? 

2. What is the reason of integrating the result to SAP Readiness Check. Is it because seeing all the readiness check result at one place? Or any other reason?

3. SAP Readiness Check Fiori App already shows some result in the card "Custom Code Analysis" based on report RC_COLLECT_ANALYSIS_DATA result upload. Then will exporting Custom Code Analysis check result overwrite this current result in readiness check?

Overall, If you please explain the purpose and benefit of integrating SAP Custom Code analysis to SAP Readiness Check 2.0 it will be very helpful. 

Thanks,

Mainak

OlgaDolinskaja
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi @mainak-aich,

I would be happy to answer your questions.

1. Just use SAP Readiness Check Fiori dashboard and "Update Analysis" button to upload results
2. The reason is to have better and more exact analysis results. The custom code analysis done by the Custom Code Migration app is always based on ABAP test cockpit (in SAP Readiness Check you can choose between Code Analyzer (not in-depth custom code analysis) or ABAP test cockpit (in-depth custom code analysis, but without usage data and quick fixes). The analysis results of the Custom Code Migration app consider scope information based on usage data. The scope information helps you reduce the number of custom code objects to be migrated and minimizes the effort for custom code remediation. Beyond this the exact information about quick fixes is offered (which findings can be fixed in automated way).
3. Yes, the previous analysis will be overwritten after upload of the new results.
Overall: see please the 2. for the explanation why upload of the custom code analysis by Custom Code Migration app is beneficial.

Kind regards,
Olga.

 

mainak-aich
Participant
0 Kudos

Dear @OlgaDolinskaja , 

Very useful blog. I have few queries here -

1. In the blog you mentioned that we can change the scope of custom objects in "Scope Request Entry Points". Since these scope request entry points are coming from SUSG usage data, this means they are already in use currently. So I don't understand why we should change/remove any entry point here if they are already in use.

2. Inside the Analyze finding tab, I am getting many findings for simplification item category "Database-specific finding". Inside the finding SAP Note 1912445 is provided which says to perform ATC check with code inspector variants FUNCTIONAL_DB and FUNCTIONAL_DB_ADDITION. But do I need to run these ATC checks explicitly here again or these are already taken into consideration in the custom code analysis app and that's why I am getting this finding itself in custom code analysis app?

3. Same as point #2, there are performance check CI variant PERFORMANCE_DB recommended by SAP to improve custom code performance. Does Custom Code Analysis app take CI variant PERFORMANCE_DB into consideration in S4HANA migration project type.

Thanks,

Mainak

OlgaDolinskaja
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi @mainak-aich ,

here are the answers to your questions:

1. With this feature you can for example delete objects based on the old usage date.
2. Database analysis for SAP HANA is included in the checks of the custom code migration project for SAP S/4HANA, you don't need to run the FUNCTIONAL_DB and FUNCTIONAL_DB_ADDITION checks separately
3. PERFORMANCE_DB checks are not included in the checks of the custom code migration project for SAP S/4HANA. Please be aware, that these checks should only be used as an additional help after performance analysis with SQL monitor to fix the issues found in the SQL monitor.

Kind Regards,
Olga.