Skip to Content
Technical Articles

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).

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

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 usage data. The App will access it 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.

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.

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.

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

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) for 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 deleted objects we recommend to use abapGit in order to store the objects of the transport request 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.

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 SP02)

 

Further information

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

39 Comments
You must be Logged on to comment or reply to a post.
  • Hi Olga,

    thank you very much for the blog post and this nice app. But don’t you think that setting up a complete SAP S/4HANA system is a bit overdone and a waste of resources? Are there plans to downport this to NW 7.52 or to some other light system (standalone ABAP Platform)?

    Thanks and best regards,
    Oliver

    • Hi Oliver,

      I don’t see a waste of resources here. This app is intended for the custom code analysis during the SAP S/4HANA conversion, meaning the usage of the app begins when the first SAP S/4HANA sandbox system is available in the customer landscape for the conversion. This system can then be “reused” for the custom code analysis app.

      There are currently no plans to downport the app to the NW 7.52, and there is also no standalone delivery of the ABAP platform itself  (only within the SAP S/4HANA).

      Best Regards,

      Olga.

      • Hi Olga,

        in your blog post you’re writing “You need an SAP S/4HANA 1809 system set up as a central ATC check system”. This sounds like the future central ATC should be an S/4 system. Also some of the latest improvements (like ATC quick fixes) are only available for S/4.
        Therefore I am confused. Will we still be able to have a light system as central ATC system or do we need an S/4 system?

        And actually we would like to start with code checks and adjustments now and we do not want to wait until the migration starts 🙂

        Best regards,
        Oliver

        • Hi Oliver,

          you need the SAP S/4HANA 1809 system for using the App and this particular use case: custom code migration to SAP S/4HANA. After custom code migration you can continue to use this system for regular ATC quality checking for example.

          But you can also still use the ATC central check system on SAP NetWeaver 7.52.

          Regarding the ADT Quick Fixes: they are supposed to be used on SAP S/4HANA system, where the actual the custom code adaptation should take place.  Of course you can adjust the SAP HANA issues on ERP, and would benefit from the ORDER BY  Quick Fix for example, but the Quick Fixes are available only with SAP S/4HANA 1809 and there are currently also no plans for downport them.

          Best regards,

          Olga.

           

           

        • Hi Oliver,

          In addition/parallel to Olga’s answers for the custom code, creating a sandbox based on a copy of production is strongly recommended at early stages in the project, either before the project, or within the project. So at one point in time in your project, you will have this sandbox. I understand you want to do a workload assessment, but doing this sandbox conversion prior to the project is as well a very good way to better understand the workload of your future conversion project on many aspects ( Finance …) . Remember, a conversion IS NOT an upgrade.

          Hope this helps

          Best regards

          Renaud

           

    • Hi Oliver,

      we also plan to have the Fiori App available in SAP Cloud Platform. Then you can do remote custom code checks against your ERP system via RFC/ Cloud Connector. Would this be an option for you?

       

      Regards,

      Thomas.

      • Hello Thomas

        the option “Custom Code Migration App” on SAP Cloud Platform sounds good.

        Can you tell us, when the app/service is expected to be available?

         

        Thank you.

         

        regards

        Lukas

      • Hi Thomas,

        currently we do not have an SCP account. So this would mean we would need to setup/buy an SCP account to prepare the migration of our on prem system.

        Two alternative ideas:

        • Provide the app via the support Launchpad (like the S/4 readiness check)
        • Add the app to the solution manager (which already has all the usage and CCLM data).

        Best regards,
        Oliver

  • Hi Olga

    We now now have an 1809 sandbox system that I am setting up against a 7.02 system. I have scanned it and it complains that I do not have a simplification database for the ATC to work against.

    So I still need the Simplification db even though I am on S/4?

    Regards

    Ian

     

  • Olga, Thanks for this blog and it is indeed helpful. We have just converted our sandbox and I am trying to setup this FIORI App and I have 2 questions:

    1. For Usage, is SCMON mandatory or UPL too will work ?
    2. How to activate “filter Findings by Quick Fix Availability” and I am not getting that option. We are on 1809 FPS01 SAP_BASIS 753 001.
    • Hi Satinder,

      1. you can also upload UPL data to the Custom Code Migration App.
      2. unfortunately this is bound to the SAP Note, which was recently taken back because of problems with the implementation of the note. Very soon it will be back. Development is already close to providing the solution.

      Regards,

      Olga.

      • Thanks Olga for quick response. Can you please help me point the the URL that details the instructions to use UPL for this App? I was not able to figure it out in the App.

        • If you collected usage data with UPL, you need to configure RFC destination to this system with usage data from the 1809 system where the App runs and then just follow the instructions in the “Add usage data…” chapter of the blog, especially the “NOTE:…” part.

           

    • Hi Aimen,

      no, because in the SAP S/4HANA Cloud is no custom code allowed and therefore custom code transformation to SAP S/4HANA Cloud is not possible and custom code checks don’t make sense.

      Regards,

      Olga.

      
                                  
  • Hi Olga,

    we currently have our central ATC-system on NW 7.52 SP02 and use it for checks on NW 7.50 SP13 EHP8 systems. Initial discussions about switching to S/4HANA sometime in the future are already happening but no firm plans have been made yet regarding the path and timeline.

    To help with the planning, we are thinking about using the ATC S/4HANA readiness checks just to get a rough idea how much of our custom code will be impacted. In parallel, the regular ATC-checks  during e.g. transport release will keep happening from that central ATC-system.

    Given our scenario, could it make sense – and be feasible – for us to convert our NW 7.52 central ATC system to S/HANA 1809 in the near future to help with the planning and to then be able to use the Fiori app while still using the system for the “normal” checks as we do now? Are there any issues with such an approach, or anyting we need to be aware off before actually moving in that direction? Would for example already defined baselines and granted exemptions “survive” such a conversion or would we need to start from scratch?

    Thanks for any pointers you have for us!

    Cheers

    Bärbel

    • Hi Bärbel,

      there is no system conversion path from NW AS ABAP 7.52 to S/4HANA 1809. So you need to setup a new S/4HANA 1809 system as a central ATC check system and migrate your baseline and exemptions data in there.

      Best regards,

      Olga.

  • Hi Olga,

    We have SAP S/4HANA 1809 system set up as a central ATC check system.
    We have also setup and configured the SAP Fiori App Custom Code Migration on this SAP S/4HANA 1809 system by following the link you shared in the blog.
    Our souce system is ERP – EHP7 ECC6.0 NW 7.4 SP10 based.

    So, when we Create our Custom Code Migration Project, there is one field which asks for “RFC Desination“, But our source system (ERP) is an isolated system and we can’t make any RFC conenction to it.
    And everwhere in this case , i can see the Fiori app is trying to access the data through RFC connection to the source system (ERP).

    So is there any alternative like in case of ACT NW7.51 or Higher where you suggested that we can do export/import by selecting variant: “extract based” in your old blog (https://blogs.sap.com/2016/12/12/remote-code-analysis-in-atc-one-central-check-system-for-multiple-systems-on-various-releases/)?

    and after export/import Is there any way we leverage the FIORI APP feature as well to display the report result for better analysis with fiori interface ?

     

    Regards,

    Pawan

    • Hi Pawan,

      yes, the available RFC connection is always required for the remote checks by the Custom Code Migration SAP Fiori app.

      The only possibility would be to transport your code from the ERP to the S/4HANA system and then use the Custom Code Migration SAP Fiori app locally there (with RFC destination pointing to the S/4HANA system itself).

      Regards,

      Olga.

  • Hi Olga,

    Thanks for your input!

    How we can transport the custom codes, will it create a TR or can it be done via export/import method as well. If yes, can you please help me with procedure for export/import & transport whichever is applicable in this case.

     

    Regards,

    Pawan

    • Hi Pawan,

      create a local transport of copies in ERP, release the transport, copy the transport files to the S/4HANA system and do import.

      Regards,

      Olga.

       

  • Hi Olga,

    Thanks for your reply!

    I got your point but wondering how we can add our Custom codes (All Z tables, Z programs or Z functional groups) in one Transport of copies.

     

     

    Regards,

    Pawan

    • Hi Pawan,

      you can e.g. create a transport of copies per custom code package. But if you have a lot of custom code in your ERP system, then it would be too much effort. You would need to provide RFC connection to your ERP system then and check it remotely.

      Regards,

      Olga.

  • Hi Olga,

     

    Thank you so much for all your inputs.

    Just one more query, So, transport of copies (TOC) is the recommended approach in case of isolated systems to display the data in Fiori App for better analysis, Right?

     

    Regards,

    Shaloo

    • Hi Pawan,

      no, it is a workaround. The Custom Code Migration App is for SAP S/4HANA system conversion and the system, which must be converted to SAP S/4HANA, must be connected via RFC.

      Regards,

      Olga.

       

       

  • Hello Olga,

    It has no sense that note Note 2270689 can be implemented for release 753 when there is a Note 2752728 specified for this release 753.

    Also, if you try to implement, corrections instruction are not possible, you will have sintax errors.

     

    thanks and regards.

    Gerardo.

    • Hi Gerardo,

      due to performance problems with SNOTE, it had been not possible to include the correction instructions for release 7.53, which actually belong to note 2270689, in this note. Therefore, a new note 2752728 was created for release 7.53. 

      Regards,

      Olga.

  • Hi Olga

    Just setting up the migration app but not getting any usage data shown that I can then select from.

    The source system (7.02) has SCMON running and I have implemented SUSG and created a snapshot successfully.

    There is currently a warning related to ‘Could not determine state: GET_LOG_STATUS not installed’ in SUSG for which I have requested Basis look into via note 2681069 – /SDF/SCMON extended status check API.

    Is this the cause of the issue or unrelated?

    Regards

    Ian

    • Hi Ian,

      I don’t think, it could be the cause since the function module SCMON_GET_LOG_STATUS helps to detect errors in SCMON if they occured, and as far as I understood, you were successful to collect and aggregate usage data.

      Regards,

      Olga.

      • Hi Olga

        Ok. Thanks for the advice.

        Any tips on debugging the app to see why I am not picking up any usage? i.e. the function module used in the backend?

        Thanks

        Ian

  • Hi Olga,

    We are in the process of performing S/4HANA Conversion and have identified a list of un-used custom objects.

    Kindly clarify:

    1. We can lock all the un-used custom objects into a transport request and supply it to SUM tool, and the SUM tool will delete the un-used custom objects contained in the transport request. Is it the correct understanding about deleting the un-used custom objects via SUM tool?
    2. If the point 1 is correct, please share the steps within SUM tool where we can supply this transport request containing the un-used custom objects to be deleted.

    Note:

    1. We do not have the custom code migration app and unused custom objects are not generated from the custom code migration app but from the history of usage information we have been collecting.

    Regards,

    Santosh

    • Hi Santosh,

      yes, the 1. is correct. Regarding 2. You can add this transport request in SUM in the dialog for Change Requests, Phase BIND_PATCH.

      You will find in the SUM 2.0 Guide the following

      “Including Support Packages and Change Requests (Phase BIND_PATCH)

      The phase BIND_PATCH consists of two dialogs: In one dialog, you are asked for support packages, and in the other one for change requests…”

      Regards,

      Olga.