Skip to Content
Technical Articles
Author's profile photo Olga Dolinskaja

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.

NEW: Watch the brand new video about custom code migration to SAP S/4HANA on the
SAP Technology YouTube channel:

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

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

NOTE: if you intend to execute SAP S/4HANA readiness checks locally, then the SAP Note 2436688 – Recommended SAP Notes for using ATC checks “S/4HANA Readiness” must be implemented on your local system.

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 2022. The frequently asked questions are answered in the Custom code adaptation for SAP S/4HANA – FAQ.

Assigned Tags

      76 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Rene Silva Jr - RUYQ
      Rene Silva Jr - RUYQ

      good read!

       

      Author's profile photo Kiran K
      Kiran K

      Thanks for sharing the info.Good document to start with when we have to deal with Custom Code while migrating to SAP HANA DB.

      K.Kiran.

      Author's profile photo Stephan Scheithauer
      Stephan Scheithauer

      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

      Author's profile photo Olga Dolinskaja
      Olga Dolinskaja
      Blog Post Author

      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,

      Olga.

       

      Author's profile photo Stephan Scheithauer
      Stephan Scheithauer

       

      Hello Olga,

       

      thank you for your recommendation. So I will focus on your blocks to get familiar with the ATC Scenario.

       

      Best Regards

      Stephan

      Author's profile photo Martin Kukielka
      Martin Kukielka

      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?

       

      Author's profile photo Thomas Fiedler
      Thomas Fiedler

      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.

       

      Regards,

      Thomas.

       

       

      Author's profile photo Joachim Rees
      Joachim Rees

      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?

      Joachim

      Author's profile photo Olga Dolinskaja
      Olga Dolinskaja
      Blog Post Author

      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.

      Regards,

      Olga.

      Author's profile photo Joachim Rees
      Joachim Rees

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

       

      best

      Joachim

       

       

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

      Author's profile photo Joachim Rees
      Joachim Rees

      OK, it's there now! (Version 4, Released On 28.04.2017  🙂  )

      Author's profile photo Narasimha Rao
      Narasimha Rao

      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.

       

       

       

      Author's profile photo Olga Dolinskaja
      Olga Dolinskaja
      Blog Post Author

      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.

      Regards,

      Olga.

      Author's profile photo Narasimha Rao
      Narasimha Rao

      Hi Olga,

      Thank you very much, you cleared our way.

      Please keep assisting us , more queries to land your inbox  🙂

       

      Author's profile photo Narasimha Rao
      Narasimha Rao

      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.

      Regards,

      Narasimha

      Author's profile photo Olga Dolinskaja
      Olga Dolinskaja
      Blog Post Author

      Hi Narasimha,

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

      Regards,

      Olga.

      Author's profile photo Susana Zorita Sambruno
      Susana Zorita Sambruno

      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 help.sap.com 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?

      Thanks,

      Susana

      Author's profile photo Olga Dolinskaja
      Olga Dolinskaja
      Blog Post Author

      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.

      Author's profile photo Former Member
      Former Member

      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?

       

      Thanks,

      Ajith

       

      Author's profile photo Olga Dolinskaja
      Olga Dolinskaja
      Blog Post Author

      Hi Ajith,

      using ATC check results before system conversion you can estimate the effort for your custom code adaptation and fix some findings (e.g.like 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,

      Olga.

      Author's profile photo Malcolm Clark
      Malcolm Clark

      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?

       

      thanks,

      Malcolm.

      Author's profile photo Olga Dolinskaja
      Olga Dolinskaja
      Blog Post Author

      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,

      Olga.

      Author's profile photo Rajesh Dadwal
      Rajesh Dadwal

      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

      Author's profile photo Olga Dolinskaja
      Olga Dolinskaja
      Blog Post Author

      Hi Rajesh,

      for such types of issues please open a ticket to SAP.

      Best Regards,

      Olga.

      Author's profile photo Jan Pascal Tschudy
      Jan Pascal Tschudy

      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?

      Author's profile photo Michael Schneider
      Michael Schneider

      Hi Jan,

      Did you try to register your name space (/BLA/) in the system which shall be analyzed by ATC as described in the following documentation?

      https://help.sap.com/viewer/ba879a6e2ea04d9bb94c7ccd7cdac446/7.51.2/en-US/d140a689c1ad4a2baa6c12a76abe1226.html

      Michael

      Author's profile photo Jan Pascal Tschudy
      Jan Pascal Tschudy

      Thats it. Thanks!

      Author's profile photo Ashwini Chaskar
      Ashwini Chaskar

      Hi Michael,

      I have executed the report to check for namespaces and all our namespaces are already registered for ATC. But i still get this message only for certain Objects (CLAS,FUGR,PROG).

      we had total 162 objects in scope on which we ran remote ATC prior to conversion, but after conversion, its only possible to run it on 96 objects. remaining objects are skipped for Local ATC check.

      when ran them separately, system gives below error :

      can you please guide me what can be possibly wrong here.

      Author's profile photo Narasimha Rao
      Narasimha Rao

      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.

       

      Regards,

      Narasimha

      Author's profile photo Olga Dolinskaja
      Olga Dolinskaja
      Blog Post Author

      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,

      Olga.

      Author's profile photo Narasimha Rao
      Narasimha Rao

      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
      Author's profile photo Michael Schneider
      Michael Schneider

      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.

      Michael

      Author's profile photo Former Member
      Former Member

      ​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

      Regards,

      Jay

      Author's profile photo Olga Dolinskaja
      Olga Dolinskaja
      Blog Post Author

      Hi Jay,

      you can and should use remote ATC for custom code analysis. Please take a look at the "Technical Requirements" chapter in the blog Remote Code Analysis - Technical Setup Step by Step . The system, you want to check, must be at least on SAP_BASIS 7.00 therefore your SAP_BASIS 7.02 can be checked with remote ATC. Please use the blogs series Remote Code Analysis in ATC – One central check system for multiple systems on various releases.

      Best regards,

      Olga.

       

       

      Author's profile photo Former Member
      Former Member

      Thank you Olga for our response.

      If I have understood the blog correctly, it will require setting up a new Netweaver system on 7.5X and from there build RFC connections to the system to be converted to run the ATC checks.

      If the above understanding is correct then isnt it an additional overhead? Also is it mandatory to do the check using ATC?

      Regards,

      Jay

      Author's profile photo Olga Dolinskaja
      Olga Dolinskaja
      Blog Post Author

      Hi Jay,

      yes, the custom code analysis with remote ATC is required for the S/4HANA system conversion. Only with the new ATC system (7.51 or 7.52-based) you will get the S/4HANA checks and S4HANA_READINESS check variant. Setup of one "SAP_BASIS only" ABAP system is not so much overhead. Apart of this you can still further use the central ATC system for the static quality assurance and check with the newest checks your whole landscape(independent of system releases). All advantages are also listed here under "Advantages":  Remote Code Analysis in ATC – One central check system for multiple systems on various releases.

      Regards,

      Olga.

      Author's profile photo Bärbel Winkler
      Bärbel Winkler

      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

      Baerbel

       

      Author's profile photo Olga Dolinskaja
      Olga Dolinskaja
      Blog Post Author

      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,

      Olga.

      Author's profile photo Mark Wagener
      Mark Wagener

      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?

      Cheers,

      Mark

       

      Author's profile photo Olga Dolinskaja
      Olga Dolinskaja
      Blog Post Author

      Hi Mark,

      the S4HANA_READINESS variant is only available in the SAP_BASIS 7.51 or 7.52 based system. You need to setup such system as a central ATC system for remote code analysis. See the chapter "SAP HANA and SAP S/4HANA checks" of this blog for details.

      Best regards,

      Olga.

      Author's profile photo MUZAFFER GOKBUDAK
      MUZAFFER GOKBUDAK

      hi;

      my system is also 752 but ı cant see S4HANA_READINESS  variant ın atc

      Author's profile photo Olga Dolinskaja
      Olga Dolinskaja
      Blog Post Author

      Hi Muzaffer,

      is the S4HANA_READINESS_REMOTE check variant available? It it a central ATC system or development system?

      If it is a central ATC system, then please ensure, that all technical requirements of the https://blogs.sap.com/2016/12/13/remote-code-analysis-in-atc-technical-setup-step-by-step/ are fulfilled and the SAP Notes are applied.

      If it is a development system, connected to a central ATC system, then please ensure, that all technical requirements of the https://blogs.sap.com/2017/02/27/remote-code-analysis-in-atc-for-developers/ are fulfilled and the SAP Notes are applied.

      Regards,

      Olga.

      Author's profile photo MUZAFFER GOKBUDAK
      MUZAFFER GOKBUDAK

      hi again ,

      S4HANA_READINESS_REMOTE   variant is also available in my system , its a Central ATC system and all SAP notes done. maybe ı overlook some notes but ı dont think so.

      thanks Olga

      Author's profile photo Jake Foxton
      Jake Foxton

      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.

      https://youtu.be/Y057vr39F6E

      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

      Jake

       

      Author's profile photo Olga Dolinskaja
      Olga Dolinskaja
      Blog Post Author

      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.

      Regards,

      Olga.

       

      Author's profile photo Jake Foxton
      Jake Foxton

      Hi Olga

       

      Thank you for your advise.

       

      Regards

      Jake

      Author's profile photo Former Member
      Former Member

      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

      Rajesh

      Author's profile photo Olga Dolinskaja
      Olga Dolinskaja
      Blog Post Author

      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,

      Olga.

      Author's profile photo Former Member
      Former Member

      Thanks Olga for prompt response...

      Author's profile photo Erico Oliveira
      Erico Oliveira

      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:

      CALL FUNCTION 'BAPI_ALM_ORDERHEAD_GET_LIST'.

      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 ?

       

      Thanks

      Author's profile photo Ruslan Yagofarov
      Ruslan Yagofarov

      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?

      Thanks

      Ruslan

      Author's profile photo Olga Dolinskaja
      Olga Dolinskaja
      Blog Post Author

      Hi Ruslan,

      the SAP note 2659194 explains how to get the S4HANA_READINESS_1809 check variant into your 7.52 system.

      Best Regards,

      Olga.

      Author's profile photo Florian Augustin
      Florian Augustin

      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?

      Thanks,

      Florian

      Author's profile photo Olga Dolinskaja
      Olga Dolinskaja
      Blog Post Author

      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,

      Olga.

      Author's profile photo Bärbel Winkler
      Bärbel Winkler

      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

      Bärbel

      Author's profile photo Olga Dolinskaja
      Olga Dolinskaja
      Blog Post Author

      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,

      Olga.

      Author's profile photo Durgaprasad Burla
      Durgaprasad Burla

      Hi Olga,

      Could you please provide any documents available for ECC to S4 HANA migration /Conversion ?

      Author's profile photo Olga Dolinskaja
      Olga Dolinskaja
      Blog Post Author

      Hi Durgaprasad,

      you need to look on SAP Help Portal at the SAP S/4HANA product page: https://help.sap.com/viewer/product/SAP_S4HANA_ON-PREMISE/1909.000/en-US under "Product Documentation" (e.g. Conversion Guide for SAP S/4HANA) and "Conversion & Upgrade Assets".

      Regards,

      Olga.

      Author's profile photo Alvaro AH
      Alvaro AH

      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.

      Author's profile photo Olga Dolinskaja
      Olga Dolinskaja
      Blog Post Author

      Hello Alvaro,

      yes, the prerequisite for Quick Fixes is at least SAP S/4HANA 1809 SP00.

      Regards,

      Olga.

      Author's profile photo Werner Deistler
      Werner Deistler

      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

      Author's profile photo Olga Dolinskaja
      Olga Dolinskaja
      Blog Post Author

      Hello Werner,

      not yet, since there is no conversion path from standalone EWM to embedded EWM in S/4HANA.

      Kind Regards,

      Olga.

      Author's profile photo Caroline Webb
      Caroline Webb

      Thanks for updating us about custom code adaptation process with example and analysis options.

      Caroline

      Author's profile photo Nicolas Posada
      Nicolas Posada

      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?

       

      Nicolás.

      Author's profile photo Olga Dolinskaja
      Olga Dolinskaja
      Blog Post Author

      Hi Nicolas,

      do you mean the whole custom code adaptation process or only the functional adaptation step? Custom code adaptation itself is independent from data migration, you can do it in parallel.

      Regards,

      Olga.

      Author's profile photo Nicolas Posada
      Nicolas Posada

      Greatly appreciated! This will save us time!

      Author's profile photo B@lu .
      B@lu .

      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
      Author's profile photo Olga Dolinskaja
      Olga Dolinskaja
      Blog Post Author

      Hi Balu,

      for the 1. see the blog chapters "Technical infrastructure for custom code analysis" and "Remote ATC with SAP GUI", you can also watch the video linked there. Local ATC checks for S/4HANA readiness make sense on the converted S/4HANA system if you want to adapt custom code. See for details Semi-automatic custom code adaptation after SAP S/4HANA system conversion.

      The 2. and 3. relate to the same app. See the chapter "Remote ATC with SAP Fiori App Custom Code Migration" and the blog linked there in. For the setup of the app in the cloud see the blog ABAP custom code analysis using SAP Business Technology Platform

      Regards,

      Olga.

      Author's profile photo Christophe beauquin
      Christophe beauquin

      Hi Olga

      Many thanks for sharing useful information.

      For an upgrade from version Hana -1 to a target Hana version ex : S4 Hana 1909 to 2020)  is it necessary to use this tool ? Or can we manage this type of upgrade without this tool ?

      Expecting your feedback

      Thansk

      Author's profile photo Olga Dolinskaja
      Olga Dolinskaja
      Blog Post Author

      Hi Christophe,

      do you mean the upgrade from S/4HANA 1909 to S/4HANA 2020? If it is the case, then please see the IMPORTANT NOTE in the beginning of the blog. We recommend to run custom code analysis also during upgrades within the SAP S/4HANA product family, since the subsequent SAP S/4HANA versions also contain simplifications of SAP standard and the custom code must be checked against them.

      Kind Regards,

      Olga.

      Author's profile photo Bapu Gaibi Halangali
      Bapu Gaibi Halangali

      Hi Olga,

      Before conversion we had appended structure in table BSIS,but now after conversion BSIS is without those fields. So how to handle standard table enhancement after conversion?

      Need you suggestion.

      Thanks

      Author's profile photo Olga Dolinskaja
      Olga Dolinskaja
      Blog Post Author

      Hi Bapu,

      see please the https://answers.sap.com/questions/12630593/append-structure-missing-in-bsis--bsas-in-s4hana.html

      Kind regards,

      Olga.

      Author's profile photo Chan Jin Park
      Chan Jin Park

      Olga Dolinskaja   Hi Olga, in the video clip 3:12 sec. the screen showed  which finding can go  In-App, Side-by-side, BTP ABAP or S/4HANA, is the any guided or easy way to place a recommendation among them ?  B. Rgds

       

      Author's profile photo Olga Dolinskaja
      Olga Dolinskaja
      Blog Post Author

      Hi Chan,

      there is no easy way for such decisions. Custom Code Migration app offers complexity analysis and dependency analysis to SAP standard (s. https://blogs.sap.com/2018/10/02/how-to-check-your-custom-abap-code-for-sap-cloud-platform-abap-environment/) to support your decision making, but you must review your code.  Please take a look at the Custom Extensions in SAP S/4HANA Implementations - A Practical Guide for Senior IT Leadership There is some guidance and the decision matrix provided there.

      Kind Regards,

      Olga.

      Author's profile photo Unknown Unknown
      Unknown Unknown

      Olga Dolinskaja

      Hi Olga,

      If I need to check the impact on all the standard SAP tables in S/4 and want to analyze the corresponding impact in my Analytics data models build in Native HANA. Could you please suggest a way for this.

      Would SYCM give me all the impacted tables (Standard) list?

       

      Regards,

      Praveena.

      Author's profile photo Olga Dolinskaja
      Olga Dolinskaja
      Blog Post Author

      Hi Praveena,

      yes, you can filter the overview in SYCM by the Object Type "TABL" to get a list of all SAP standard tables impacted in S/4HANA, like this:

      You can also download the result.

      Kind regards,

      Olga.