Skip to Content
Technical Articles

SAP S/4HANA System Conversion – Custom code adaptation process

Why do you need to adapt your custom code during system conversion from the classic SAP ERP system running on any DB to SAP S/4HANA? The blog SAP S/4HANA System Conversion – Challenge for your custom code gives you the answer to this question.

Considering SAP S/4HANA system conversion (more on this in SAP S/4HANA System Conversion – At a glance) we focus in this blog on the custom code related process, which consists basically of two major phases. Before SAP S/4HANA system conversion – during preparation phase – we recommend to get rid of your old unused custom code (custom code evaluation) and then analyze your custom ABAP code with the Simplification Database and find out which objects need to be changed to get adapted to the SAP HANA and SAP  S/4HANA (SAP S/4HANA checks). After SAP S/4HANA system conversion – during the realization phase – you need to adapt your custom ABAP code to the new SAP S4/HANA software (functional adaptation) and optimize performance for SAP HANA database (performance tuning).

IMPORTANT NOTE: This custom code adaptation process including all following recommendations, processes and the tools  is not a “one-time procedure” and has to be carried out on a permanent basis especially before the SAP S/4HANA system conversion and before upgrade within the SAP S/4HANA product family and is to be considered as the regular best practice also for SAP Business Suite, SAP S/4HANA and generally all other ABAP-based products.

Custom code scoping

A typical ERP customer system contains a large amount of custom development objects (Z-Objects, enhancements and modifications) that are not used productively. Therefore, it is recommended to monitor your system landscape for a longer period of time in order to do some housekeeping and eliminate the code, which is not used anymore within your productive business applications. This procedure is very important and will significantly minimize your custom code adaptation efforts.

For this purpose, we recommend to turn on the ABAP Call Monitor (SCMON) or Usage Procedure Log (UPL) in your production system to find out, which custom ABAP objects are really used within your running business processes. You can also use this step for prioritization: to find out which objects are more important as the others. The SCMON or UPL has no impact on the performance of your production system.

The advantage of the SCMON compared to the UPL is that using this tool you not only collect the usage data (how often a specific ABAP object was called), but also the information about the calling business process. See ABAP Call Monitor (SCMON) – Analyze usage of your code for more details.

The recommended procedure for usage data collection is ABAP Call Monitor with aggregation of the collected usage data using the SUSG transaction. See Aggregate usage data in your production system with SUSG transaction for more details.

Usage data collected in the SAP Solution Manager 7.2/CCLM can be also used for custom code scoping. Generally, the Solution Manager 7.2 collects either SCMON or UPL data depending whether the connected system is capable of SCMON or UPL.

NOTE: You should collect usage data for a longer period of time (at least one year) to get really reliable results for not productively used code.

SAP HANA and SAP S/4HANA checks

This step is the most important one for your custom ABAP code on the way to the system conversion to SAP S/4HANA.  Here you check your custom ABAP code for SAP HANA and SAP S/4HANA related changes.

The SAP S/4HANA is based on the SAP HANA database. Generally, the ABAP code runs on SAP HANA as on any other supported database. So why do you need to adapt it to SAP HANA? One reason is, that you possibly used native SQL of the predecessor database and these database vendor specific dependencies must be eliminated. Another reason is, that in some custom code implementations the SELECT statement without ORDER BY is used. This can lead to unexpected behavior when the database is changed (for example to SAP HANA) because the results return in a different order without ORDER BY. Therefore, you need to check your SQL SELECTs without ORDER BY statement if they are still correct. Beyond this pool/cluster tables were removed with SAP HANA, therefore the database operations on these tables also need to be removed from your custom ABAP code.

To prepare your custom ABAP code for the actual SAP S/4HANA conversion, you need to compare it with the Simplification Database. For more information on Simplification Database please refer to the blogs Upcoming tools for SAP S/4HANA migration – the simplification database, Simplification List SAP S/4HANA 2020.

SAP S/4HANA Checks in SAP NetWeaver AS ABAP 7.51/7.52

The Field Extension check finds length conflicts in your coding for material number fields        (can be suppressed with pseudo comment CI_FLDEXT_OK[note_number])

The Search DB Operations check finds write operations on specific database tables (can be suppressed with pseudo comment CI_DB_OPERATION_OK[note_number])

The Search for usages of simplified objects check finds usages of objects stored in Simplification Database (can be suppressed with pseudo comment CI_USAGE_OK[note_number])

The Search for ABAP Dictionary enhancements finds extensions in the data dictionary (like appends)

The Search for base table of ABAP Dictionary views finds usages of database tables in views

The Search for S/4HANA related Syntax errors tries to map syntax errors to simplification items

NOTE: Starting with SAP NetWeaver AS ABAP 7.52 there are special pseudo comments to suppress false-positive findings for simplification items incl. SAP Note number:

In SAP NetWeaver AS ABAP 7.52 the coverage of checked custom code was significantly improved. Custom code checks now scan all custom code in Enhancements, Modifications, Customer EXITs, Smart Forms, Adobe Forms and ignore findings in SAP includes and generated code. Additionally simplification item information (e.g. OSS note)  is displayed in ATC result list including filtering and sorting capabilities. It is also now possible to scan custom SAP queries, see the blog How to check your SAP Queries for SAP S/4HANA readiness.

Technical infrastructure for custom code analysis

The tool of choice for SAP S/4HANA and SAP HANA checks is the ABAP Test Cockpit (ATC) with remote code analysis. You set up only one central ATC check system for all static checks of your custom ABAP code in your system landscape, which needs to be migrated to SAP S/4HANA. More details in the blog series Remote Code Analysis in ATC.

The recommended procedure is the following:

Setup ATC as (see Remote Code Analysis in ATC – Technical Setup step by step) and implement the SAP Note 2436688 – Recommended SAP Notes for using ATC checks “S/4HANA Readiness”
Download the newest version of the Simplification Database content from SAP Service Marketplace (see SAP Note 2241080)
Install the Simplification Database content on the central ATC check system (use transaction SYCM).

Custom code analysis options

The ABAP Test Cockpit comes along with its classic SAP GUI based user interfaces to administer the tool and maintain the necessary configuration steps in order to check the custom code.

With ABAP platform 1809 we simplified the whole custom code adaptation process by providing a new SAP Fiori App Custom Code Migration that allows you to execute SAP S/4HANA checks just with a few clicks.

SAP Fiori App Custom Code Migration can also be configured and run in the SAP BTP ABAP Environment formerly known as SAP Cloud Platform ABAP Environment.

The following picture presents all custom code analysis options at one glance:

Remote ATC with SAP GUI

The prerequisites for this option are the remote ATC infrastructure and ATC central check system (SAP_BASIS 7.52). Run ATC transaction with the check variant S4HANA_READINESS_REMOTE containing SAP S/4HANA and SAP HANA checks and analyze the ATC result list. ATC offers you best support for detailed analysis of SAP S/4HANA findings using Statistics View, simplification information in ATC result and various navigation capabilities. See also the blog Remote Code Analysis in ATC – Working efficiently with ATC Result List.

For live demonstration of end-to-end custom code adaptation process in SAP GUI check also the Video on YouTube:

Remote ATC with SAP Fiori App Custom Code Migration

You can configure and use SAP Fiori App Custom Code Migration in the cloud with the SAP BTP  ABAP Environment or on-premise in an SAP S/4HANA >=1809 system.

The App performs SAP S/4HANA checks on your custom code based on remote ATC infrastructure and provides the analytical presentation of the SAP S/4HANA check results with comprehensive aggregation, 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 via SUM during a system conversion to SAP S/4HANA.

Using the visual predefined filters above you can group your ATC findings to get a quick overview on for example:

  • How many findings are in your used custom code (exclude unused code)
  • In which SAP S/4HANA simplification areas do you get the most findings
  • What are the most urgent findings (by priority)
  • For which findings there are Quick Fixes available and which findings you need to fix manually

From the App you can drill-down to ATC results and display affected source code of your ERP system directly in the browser.

For more details on this custom code analysis option see the blog:

Functional adaptation

After you did the system conversion to SAP S/4HANA with Software Update Manager (SUM) (you don’t need first to migrate the database to SAP HANA and then update the software to the SAP S/4HANA, the SUM does it in one step) we recommend to run ATC with SAP HANA and SAP S/4HANA checks. After that you need to carry out functional adaptation based on the ATC results.

Adjust modifications and enhancements

First you need to adapt the modifications and enhancements using the standard transactions SPDD, SPAU and SPAU_ENH. This is the same process as in previous upgrades within the SAP Business Suite product portfolio, only the tools SPDD and SPAU have been renewed. Especially when moving the very old system to SAP S/4HANA many modifications and enhancements can be removed or set to SAP standard. For this purpose the new UI was invented for SPAU, which supports mass activities in order to adjust modifications and enhancements or reset objects to SAP standard more easily.

                                                                    New UI in SPAU

Recommendation: Reset as many objects as possible to SAP standard.

Fix SAP HANA and SAP S/4HANA findings

Second, you need to fix SAP HANA and SAP S/4HANA findings. Adapt your custom ABAP code, using the findings of the SAP HANA and SAP S/4HANA checks (ATC results).Findings of SAP S/4HANA checks are related to S/4HANA Simplifications. Each simplification requires a different approach to solve findings. Therefore, findings of SAP S/4HANA checks refer to a SAP Note which describes how you can solve them.

SAP HANA finding example: if you selected from the table without any order and execute binary search, it will return the wrong entries, therefore you need to fix your SELECT by either providing ORDER BY statement or sort the internal table before the statement READ TABLE … BINARY SEARCH.

                                                                 Fix ORDER BY

SAP S/4HANA finding example: replace your own defined material number with the SAP data type MATNR:

                                                                                  Fix MATNR

The TOP 10 Simplification Items

SAP Note Topic
2215424 Material number field length extension
2198647 Data model changes in SD
1976487 Data model changes in SAP S/4HANA Finance
2220005 Data model changes in Pricing and Condition Technique
2214585 Sales support is not available
2223144 Foreign Trade is not available
2206980 Data model changes in Material Inventory Management
2227579 Storage Location MRP
2226131 Public Sector specific fields in Business Partner
2296016 Removal of orphaned objects

No doubt it is substantial manual effort to look at every ATC finding and adjust your custom code. Besides this very often the most ATC findings are the SAP S/4HANA standard known issues, which could be fixed quickly in the automated way.

Therefore, in order to minimize your adaptation efforts, we started to offer automatic code adaptations using the Quick Fixes (or Ctrl +1 shortcut) feature of ABAP Development Tools in Eclipse (ADT).

Currently the Quick Fixes for the most prominent SAP S/4HANA simplification use cases like MATNR extension, accesses to database tables VBFA, VBUK, VBUP, KONV, BSEG, usage of VBTYPE data elements in source code are available. Beyond this the mass-enabled Quick Fixes make it possible to adapt full packages or software components in one shot and in this way drastically reduce your custom code adaptation efforts. Check also the blog:


Naturally after functional adaptation you need to test your business processes (using automated testing like eCATT).

Performance tuning

After you did the system conversion to SAP S/4HANA and the system is up and running, you need to look which business processes can to be optimized on SAP HANA database, since you can now make use of full power of SAP HANA regarding performance. Therefore you need to look which SQL statements can be optimized. The SQL Monitor (ABAP SQL Monitor – Implementation Guide and Best Practices) allows you to get performance data for all SQL statements executed in your productive system. You can run it for a longer time period directly in your productive system (transaction SQLM) without major performance impact on your business processes (performance overhead < 3%). SQL Monitor helps you to understand, what are the most expensive and most frequently executed SQL statements, which SQLs read/write millions of records and provides the transparent SQL profile. SQL Monitor allows you to link the monitored SQL statements to the corresponding business processes including various aggregation and drill-down options.

                                                           SQL Monitor

As shown on the screenshot you can use for example transaction as the entry point and drill down the collected SQL runtime information to optimize SQL statements (e.g. by pushing the application logic to the SAP HANA database).

SQL Monitor Example:

Further information

For further details check the Custom Code Migration Guide for SAP S/4HANA 2020. The frequently asked questions are answered in the Custom code adaptation for SAP S/4HANA – FAQ.

You must be Logged on to comment or reply to a post.
  • Thanks for sharing the info.Good document to start with when we have to deal with Custom Code while migrating to SAP HANA DB.


  • Hello,

    Thanks for your description. But I am completely confused now. In the SAP Note 2271900 - Custom Code Management: Generation of Code Inspector Variant and SAP Note 2270689 - RFC Extractor for performing static checks SAP describes how to use the SAP Code Inspector to execute a remote check for the custom code analysis. These SAP Notes contain also How-To-Guides for the SAP Code Inspector.

    But in your description the ATC is the tool of choice.

    What is the right recommendation for customers?


    Thanks in advance

    Stephan Scheithauer

    • Hi Stephan,

      we recommend to use ATC with Remote Code Analysis.

      The Remote Code Analysis with ATC is new and available since October 2016 with AS ABAP 7.51. Therefore some previous SAP Notes and guides relate to Code Inspector and need to be updated subsequently. Thank you for this notice.

      Best Regards,



  • Using SYCM (in NW 7.50 and previous) there was a possibility to "sharpen" the Custom code migration worklist based on the UPL data from the productive system. In the new way via ATC I'm missing this step.

    Is it really missing or have I overseen it?


    • Hi Martin,

      you are right, this is currently missing in ATC. But we are working on it.

      Will be available with the next major version of ATC.






  • Hey Olga,

    you mention note 2436688 but there seems to be something wrong with it:

    This is what I get when I try to access it:


    Any ideas?


    • Hi Joachim,

      I've just checked the link to the note: it works. Please try again. Maybe it was a temporary issue with access to the knowledge base.



      • Hi Olga,


        I checked again, still, it doesn’t work for me! ?

        (But other notes do work, see screenshot).

        Is it maybe only available SAP-internally or something (without giving me a better message?).






        PS: there is no other way of accessing notes as via Launchpad, is there?

        Well, there is SNOTE, of course, which says the note is “incomplete”?


        Edit: Oh, there is a message saying it’s not released, it’s just hidden deep down:


        [Yet another Edit]: As suggested by the SNOTE-message, I now opened an Incident (200273 / 2017). 

  • Hi Olga,


    we are using ATC and doing custom code conversion on priority1 .

    we are in a situation not able to handle few suggestion given by sap notes or cook books.

    for example KNOV is replaced by PRCD_ELEMENTS and some changes to VBFA table fields. cookbooks suggest to use some factory classes to  select or insert data from these new data models.

    My question here is,do we need to handle these using new classes only after migration? oR is there any other way to handle at time of conversion as my current system doesn't contain these factory classes or even these new data model.

    your suggestion will help us a lot to go further.




    • Hi Narasimha,

      functional adaptations to S/4HANA should take place after S/4HANA system conversion, see also the "Functional adaptation" chapter of this blog. Before you cannot adapt your custom code since you don't have the new S/4HANA data types and models in your classic ERP system as you correctly noticed it.



  • Hello Olga,

    When we run ATC, I was wondering why standard  RV13A* programs are listed.

    Could you put a light how these objects have to be handled. Program header comments log says.



    • Hi Narasimha,

      just ignore them. We plan not to list ATC findings in generated code and SAP Includes in the next ATC release.



  • Dear Olga,

    In sap help: SAP S/4HANA Conversion steps it was mentioned (before 7.51) to generate the Custom Code Migration Worklist for code analysis in addition to the ATC or SCI anaylis. Now this step is not mentioned anymore in and neither is mentioned in your blog.

    Is it current recommendation to do not generate the Custom Code Migration Worklist and only perform checks with the ATC?



    • Dear Susana,

      after you execute ATC checks, you will get the worklist of ATC findings, which you need to fix in your custom code to get it adapted to S/4HANA. This worklist is the Custom Code Migration Worklist. In the 7.50 release you got this list by executing Custom Code Analyzer, in 7.51 you get it just by executing ATC.

      Best Regards, Olga.

      • Hi Olga,

        Thanks for the Article.

        I understand that we need to run the ATC check with variant S4HANA_READYNESSin the preparation phase ( before the technical conversion ). What are we expected to do with the findings in the ATC check? Should we fix them after the conversion or should they be fixed before or would there be items to be fixed before and after as well?





        • Hi Ajith,

          using ATC check results before system conversion you can estimate the effort for your custom code adaptation and fix some findings ( statements without ORDER BY or replace your custom data types for material numbers with SAP data type MATNR). But still the actual functional custom code adaptation takes place after system conversion, because only then you have the new S/4HANA models, APIs, datatypes in place.

          Best Regards,


          • Hi Olga,

            we have an S4 converted system but the Readiness Check variant is not in the system, so how do we manage the code changes and know that they are complete?




          • Hi Malcolm,

            is you S4 converted system  SAP S/4HANA 1511 on SAP NetWeaver AS ABAP 7.50 release? If it is so,we recommend to set up ATC Remote Code Analysis in the SAP NetWeaver AS ABAP 7.51 - based system and use the S4HANA_READINESS_REMOTE variant for code checking and Remote ATC for Developers scenario for functional code adaptation.

            Best Regards,


      • Hi Olga,

        It is very useful information.. We are facing one issue while running S4H custom code impact analysis using SPA NW 7.5. Here evaluation system is already on NW 7.50 so we followed extract based approach running - SAPRSEUB, SYCM* programs to download extract from NW 7.50 & again imported it into same NW 7.5 system.

        While running program - SYCM_DISPLAY_SIMPLIFICATIONS to get the simplification result it running for ever & not showing up results. Even I scheduled the job & execution time is already above 2k sec. Generally this take very little time to show results.

        Can you please assist here.. why it is not showing simplification results. here evaluation system is on SAP NW 7.5


        Thanks & Regards

        Rajesh Dadwal

  • I would like to check all the repository stuff we have within our own namespace.

    So I created a run with "Check Variant": S4HANA_READINESS_REMOTE
    Objects to Check - by Query - Package /BLA/* for instance.

    When saving it comes up with a information message, that the input data is inconsistent. "Selection contains restricted packages e.g. /BLA/MAIN"

    After that I save my Run and execute it immediately in background. In the monitor I can see that there were no objects found to check.


    However, if I choose the same Check Variant but only check for Z* packages then there are plenty of objects to check.


    Is this because of the /BLA/MAIN package which is flagged as "Main Package" which directly adds "Adding further objects not possible"(restricted-Flag) to it?

  • Hi Olga,

    ATC has given code error on MARA , MARC and QMAT tables  DB statements like INSERT and DELETE statements. I am not success in finding any Factory classes on these tables, could you Help how to handle these.




    • Hi Narasimha,

      is your system before or after system conversion? Have you tried to follow the SAP notes linked to the corresponding ATC findings? Maybe you can drop me an email with related screenshots of ATC findings.

      Best regards,


  • Hi Olga,

    we are doing post conversion functional changes and handling few custom programs as part of post conversion. I tried to follow the notes , I could not find any Update/Delete related factory class methods on MARC and MARA. But was able to see DB select related. Find below ATC messages on objects:

    DB Operation UPDATE found (MARC, see Note(s):0002378796)  Cannot be hidden using a pragma or pseudo-comment
    DB Operation UPDATE found (MARC, see Note(s):0002206980)  Cannot be hidden using a pragma or pseudo-comment
    • Hi Narasimha,

      I double-checked note 2206980: Updates on master data attributes are still possible for hybrid tables.

      2 Code adjustments and optimizations

      Technically it is still possible to do DB write operations (INSERT, UPDATE, DELETE, MODIFY) on the tables MKPF, MSEG as well as the fields representing actual stock quantities in the hybrid and replaced aggregation tables. But such write operations are without any effect! Therefore write operations on MKPF, MSEG as well as the fields representing actual stock quantities in the hybrid and replaced aggregation tables shall be removed from customer coding. Write operations on the material master data attributes in the hybrid tables are still possible. Write operations on table MATDOC and your moved customer append fields are done by class CL_NSDM_STOCK.

      MARC should be also a hybrid table mentioned in the beginning of the Note:

      The SAP ERP 6.0 stock inventory management data model consists of the two document tables MKPF for document header information and MSEG for document item data. Additionally there were aggregated actual stock quantity data stored in several tables. Some of these tables do also store material master data attributes like the tables MARC, MARD and MCHB. Such tables with material master data attributes as well as actual stock quantities will be named as hybrid tables in the following. In contrast there are also tables like MSSA containing only aggregated actual stock quantities for sales order stock. Such tables will be called in the following as replaced aggregation tables.

      I hope this helps.


  • ​Dear Olga,

    I am new to S/4 HANA and your blog is very informative and helpful.

    I have a question. We are working on a system conversion from ECC to S/4 HANA 1709 OP.

    The current patch levels on our SAP ECC system are given below. Based on the blog, I understand that we cannot use ATC for custom code analysis and correction. Is this correct? If we cannot use ATC, which other SAP tool can we use instead of ATC? Can you share any links to documentation/blogs for the valid tool that can be used with the below system configuration/patch levels.

    ECC System:

    ECC 6.0 EHP 5, NetWeaver 7.02

    Software               Component    ReleaseLevel

    SAP_BASIS          702                0012

    SAP_ABA             702                0012

    SAP_APPL           605                0009



  • Hi Olga,

    thanks for yet another very helpful blog!

    We recently updated our ERP-systems to NW 750 with HANA DB and had our custom code adapted with the help of the Smartshift tool for (semi)automated code remediation. So, we should have a fairly clean state as far as HANA DB goes. We now have a conversion to S/4HANA looming ahead but there are no defined plans yet of how and when this will happen.

    One of my current tasks is to evaluate and help to estimate the development efforts for incoming change requests for our custom code and I'm wondering how much the not yet timed S/4HANA conversion should be taken into account when providing feedback to the requesters.

    I tried finding some best practices but wasn't really successful in finding answers to thoughts and questions like these:

    • At a guess, there'll come a time, when it just no longer makes much sense to create new Z-tables and Z-programs to fulfill change reqeusts. But, how early before the start of a conversion project should this start to be "enforced" whenever possible?
    • Which type of requests should be denied as their shelf-life will be cut short considerably with S/4HANA? I'm for example wondering about requests to add ever more fields to Append-structures like ZAMARA or ZAVBAK or adding custom-fields to SAP-screens.
    • Are there any other cases - in addition to keeping an eye on the typing of MATNR-fields - where existing or newly created code can already be adapted now?

    We plan to get a central ATC-system with NW 7.52 setup soon and will then start to run the recommended readiness checks. I'd nonetheless like to get a better handle on things even before then.

    Please let me know if this is not the best place for my questions and I can put them somewhere else, like e.g. a discussion thread in Answers.

    Thanks and Cheers



    • Hi Baerbel,

      actually what you want to have, are the instructions how to program now “S/4HANA ready” in the ERP systems, which will be later converted to S/4HANA, in order to avoid such things like using SELECTs without ORDER BY, custom MATNR types, use of objects, which were simplified in S/4HANA, implementations in obsolete (in S/4HANA) components, accesses to data models, which were changed in S/4HANA etc.

      Unfortunately we don’t have such general instructions or best practices in place, only high-level recommendations: What can you do today to prepare your custom code for SAP S/4HANA. I can just recommend to setup remote ATC checks for S/4HANA readiness asap and execute them on regular base during development for newly developed or changed custom code in an ERP system.

      Best regards,


  • Hi Olga,

    I watched your Youtube Video. We are missing the ATC variant S4HANA_READINESS. We have a ECC 6.0 system with SAP_BASIS 750 SP06. Moreover, SYCM is installed and up to date, ZIP file is imported.

    Which note am I missing to get the variant, or isn't it available for our system?




  • Hello Olga


    Thank you for posting this blog.

    It is very useful.


    By the way, you are using ATC in this blog.

    As my understanding, ATC’s role is to send the result of code inspector to other systems.

    So it is not really necessary to use ATC, if it is not necessary to send the result.

    In fact, S/4 HANA Readiness Checks via RFC can be done without using ATC like this video.

    What Is the advantage of using ATC?

    Is it a possibility of checking code inspector result for several systems centrally?

    Please give me your advice to use ATC.


    Best regards



    • Hi Jake,

      this blog is our SAP official information, which is also depicted in the relevant SAP Help. ATC is the recommended tool for static quality checking and custom code check for SAP S/4HANA.  A very good general overview about ATC and benefits compared with SCI is in the blog ABAP Test Cockpit – an Introduction to SAP’s new ABAP Quality Assurance Tool. In the following linked blog are also advantages of the Remote Code Analysis with ATC.

      ATC just reuses SCI variants but provides better code coverage, support for customer modifications and enhancements, delivers better check results, guidance for functional adaptation via relevant SAP Notes and detailed information in the check results, direct developer support for functional adaptation and so on.

      The video, you are referring to, is not SAP official and cannot be used as a guidance for custom code checks for SAP S/4HANA.




  • Hi Olga,

    Can you plz suggest how custom tables (transparent, cluster & pool) will be handled during conversion process. I assume transparent tables will be moved to target S4H system along with data by DMO. If any table using any standard data element/domain which is changed, will need to be adjusted in SPDD.

    How it will handle pool and cluster table as HANA only have transparent tables and standard SAP cluster/pool tables are converted to transparent tables. Will it will also convert custom cluster/pool tables to transparent tables? Or customer have to take any action on these table types.

    We are planning for system conversion to S4H and not clear on custom table migration. Please suggest..


    Thanks & Regards


    • Hi Rajesh,

      generally your custom pool and cluster tables get automatically converted to transparent tables. Otherwise you are informed via simplification items (from ATC checks)  if any adjustments (and how) have to be done.

      Best Regards,


  • Hi Olga

    I run the ATC check ( netweaver 7.51 sp00) with variant S4HANA_READYNESS in my custom code that have a simple call to standard bapi "BAPI_ALM_ORDERHEAD_GET_LIST"
    like code bellow:


    I expected no have any findings in the ATC check, but my surprise was the result in error:
    Syntactically incompatible change of existing functionality
    (FUNC BAPI_ALM_ORDERHEAD_GET_LIST, see Note(s):0002438131)

    I believe the ATC checked not only my custom code, but the sap code inside the bapi 'BAPI_ALM_ORDERHEAD_GET_LIST'.

    This is true ? How can check only my custom code, avoiding sap code ?



  • Dear Olga,

    Thank you for detailed guide, that's very useful!

    I faced an issue in my 7.52 system: ATC does not have variant S4HANA_READINESS_REMOTE, nor any other variant...

    I guess the reason is described in note 2485726, but it does not explains how to get new variants.

    Steps describes in note 2444208 worked for me, but there is no variant for S4HANA 1809. Do you think it is right way to get it, and do you know maybe way to get variant for 1809?



  • Hi Olga,

    I'm currently trying to find the right analysis tools to be used for the preparation/assesment phase. Within this area I'm struggeling a bit with the S/4 HANA Readiness Check and the Custom Code Analysis described within this (very well described) blog. The user guide for S/4 HANA Readiness Check states "For a deep-dive analysis of your custom code and an evaluation of necessary adjustment information, please use the ABAP Test Cockpit (ATC)". This means for me, that for planning/estimation purpose the Custom Code Analysis based on on a central check system is a must and the S/4 HANA Readiness check is only optional. Is this correct?

    Furthermore do you know to what extent the used check logic is overlapping between S/4 HANA Readiness and the Custom Code Analysis via ATC?



    • Hi Florian,

      regarding custom code analysis is SAP Readiness Check suitable if you are in the planning phase of SAP S/4HANA conversion in order to get the overview about the upcoming efforts. If you already ready to start SAP S/4HANA conversion and have an SAP S/4HANA system for it, then you can start with this blog.

      Technically the SAP Readiness Check is based on the SYCM tool, not ATC. The difference to ATC is, that SYCM is based purely on where-used list, meaning it finds e.g. all usages of MATNR in your custom code but doesn't analyze if this usage is critical, therefore the false-positive rate is extremely high. The analysis if the usage is critical can do only ATC.

      Best Regards,


  • Please note: I "converted" this comment to a stand-alone question as it might be of wider interest. The question is here.

    Hi Olga,

    I’m currently working on a small code-change (in NW 7.50 SP13) which involves selecting data from table VBFA based on VBTYP. In parallel, I’m reading some S/4HANA-Cookbooks related to the SD-simplifications one of which is the extension of VBTYP from 1 to 4 characters (Note 2198647). In that Cookbook, interface IF_SD_DOC_CATEGORY is mentioned and I noticed that this is already available in our system. So, I quickly changed my code from literals to the corresponding associated types in that interface which gives me the same results as before when I run the program:

         SELECT DISTINCT vbfa_ls~vbeln   AS vbeln
                         vbfa_ls~vbtyp_n AS vbtyp_n_rg
                         vbfa_ls~vbtyp_v AS vbtyp_v_ls
                         vbfa_ls~vbelv   AS vbeln_ls
                         vbfa_tr~vbtyp_n AS vbtyp_n_tr
                         vbfa_tr~vbtyp_v AS vbtyp_v_tr
                         vbfa_tr~vbeln   AS vbeln_tr
                    FROM vbfa AS vbfa_ls
                    LEFT OUTER JOIN vbfa AS vbfa_tr
                      ON vbfa_tr~vbelv   EQ vbfa_ls~vbelv
                     AND vbfa_tr~vbtyp_n EQ IF_SD_DOC_CATEGORY=>SHIPMENT
    *                 AND vbfa_tr~vbtyp_n EQ '8'   "Transport
                    INTO CORRESPONDING FIELDS OF TABLE gt_vbfa_v
                     FOR ALL ENTRIES IN gt_main
                   WHERE vbfa_ls~vbeln   EQ gt_main-vbeln
                     AND vbfa_ls~vbtyp_n EQ IF_SD_DOC_CATEGORY=>INVOICE
    *                 AND vbfa_ls~vbtyp_n EQ 'M'   "Rechngung
                     AND vbfa_ls~vbtyp_v EQ IF_SD_DOC_CATEGORY=>DELIVERY.
    *                AND vbfa_ls~vbtyp_v EQ 'J'.  "Lieferung

    I just did a where-used on the interface and see that it gets used quite a bit in SAP-code but I don’t see any mentions yet in our custom-code.

    So, I’m wondering if this is a) okay to already make use of in our own code and would b) make things at least a little bit easier once we actually do a conversion to S/4HANA?

    If this is something we can/should already use, I’ll get the word out to our developers to switch from literals and/or own constants to these associated types from the interface.

    Thanks and Cheers


    • Hi Bärbel,

      it always a good idea to fix as much as possible in the ERP before S/4 conversion if you have time and resources for such an exercise. The foundation must be the ATC S/4 readiness check run for your custom code For example you can already eliminate such things like using SAP standard obsolete functionality, which was supported within ERP upgrades but removed in S/4HANA. But I think that in this particular case the ATC won't bring any error (using the literal instead of interface constant), therefore this change is nice but not necessarily required for the S/4HANA adaptation.

      I recommend to run ATC S/4 readiness check and see, what you can adapt in ERP.

      Best Regards,


  • Hi Olga,

    Quick fixes are only available on S/4 scenarios? In my case, we are migrating to a Suite on Hana first, and will jump to S/4 a bit later.

    We are very interested on the ADT quick fixes assistant but looks like it is available only in S/4 environments, is this right?

    Thanks in advance.

  • Hello Olga,

    we need to convert (not an ERP but) a decentral EWM to S4/Hana. Are there helpful tools for custom code checking for such a EWM conversion?

    Best regards,

    Werner Deistler

  • Hi Olga,

    We have searched through many differences sources whether the Custom Code adaption step in a conversion type project can be a parallel activity with the data migration activities but unfortunatelly, our verifications have been unsuccessful. This would mean several weeks of work that we could save if we do this activities in parallel, could you please let us know what you know about this?



  • hi  Olga Dolinskaja,

    thanks for sharing very useful information. by reading the blog I came to know 3 ways we can check S/4 HANA readiness. but how to use each option?  could you please explain in detail.

    1. checking with Central Check system (or) local check system
    2. checking with Custom code Migration app on-premise
    3. checking with Custom code Migration app Cloud