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

Semi-automatic custom code adaptation after SAP S/4HANA system conversion

If you are involved in a SAP HANA system conversion project and take care of the custom code (see also the blog SAP S/4HANA System Conversion – Custom code adaptation process) at a time you will reach the point, where you will need to do functional adaptation for your custom code on your brand new SAP S/4HANA system.

For this purpose, you will run ABAP Test Cockpit with the S4HANA_READINESS check variant on your SAP S/4HANA system and will get a long list of ATC findings which you need to fix.

No doubt, it as a substantial manual effort to look at every ATC finding and adjust your custom code. Besides this, often the most ATC findings are the SAP S/4HANA standard known issues, which could be fixed quickly without dipping into source code analysis, reading SAP Notes for adaptation guidance and so on.

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

 

Prerequisites

Client: ABAP Development Tools (ADT) 2.96

Backend: ABAP platform 1809 (AS ABAP 7.53 SP00)

The SAP Note 2436688 – Recommended SAP Notes for using ATC checks “S/4HANA Readiness” must be implemented on your local system.

 

First Quick Fixes for SAP HANA related issues (SELECT without ORDER BY)

One of the typical functional adaptation use cases during SAP HANA migration is the missing ORDER BY clause in SELECTs before the READ statement. According to the SQL specification, you can not rely on the sort order in SELECT without ORDER BY. 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.

When you check your ABAP code containing such issues with ABAP Test Cockpit in ABAP Development Tools (ADT), you will most probably get a long list of ATC findings in your ATC Problems View at READ.. BINARY SEARCH statements, which were caused by the missing ORDER BY clauses in the previous SELECTs.

TIP: How to display ATC findings directly in the editor

Go to the top menu Window->Preferences in your Eclipse IDE and under General->Editors->Text Editors choose the following:

After ATC run your ATC fndings will be displayed directly in the editor:

If you delete the ATC finding in the Problems View, the finding marker will vanish in the source code.

Now you can correct such issues automatically via ADT Quick Fixes.

Note: ATC findings that can be fixed with a Quick Fix are displayed with a lightbulb icon  

There are two possibilities for applying Quick Fixes.

You can select an ATC finding and choose Quick Fix (or Ctrl + 1 shortcut) in the context menu:

Then select the displayed Quick Fix in the popup and press Finish button:

Recommendation: If there is more than one Quick Fix available for an ATC finding, we recommend to select the first Quick Fix displayed.

Alternatively, you can jump to the affected source code line by double clicking the corresponding ATC finding and choose Quick Fix in the context menu (or Ctrl + 1 shortcut). Double-click the Quick Fix in the popup to apply it to the affected source code line.

That’s it. You can save and activate your source code and rerun ATC.

 

Further Quick Fixes

Further Quick Fixes for the most prominent SAP S/4HANA simplification use cases which are suitable for automatic adaptations are available with the SAP Note 2738251. These Quick Fixes are applicable for most accesses to database tables VBFA, VBUK, VBUP, KONV, BSEG and usage of VBTYPE data elements in source code. With the SAP Note 2364938  also the QuickFix for some MATNR related findings is available.

NOTE: It depends on the finding in the custom code whether a quick fix can be offered or not.

Here is the overview of the ATC checks and corresponding simplification items, for which the Quick Fixes are currently available:

Check Simplification Item Referenced Object

S/4HANA: Field length extensions

Checks report the following:

2215852 – Material Number Field
Length Extension: Code AdaptationsPrerequisite: the material number field length extension is not used in SAP S/4HANA.2610650 – Amount Field Length Extension: Code AdaptationsPrerequisite: the amount field length extension is not used in SAP S/4HANA.NOTE: There are currently no quick fixes to adapt calls to function modules or BAPIs which are reported by the check “S/4HANA: Search usages of simplified objects”.
for example MATNR
S/4HANA: Search for database operations 2198647 – S/4 HANA: Data Model
Changes in SD
VBFA, VBUK, VBUP, VBTYP
2220005 – S/4 HANA: Data Model
Changes in Pricing and Condition Technique
KONV
2431747 – General Ledger: Incompatible
changes in S/4HANA compared to classic ERP releases
BSEG
2768887 – S4TWL – SD Billing Document Draft VBFK, VBFP
S/4HANA: Search for usages of simplified objects 2198647 – S/4 HANA: Data Model
Changes in SD
VBTYP
S/4HANA: Search for S/4 related syntax errors VBTYP
Search problematic statements for result of SELECT/OPEN CURSOR without
ORDER BY
1912445 – ABAP custom code migration for SAP HANA
S/4HANA: Search for database operations, simplified database tables VBRK and VBRP 2879257 – Reducing findings for VBRK and VBRP in ‘S/4HANA: Search for database operations’ VBRK, VBRP

More information can be found in the SAP Note 2866977 “Quick Fixes for SAP S/4HANA custom code checks”.

Mass-enabled Quick Fixes

Beyond this the mass-enabled Quick Fixes are now available with ABAP Development Tools 3.0 and ABAP Platform 1809 FPS01, which make it possible to adapt full packages or software components in one shot and in this way drastically reduce your custom code adaptation efforts. You can also get mass-enabled Quick Fixes on SAP S/4HANA 1809 FPS00 by applying the SAP Note 2695592.

To apply mass-enabled Quick Fixes you first either need to execute an ATC run over your code to get a list of ATC findings in the ATC Problems View or if you already have a local ATC result you can take it over from the ATC Result Browser to the ATC Problems View:

After that just select multiple ATC findings in your ATC result and use the context menu Recommended Quick Fixes…:

The wizard with recommended Quick Fixes for your selected ATC findings starts:

If you press Finish button, you apply the Quick Fixes for all your selected ATC findings, for which the Quick Fixes are available, at one shot.

Comments for “old source code” in Quick Fixes 

While applying a Quick Fix now it is possible to add comments to the refactored code containing the “old source code”. For more details see the blog Comments for the ADT Quick Fixes.

Assigned Tags

      80 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Matthew Billingham
      Matthew Billingham

      “Relying on the implicit sort order of the database vendor leads to functional incorrectness when you switch the database e.g. to SAP HANA.”

      This is not a HANA specific behaviour.

      As I’ve often had to point out on questions on the ABAP tag “my data isn’t being returned in the correct ord”, while observed behaviour might initially mislead you, there is no implicit sort order on relational databases. The order in which you get records back is simply undefined – whether you’re using Oracle, HANA or whatever.

       

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

      Hi Matthew,

      it is indeed so, that many implementations of SELECTs without ORDER BY relied on the presumable "sort order" in the underlying database. It was the motive of using SELECTs without an explicit sorting clause. The applications were programmed using the "expected" order in the result set returned by such SELECTs, and switching the DB vendor (SAP HANA is only the example) caused functional incorrectness.

      I agree with you, that actually DB vendors don't sort data in tables, they rather implement the way, how the data is fetched by SELECTs on their DBMS, and it can vary from DB vendor to DB vendor.

      I changed the text in the blog so it will become more clear.

      Regards,

      Olga.

      Author's profile photo Matthew Billingham
      Matthew Billingham

      "Switching the DB vendor (SAP HANA is only the example) caused functional incorrectness."

      It's not really a question of vendor implementation - it's a feature of relational databases by design. A programmer who relies on a mythical database sort order has written a broken program.

      Generally, records remain in the order they're added. This is particularly visible with internal number ranges. However, a database reorgansiation can completely muck that up - especially if there have been deletions and insertions.

      So - here's a reason to switch databases every so often -> you're more likely to see that the sort order is illusory when you migrate data. I'll mention it to my CIO! 😀

      Author's profile photo Matthew Billingham
      Matthew Billingham

      I would like to suggest an improvement for this quick fix. You see, about 20 years ago, HASHED and SORTED tables were introduced into the ABAP language. Since then, BINARY SEARCH is rarely (if ever) required. Sadly, many programmers are firmly stuck in the last millenium and don't use these "new" constructs.

      It would be nice if your quick fix, or the ATC finding, pointed out that better results might be obtained by simply defining the table as HASHED or SORTED. Of course, you are fixing a programmatic issue in a quick way, but the danger is that you're applying a bandaid to a gaping wound...

       

      Author's profile photo Thomas Fiedler
      Thomas Fiedler

      Hi Matthew,

      thanks for the Feedback.

      You can be sure that the Quick fix described in the blog is only the start of our roadmap. Besides the fixes for functional correctness after S/4HANA conversion we also have Quick fixes for security, performance and other code quality aspects in mind. And we also keep an eye on the modern ABAP and how we can get rid of the old ABAP stuff by using Quick fixes.

      I'm sure this blog will help to collect proposals from you ABAPers.

       

      Regards,

      Thomas.

      Author's profile photo Renaud VAN DEN DAELE
      Renaud VAN DEN DAELE

      Hi colleagues,

      I understand from the prerequisites the quick fixes can only be used once the conversion occured (ie backend is  SAP S/4HANA 1809)  although, if I am not wrong, these are the fixes which could be done on ERP as a pre-project activity.

      If I am right on both statement above, do you foresee a possibility to have those nice tools available  with ERP as a backend so that code can be corrected before the SAP S/4HANA project starts?

      Best regards

      Renaud

      Author's profile photo Rob Veenman
      Rob Veenman

      I agree with Renaud. S4Hana migration is like swallowing a watermelon. So if we can slice it and eat it in parts we can derisk the migration.
      Can someone with knowledge in this area comment on the options or plans for automatic code adaption for ERP?

      Author's profile photo Deepti Dhingra
      Deepti Dhingra

      Hi Olga,

      It's a helpful feature for developers, hope to see such features, not only for conversion but for regular development of codes and looking forward to see more features in it.

      Regards,

      Deepti

      Author's profile photo Rajeev Jain
      Rajeev Jain

      Hi Olga,

      This information is very helpful.I tried to do the same in my system but I am not getting the ATC check option in eclipse. Currently I am using the eclipse IDE version.

      Can you please guide me which version of the eclipse we can use so that we can get the ATC check option along with this quick fix option ?.

      Thanks and Regards,

      Rajeev

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

      Hi Rajeev,

      see "Prerequisites" chapter of this blog.

      Regards,

      Olga.

      Author's profile photo Santosh Patil
      Santosh Patil

      Hi Olga,

      Any update on the timeline for release of next set of quick fixes?

      Regards,

      Santosh

       

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

      Hi Santosh,

      see the updated "What's New" section of the blog.

      regards,

      Olga.

      Author's profile photo Sebastian Freilinger-Huber
      Sebastian Freilinger-Huber

      Hi Olga Dolinskaja ,

      thanks for providing the information about the QuickFixes, which is a very nice way how to deal with the custom code from my point of view.

      Some of the fixes are realated to a conversion to S/4HANA, and some are related to the conversion to SAP HANA (like e.g. the sort order problem). Is it planned, that the QuickFixes considering SAP HANA are also provided for older releases, like NetWeaver 7.40 or 7.50?

      (This would be very suitable for customers, who want to "just" migrate to the HANA database today, before moving to S/4HANA maybe in 2 or 3 years.)

      Best regards,

      Sebastian

       

       

       

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

      Hi Sebastian,

      no, there are no plans to downport QuickFixes to lower NetWeaver releases.

      Regards,

      Olga.

       

      Author's profile photo Sebastian Freilinger-Huber
      Sebastian Freilinger-Huber

      Hi Olga,

      thanks for the quick answer.

      Best regards,

      Sebastian

      Author's profile photo Mohinder Singh Chauhan
      Mohinder Singh Chauhan

      Hi,

      Very informative and useful blog. I tried this option in 1809 FPS001, after adding notes system started bringing S4H related quick fixes as well. I have a question, I didnt complete remediation but lead till recommendations, will there be somekind of comments added to remediated code? Will there be a dashboard once we are done with quickfixing in mass for reporting? If not is there a way to identify which all objects are remediated by quickfix(not from transport request point of view).

      Information on ATC problem view is very feeble. From eclipse if we want to run on all custom packages, how can we do it? Should we ran ATC from GUI, then will result set be available from Eclipse for doing a mass Quick Fix?

      Regards

      Mohinder

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

      Hi Mohinder,

      thank you for trying out the Quick Fixes and providing feedback.

      Regarding adding the comments to remediated code: such functionality in already in our development backlog.

      Regarding the dashboard for Quick Fixes and which objects are remediated: you get the preview and dashboard on Quick Fixes using the SAP Fiori App Custom Code Migration and by grouping the ATC findings by Quick Fix filter in the App.

      From ADT in Eclipse you can run ATC on several custom packages and then apply the Quick Fixes to the ATC findings in the ATC Problems View. We will also provide the central ATC check run result of the system in ADT, so that you will be able to execute mass Quick Fixes for this ATC result. This feature is also already in our development backlog.

      Best regards,

      Olga.

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

      Hi Mohinder,

      just to let you know: the comments for remediated code are there. See the blog Comments for the ADT Quick Fixes.

      Regards,

      Olga.

      Author's profile photo Mohinder Singh Chauhan
      Mohinder Singh Chauhan

      Hi Olga, thank you replying. We went live now and system is stable :).  I believe new updates can be used for S4 conversion programs and in an on going program.

      One think which quick fix introduced was replacing BSEG table with FAGL* series FMs depending on whether how BSEG was used. 1. Select Single 2. For All entries different FMs but Quick Fix was not replacing BSEG everywhere, which ideally it should and using FAGL* series FM for replacement is also not correct as BSEG and BSEG_ADD( which are used in FM) doesn't store Document type 'U' in it.

      Shouldn't a direct replacement of BSEG should be done with ACDOCA?

       

      Regards

      Mohinder

      Author's profile photo M Ahmad
      M Ahmad

      Hi Olga,

      Thanks to the brand new article,

      I have one doubt, sometimes we write code:

      "read table <itab>.... with key fieldx = val1 fieldy = val2 binary search"

      where fieldx and fieldy is possible be non-primarykey fields for some scenarios

      If table <itab> is not sorted before this read statement, then how the "Quick Fixes" will work in this case?

      As I can see in the screenshot below(copied from your article above):

      "Table is sorted by the primary key",  while in my code I am using non-primary key fields.

       

      Is there any limitation for quick fixes?

       

       

       

       

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

      Hi Masoom,

      actually the ORDER BY... Quick Fix gets applied to the previous SELECT (or OPEN CURSOR) statement (from database table into internal table), before READ statement. So I don't see any limitations here.

      Best regards,

      Olga.

      Author's profile photo GERARDO MARTIN GOZALO
      GERARDO MARTIN GOZALO

      Hello Olga,

       

      Is it possible doing mass quick fixes in ATC browser viewa without doing a recheck?

       

      I mean, only quick fixes are possible in ATC problem view, so we need to do a recheck of all inspections we did in backend ATC central system

       

      Thanks and regards.

      Gerardo.

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

      Hi Gerardo,

      it is currently not possible to apply quick fixes to ATC central check run result, since ATC central check run result isn't yet available in ADT in Eclipse. But this functionality will come this year.

      Regards,

      Olga,

      Author's profile photo Baajeerao Dabhade
      Baajeerao Dabhade

      Hi Olga ,

      We have latest ADT 3.4.1 and S/4 Hana 1809 FSP 02 on NW 7.53. I am trying to apply multi-Quick fixes from ATC Problems view in ADT but can't see the option for "Recommended Quick Fixes. Checked the SAP note 2695592 for multi-quick fixes but seems proc status is "Not Relevant" and implementation state is "cannot be implemented. Checked all the objects in the note "Transformations" and they all exist in the system.

      Could you please let me know what we might be missing here to get this functionality working?

       

      -thanks & regards

      Baajeerao Dabhade

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

      Hi Baajeerao,

      are you sure, that you try it correctly? You will get the "Recommended Quick Fixes" proposed in the context menu only if you select some (or all) concrete findings in the ATC Problems View.

      Best regards,

      Olga.

      Author's profile photo Baajeerao Dabhade
      Baajeerao Dabhade

      Author's profile photo Baajeerao Dabhade
      Baajeerao Dabhade

      Author's profile photo Baajeerao Dabhade
      Baajeerao Dabhade

      Author's profile photo Baajeerao Dabhade
      Baajeerao Dabhade

      Hi Olga ,

      Thanks for quick response.

      These are the screen prints of our ADT version , NW&S4 version and also the context menu in ATC problems view where there is no option for "Recommended Quick Fixes" even though I have selected multiple records/findings.

      -thanks & regards

      Baajeerao Dabhade

       

       

      Author's profile photo Baajeerao Dabhade
      Baajeerao Dabhade

      Hi Olga ,

      Just for additional info the single quick fix does work fine for us as you can see in below screenprint. Problem is the multi-quick fix doesn't work though.

      Author's profile photo Joachim Rees
      Joachim Rees

      I can confirm this behaviour: in AdT ATC Problems-View selection a single line gives the qick-fix option on rightclick; selection more than one line does not!

      Eclipse: 2019-12 (4.14.0) and AdT 3.8.4,
      Backend: S/4HANA 1909 (initial shipment stack, S4CORE 104 0000; SAP_BASIS 754 0000).

      Author's profile photo Joachim Rees
      Joachim Rees

      Hey, I have an update on this one:

      I get the options when I select ALL lines (with ctrl+a);
      This might have worked all along, I think I had not tried that!

      So:
      Single line -> OK,
      All lines (ctrl+a) -> OK.
      (only) SOME line (Shift+arrow or ctrl+click) -> doesn't work -> no QuickFix-option provided.

      So it' all or nothing...
      not perfect in my opinion but I'm glad I know now!All%20lines%20selected%20with%20ctrl-a%20so%20the%20option%20is%20there%21

      All lines selected with ctrl-a so the option is there!

       

      best

      Joachim

      Author's profile photo Baajeerao Dabhade
      Baajeerao Dabhade

      Hi Olga ,

      Do you have any update on this. We are still not able to use the mass quick fix functionality. The option is not appearing for us on ADT.

      -thanks

      Baajeerao Dabhade

      Author's profile photo Christopher Geladaris
      Christopher Geladaris

      Hi,

      I’m having the same issue. I’ve noticed that that grouping certain items together, I get the option, sometimes not?

       

      working:

       

      Not working:

       

      odd?

      Regards,

      Chris

      Author's profile photo Mohinder Singh Chauhan
      Mohinder Singh Chauhan

      Hi Olga,

      Wanted to understand on patterns on which Quick fixes for S4 and SOH remediations are applied. In recent document of Custom Code Migration Guide FPS02, available fixes mentioned at 4.3.3.1 talks about reference object, this information is good. However, Is there any document which can enlist list type of pattern for each reference object. Eg. A query on BSEG can have a multiple scenarios, will Quick fix applies API for each one of them or a selected few and how its been decided which one should be remediated or a pseudo comment to be used?

       

      Thanks in advance.

      Regards

      Mohinder Singh Chouhan

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

      Hi Mohinder,

      no, there is no such document. But if you try to apply Quick Fixes, you will see in the Quick Fix wizard two compare editors: the source “before” Quick Fix and “after”. You will see the suggested implementation pattern there. You don’t need to apply Quick Fixes, you can just take a look at the patterns.

      Regards,

      Olga.

      Author's profile photo Arifuddin Syed
      Arifuddin Syed

      Hi Olga,

      Applied SAP Note 2364938  for the QuickFix for MATNR but unfortunately, the QuickFix option in ADT does not automatically fix the code rather gives an option as "Append pseudo comment '#EC CI_FLDEXT_OK[0002215424]". Please advise on how to automatically fix "MATNR Field Length Extension" See below sample code.

      data: lv_matnr type char18,

      wa type mara.

      select single * from mara into wa where matnr like 'A%'.

      lv_matnr = wa-matnr.

      write: lv_matnr.

      Appreciate your prompt response on this matter.

      Author's profile photo Michael Schneider
      Michael Schneider

      Hi Arifuddin,

      Did you also apply SAP Note "2738251 - Quick Fixes for the S/4HANA Custom Code Checks" (Attention Consider the manual pre and post implementation steps of all dependent notes)? This SAP Note provides the infrastructure for quick fixes related to S/4HANA custom code checks.

      Furthermore, most quick fixes only apply if you don't use the long material number (i.e., you keep your material number length <= 18). In order to run the checks for a specific material number length, you can copy the check variant S4HANA_READINESS and specify your desired length of the material number for the check "S/4HANA: Field length extension" in transaction SCI.

      I hope this information helps.

      Michael

       

      Author's profile photo Arifuddin Syed
      Arifuddin Syed

      Hi Michael,

      Thank you for your assistance.

      As suggested, applied SAP Note 2738251 but unfortunately, the Quick Fix option in ADT does not automatically fix the code for "MATNR fixed length extension" rather again it gives an option as “Append pseudo comment ‘#EC CI_FLDEXT_OK[0002215424]”. Moreover, Quick fix is being applied for the material number length <=18 and the S/4HANA is 1809.

      Please advise on how to automatically fix “MATNR Field Length Extension”. Also, does 1909 has the built-in feature for automatic quick fix for MATNR.

      Appreciate your prompt response on this matter.

      Regards,

      Arif

      Author's profile photo Joachim Rees
      Joachim Rees

      I like the AdT-Quick Fixes in general and it makes sense to have them for ATC-findings as well. The "Append ORDER BY PRIMARY KEY"-example is a very nice one.

      But for Field Length Extension Material Number I don't like what is provided:

      Like Arifuddin Syed mentioned, it just offers to add a pseudo comment, and I don't think that's a good idea.

      Would would be right in this case is:

      changing

      ls_plantext-material = <lfs_change>-matnr.

      to

      ls_plantext-material_long = <lfs_change>-matnr.

      Not sure if a quick-fix could do this, it surly would be nice!

      I have read note 2866977 - Quick Fixes for SAP S/4HANA custom code checks, saying "Prerequisites for quick fixes: The material number field length extension is not used in SAP S/4HANA" an Michael Schneider  metioned something similar, so I fear this is by design. 🙁

      Would be nice if we could get Quick Fixes actually fixing things (instead of just hiding them). 😉

      best
      Joachim

      Author's profile photo Michael Schneider
      Michael Schneider

      Hi Joachim,

      you are right. The pseudo comments are not meant to solve the finding. They shall only be used if you face false positives in the results of S/4HANA custom code checks, and you really want to suppress the finding.

      In general, we used the quick fix (aka quick assists) pattern which is common in Eclipse. Not all quick fixes are real fixes (e.g., renaming a variable or a method).

      But we agree that it is confusing in the context of the custom code adaptations for SAP S/4HANA. Therefore, we plan to change this behavior in the future and added it to our backlog.

      Thank you for your feedback.

      Kind regards,
      Michael

      Author's profile photo Joachim Rees
      Joachim Rees

      Good to hear, thanks Michael Schneider !

      Author's profile photo Rishi Lal
      Rishi Lal

      Hi Olga ,

      We have ADT tool in place and while doing ATC check using S4HANA_READINESS_1809 check variant we are getting some resulting as shown per screen shot .

      So to take it forward we have also implemented 2738251 & 2364938 , after implementing the note  we ran the ADT again using S4HANA_READINESS_1809 check variant and we did not got any ATC finding , screen shot below

       

      It would be very helpful if you can help us know what could have gone wrong here .

       

      so to verify we again ran ADT again using S4HANA_READINESS_REMOTE check variant and we got some finding which was expected , but when we go ahead for quick fix it always gives us the option to use pseudo comments , screen shot below

       

       

      please let us know if we are missing anything for S4HANA_READINESS_1809 or what could gone wrong .

       

      please note : we have used same program for above three scenario.

       

      Thanks and regards

      Rishi

       

       

       

       

       

       

       

       

       

      Author's profile photo Michael Schneider
      Michael Schneider

      Hi Rishi,

      quick fixe cannot be offered for all findings related to VBUK/VBUP or KONV. So maybe this might be the reason here.

      Nevertheless, it is strange that you get these differences of findings between check variants S4HANA_READINESS_1809 and S4HANA_READINESS_REMOTE. Would you raise an incident for this so that we can have a look at your system and to clarify the reason?

      Thanks and best regards,
      Michael

      Author's profile photo Rishi Lal
      Rishi Lal

      Hi Michael ,

      Thanks for your reply .

      Is there any specific documentation for the quick fixes covered by the tool ?

      The reason I am looking for the documentation because

      For ex :

      I have 2 select statement on KONV

      Query 1 : SELECT * FROM konv into TABLE it_konv WHERE KNUMV in s_KNUMV.

      for above query I am getting pseudo comments to fix

      and

      Query 2 : SELECT SINGLE * FROM konv WHERE knumv eq s_knumv
      AND kposn eq s_kposn
      AND STUNR eq s_stunr
      AND ZAEHK eq s_zaehk.

      For Query 2 , ADT tool is giving me API method to fix, Also will this API call method will refer to PRCD_ELEMENTS ?

       

      If you observe here in query 1 we have “IN” operator in where condition , where as in query 2 we have “EQ” operator .

      the concern here is why here ADT tool in not giving fixes for “IN” operator , same for VBUP and VBUK.

       

      and sure, I will raise an incident for S4HANA_READINESS_1809.

      Also one more thing , what about credit management tables, will those fixes will be offered using ADT ?  As I  could not find any documentation / note for that .

      Appreciate  your time .

       

      Thanks,

      Rishi

      Author's profile photo Raja Sekhar Gurrala
      Raja Sekhar Gurrala

      Hi Olga,

      Is there any way to see the problem statement and recommended quick fixes in the back end system? Where does this information stored?

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

      Hi Raj,

      if you connect you backend system with RFC to the central ATC check system and run S/4HANA readiness checks remotely on it, you will get ATC results there and can navigate to the problematic source code, see also https://blogs.sap.com/2017/02/27/remote-code-analysis-in-atc-for-developers/. But the QuickFixes you get in ABAP Development Tools in Eclipse only on an S/4HANA system (no ERP).

      Regards,

      Olga.

      Author's profile photo Raja Sekhar Gurrala
      Raja Sekhar Gurrala

      Hi Olga, Thanks for the reply and this helps me a lot as I was exploring to quick fix options at backend. This is clear that it s not possible.

      Author's profile photo Magalí Anglada
      Magalí Anglada

      Hi Olga and everyone,

      someone know why trying to apply Mass Quick Fixes we get the following message, beyond the object. We try different objects but we always get the same error. MSGV1 MSGV2 is locked against changes error

      Error%20message

      Error message

      Regards,

      Magalí

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

      Hi Magalí,

      please open a ticket to SAP if you want to get this investigated.

      Regards,

      Olga.

      Author's profile photo Francisco LopezM
      Francisco LopezM

      Try with SAP Note 2902053 - Downport of quickfix comments/defect correction for quickfixes

      This solved that message for me.

      Author's profile photo Basis GeoSystem
      Basis GeoSystem

      Hi Magali.

      How did sap solve your problem?

      We are having the same problem.

       

      Thanks.

       

      Rodrigo

      Author's profile photo ABAP Team
      ABAP Team

      Hi Magalí Anglada,

      When I try to do mass enabled quick fixes, I am also getting the same error. Have you find any solution.

       

      Hi Olga,

      I have created a ticket for SAP on the same issue.

      Author's profile photo Prathap Chandy
      Prathap Chandy

      Hello Olga,

      Thanks for the info on Quick Fixes feature in Eclipse (ADT).

      Wanted to check whether Quick fix feature would be available for Eclipse ADT on 'ABAP on Cloud' (BTP)? or is it available only for S/4HANA back-end system?

      Regards,

      Prathap

       

       

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

      Hi Prathap,

      yes, Quick Fixes are also available for SAP BTP ABAP Environment. Please check this blog https://blogs.sap.com/2019/10/01/semi-automatic-custom-code-adaptation-for-sap-cloud-platform-abap-environment/

      Kind Regards,

      Olga.

      Author's profile photo Sampat Tandon
      Sampat Tandon

      Hi Olga,

      I am using Eclipse ADT Version is 3.16.4. But during ATC run , i am not getting variant S4HANA_READINESS_2020. can you please suggest how to get this variant in eclipse.

       

      Thanks,

      Sampat

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

      Hi Sampat,

      ATC check variants are available on the backend system, not in ADT. Please implement the SAP Note 2959341 to get the S4HANA_READINESS_2020 into your backend system.

      Regards,

      Olga.

      Author's profile photo jcz jcz
      jcz jcz

      hi olga

      the eror faced by @Magalí Anglada, is the same error i am getting as well. System is s/4 2020.

      Also one more comment is when i do a recommended quick fix on multiple atc items for a transportable program , i get this error. HOWEVER for a local onbject , it works fine , i dont get this error.
      I have raised a oss for the client but  i am yet to get a response.
      Author's profile photo Orhan Er
      Orhan Er

      Hello Olga.

      Thank you very much for this detailed information. We want to migrate from an S/4 HANA (2020) system to a SAP BTP ABAP Environment system. I've been doing a lot of research on this subject for about 2 weeks.

      Adaptation and migration process:

      1. First of all, are these concepts below in the process of Adaptation? And what should their order be?
      - Scmon or UPL
      - SUSG
      - Custom Code migration App
      - ATC (Abap Test Cockpit)
      - SAP Fiori Custom Code Migration App
      - Simplification Catalog or DB

      2. My question is exactly: Which stages should we use respectively to move from S/4 HANA to SAP BTP process?

      3. Will the adaptation process take place on the S4 system or on the SAP BTP system after the migration?

      Thank you very much.

      Author's profile photo Renaud VAN DEN DAELE
      Renaud VAN DEN DAELE

      Hello Orhan,

      It is not possible to migrate from SAP S/4HANA to SAP BTP. These are totally different products with different purposes. The only thing you could migrate is loosely coupled custom code from your SAP S/4HANA system to run it in BTP (eg create apps which reads application data from SAP S/4HANA, or create custom data inSAP S/4HANA etc..) instead of running it in your SAP S/4HANA system.

      If you want to move your SAP S/4HANA to the could, then  can migrate from an SAP S/4HANA on-premise to SAP S/4HANA Cloud, private edition, by subscribing a RISE with SAP contract, and making a migration project.

      Best regards

      Renaud

      Author's profile photo Orhan Er
      Orhan Er

      Hello Renaud,

      I don't agree with your answer. Because there are many resources on this subject. For example, Thomas shared one of them below.

      https://blogs.sap.com/2019/11/11/how-to-bring-your-abap-custom-code-to-sap-cloud-platform-abap-environment/

      https://blogs.sap.com/2019/10/01/semi-automatic-custom-code-adaptation-for-sap-cloud-platform-abap-environment/

      https://blogs.sap.com/2018/10/02/how-to-check-your-custom-abap-code-for-sap-cloud-platform-abap-environment/

      https://blogs.sap.com/2019/09/23/abap-custom-code-analysis-using-sap-cloud-platform/

      https://blogs.sap.com/2018/10/02/semi-automatic-custom-code-adaptation-after-sap-s4hana-system-conversion/

      I'm curious about your answer. Thank you so much

       

      Orhan

       

      Author's profile photo Renaud VAN DEN DAELE
      Renaud VAN DEN DAELE

      Hello Orhan,

      You are free to disagree with my comment, and challenge my answer with the colleagues, I am happy to see that you are seeking for the real truth, but my answer is the same. SAP S/4HANA is standard code, your company pays for an application (huge amount of lines of code) developed by SAP to run your business processes on it. You can tailor it to your needs (eg influence the processes outcomes with new fields, or changing values or add new applications) with custom code that your developer develop (or you as a developer).

      Please see the title of the blogs you are referring to, and what I highlight in bold:

      • https://blogs.sap.com/2019/11/11/how-to-bring-your-abap-custom-code-to-sap-cloud-platform-abap-environment/
      • https://blogs.sap.com/2018/10/02/how-to-check-your-custom-abap-code-for-sap-cloud-platform-abap-environment

      So if you have purchased the SAP S/4HANA product and not using at all the standard processes (finance, procurement, warehouse, sales...) , and only run custom code on it (without reusing/Calling any pre-built content such as database tables, fields, code.. ), indeed you could use those blogs to migrate what you have developed to BTP, since you are not using the SAP S/4HANA product, but only its technical layer. But this is very unlikely. Those blogs are for customer who want to move some of their custom code from the SAP S/4HANA product to the SAP BTP to make a "cleaner core" on the SAP S/4HANA which is then is easier to upgrade. But in the scenario, both SAP BTP and SAP S/4HANA work side by side.

      The blog "https://blogs.sap.com/2018/10/02/semi-automatic-custom-code-adaptation-after-sap-s4hana-system-conversion/"  is a completely different topic from the other ones. It is intended to customers who are in a conversion (= transformation) from an SAP ECC to SAP S/4HANA system. Since the custom code in the SAP ECC can be incompatible with some changes introduced with SAP S/4HANA (those changes are called simplification items), then customers need to correct their incompatible code objects. This blog explains how, for some specific type of changes, they can be massively detected and corrected on the SAP S/4HANA Dev system through a feature named QuickFixes which belongs to the platform/technical layer of SAP S/4HANA. The only relationship with SAP S/4HANA is that QuickFixes feature are also implemented in BTP, to check custom code in BTP. So QuickFixes in SAP S/4HANA checks and correct custom code on the SAP S/4HANA system, and QuickFixes in BTP checks and correct custom code on the BTP system. Indeed, for both SAP S/4HANA and BTP, there is a need to make cloud compliant code (mandatory in BTP, optional if SAP S/4HANA is on-prem) and quick fixes allow to check this.

      The blog ABAP custom code analysis using SAP Business Technology Platform | SAP Blogs explains how the BTP platform can be leveraged to analyse custom code on an SAP ECC system before conversion, to understand which piece of code will need to be changed due to the SAP S/4HANA changes. so you connect the BTP platform which analyses the custom code and provide a nice view in a SAP Fiori app of the workload for a conversion or upgrade project, or "cloud readiness" aspects. This avoids to implement an on-prem system for what can be a temporary need.

       

      Author's profile photo Orhan Er
      Orhan Er

      Hello Renaud,

      First of all, thank you very much for your long and detailed answer. Please answer some of my other questions for better understanding of the subject, both for me and for future readers.

      I think there is a confusion about concepts such as Custom-Code and SAP Standard-Code, the complete SAP S/4 HANA system. In order to prevent this, I will ask some numbered and detailed questions. There are many questions, but I am sure the answers to these questions will help many people.

      1. Custom-Code is technically the code written in Z, Y or custom name-spaces (like /abc/) written by the SAP customer or Partner?

      2. Can Custom-Codes be written completely independently of standard-Codes?

      3. Can Custom-Codes be written depending on standard-Codes?

      4. In my question, scenario number 3 is valid. That is, Custom-Codes is a project made by extending standard-Codes, using standard tables and special tables as well?

      5. If there was a Project written with scenario number 2, could this Project be migrated to the SAP BTP environment?

      6. Is the migration process not possible due to scenario number 3? In summary, Custom-Codes are built on standard-SAP Code and therefore migration is not possible. Because standard code transition is not possible?

      7. In this case, can I move only Custom-Codes (the project was written in SAP S/4 HANA system) built on SAP standard-Codes with Z, Y and /abc/ name-spaces to a SAP BTP ABAP Environment (Steampunk) platform? ? (I know I'm going to get a lot of errors because it's related to standard code.)

      8. If scenario 7 is possible, can I redefine the functions of the sap standard-codes in the SAP BTP environment, also in this environment? Will this be so hard? As a result, we can access SAP Public APIs through the new RAP (ABAP Restful Application Programming Model) using CDS-Views in the SAP BTP environment.

      9. SAP S/4 HANA from one Platform If Steampunk environments are completely different environments, does it make sense to rewrite the project in SAP BTP environment?
      If not, how can I apply side by side technology (extension independent of system kernel) to my current project?

      Thank you very much.
      Orhan

      Author's profile photo Renaud VAN DEN DAELE
      Renaud VAN DEN DAELE

      Hello Orhan,

      Maybe it would be easier if you could detail what you want to achieve with your question:

      • Do you want to get rid of your SAP S/4HANA completely? If yes, is the standard not being used at all?
      • Or do you want to move your SAP S/4HANA to the cloud?
      • Or do you want to clean your SAP S/4HANA system from custom coding, but while still using it?

      1. Custom-Code is technically the code written in Z, Y or custom name-spaces (like /abc/) written by the SAP customer or Partner? YES

      2. Can Custom-Codes be written completely independently of standard-Codes? YES, but in my former developer experience, it is very seldom. Most of the time, there is at least a reuse of standard dictionary objects (data elements, tables, CDS views).. or even code (classes / function modules / Bapi..) 

      3. Can Custom-Codes be written depending on standard-Codes? Yes, there can be may types of standard objects reused in the custom code. There can be clones of standard coding (not recommended), there can be usage of data dictionary objects such as tables, data elements.., there can be calls to standard classes or functions, there can be read accesses to standard tables (not recommended) or CDS views (should be used), ..)  

      4. In my question, scenario number 3 is valid. That is, Custom-Codes is a project made by extending standard-Codes, using standard tables and special tables as well? Custom code has a huge range of different cases with more or less adherence to the standard, from clones of the standard (not recommended) to BADIs and to nearly fully specific applications only reusing a few standard data elements, eg for quantity and prices)

      5. If there was a Project written with scenario number 2, could this Project be migrated to the SAP BTP environment? Yes, this is the purpose of blog https://blogs.sap.com/2019/11/11/how-to-bring-your-abap-custom-code-to-sap-cloud-platform-abap-environment/

      6. Is the migration process not possible due to scenario number 3? In summary, Custom-Codes are built on standard-SAP Code and therefore migration is not possible. Because standard code transition is not possible? It depends what you call migration process. Migrating loosely coupled custom code is what is explained in the other blogs, but it is not migrating SAP S/4HANA to SAP BTP (I reuse your original words). It is migrating custom code from an SAP S/4HANA system to a SAP BTP system, while keeping the SAP S/4HANA system. 

      7. In this case, can I move only Custom-Codes (the project was written in SAP S/4 HANA system) built on SAP standard-Codes with Z, Y and /abc/ name-spaces to a SAP BTP ABAP Environment (Steampunk) platform? ? (I know I'm going to get a lot of errors because it's related to standard code.) I recommend to read this guide, especially the end, in order to classify your custom code objects into categories of what should stay on the SAP S/4HANA system, and what could be moved from the SAP S/4HANA system to the BTP system. 

      8. If scenario 7 is possible, can I redefine the functions of the sap standard-codes in the SAP BTP environment, also in this environment? Will this be so hard? As a result, we can access SAP Public APIs through the new RAP (ABAP Restful Application Programming Model) using CDS-Views in the SAP BTP environment. I cannot answer this question, maybe the colleagues can.

      9. SAP S/4 HANA from one Platform If Steampunk environments are completely different environments, does it make sense to rewrite the project in SAP BTP environment?
      If not, how can I apply side by side technology (extension independent of system kernel) to my current project? I cannot answer this question, maybe the colleagues can.

      I wanted to let you know that answering questions in the community is not part of my job, it is a personal involvement which cannot be prioritized on my daily activities for my customers. Sometimes I will not answer fast to questions, and there will also be limits to the time I spend on a given topic/question.

      Best regards

       

       

      Author's profile photo Orhan Er
      Orhan Er

      Hello Renaud,

      Thank you very much for taking the extra time to answer in detail. Sometimes I read a lot of documents, but there are still many things that cannot be understood. I can understand these incomprehensible things much better with the question-answer part most of the time. For this reason, I would like to say that the answers you have given are very valuable for me and the readers.

      My answer to your questions:
      1- Do you want to get rid of your SAP S/4HANA completely? If yes, is the standard not being used at all?
      2- Or do you want to move your SAP S/4HANA to the cloud?
      3- Or do you want to clean your SAP S/4HANA system from custom coding, but while still using it?

      (Yes, sap standard-codes are used). In fact, it could be one of these three. However, since there is a not loosely coupled custom code connection with Sap standard-codes, the 2nd or 3rd one seems more appropriate. After all, I have the option to use the SAP S/4 HANA system on-Premise or in the Cloud, side by side with the SAP BTP Abap Environment.

       

      Best regards

      Author's profile photo Orhan Er
      Orhan Er

      Or what you want to say is that: it can be done but only with RISE? So what is RISE?
      Thank you very much.
      orhan

      Author's profile photo Renaud VAN DEN DAELE
      Renaud VAN DEN DAELE

      RISE with SAP is a commercial offering which combines a SAP S/4HANA Cloud of your choice ( SAP S/4HANA Cloud, or SAP S/4HANA Cloud Private edition) plus some SAP BTP usage plus many other offerings to change the way you run your processes. This is your default go-to option if your need is to move your SAP S/4HANA to the cloud. It will not become a SAP BTP, it will become a SAP S/4HANA in the cloud, running side by side with SAP BTP on which you could move your custom through the information from some of the blogs you have mentioned.

      Author's profile photo Thomas Fiedler
      Thomas Fiedler

      Please check: https://blogs.sap.com/2019/11/11/how-to-bring-your-abap-custom-code-to-sap-cloud-platform-abap-environment/

       

       

      Author's profile photo Orhan Er
      Orhan Er

      Hello Thomas,

      Thank you for your answer. What do you think of Renaud's answer? What does Olga think about this?

      Thank you very much.

      Orhan

      Author's profile photo Thomas Fiedler
      Thomas Fiedler

      Just for clarification: In SAP BTP ABAP environment (aka Steampunk) there is no application stack included. Steampunk is tailored for Side-By-Side applications written in ABAP.

      So a migration from S/4HANA towards SAP BTP is for sure not possible.

      But in order to follow the Clean Core principle you should migrate your custom developments to Steampunk. This can either be in a side-by-side approach for loosely coupled custom code or with our new approach of embedded Steampunk for tightly coupled extensions.

      See the blog post Embedded Steampunk – Some more details for ABAP developers | SAP Blogs for more information

       

      Author's profile photo Orhan Er
      Orhan Er

      Hello Fiedler,

      Thank you very much for your Answer. How can I migrate my Project side-by-side approach for loosely coupled custom-code.

      Currently, our project is on an on-Premise SAP S/4 HANA system. How can I implement this?

      For example with this scenario?
      Scenario: Sap standard-Codes will stay in the current system (Sap S/4 HANA on-Premise), Custom-Codes will be migrated to SAP BTP ABAP Environment (Steampunk) system.
      I will connect to the on-Premise (SAP S/4 HANA) system via the SAP Cloud Connector and provide the SAP standard-code connection. This way, I won't have any problems with the next system upgrades. Because Custom codes are being expanded side by side on the SAP BTP platform.

      How%20to%20bring%20your%20ABAP%20custom%20code%20to%20SAP%20BTP%20ABAP%20Environment

      How to bring your ABAP custom code to SAP BTP ABAP Environment

      Do you think this approach makes sense? If it is wrong, what is wrong?
      Thank you very much for the answer.

      Orhan

      Author's profile photo Thomas Fiedler
      Thomas Fiedler

      Correct. This is our recommended approach.

      Regards,

      Thomas.

      Author's profile photo Orhan Er
      Orhan Er

      Hello Thomas,

      I asked Renaud some very important questions yesterday. However, I haven't been able to get an answer yet. Ok, I understand the general template, but I also need answers to these questions. Can you please answer these questions?
      There are many questions, but I am sure the answers to these questions will help many people.

      Please answer these questions is very important.

      https://blogs.sap.com/2018/10/02/semi-automatic-custom-code-adaptation-after-sap-s4hana-system-conversion/comment-page-1/#comment-638104

      Orhan

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

      Hi Orhan,

      take a look at the new blog: https://blogs.sap.com/2022/09/12/get-started-with-the-abap-custom-code-migration-process/. The order, phases and where to adapt custom code are described there.

      Kind Regards,

      Olga.

      Author's profile photo Harald Bitzer
      Harald Bitzer

      Hi Olga,

      First of all thank you very much for all the great blogs about custom-code conversion.

      I have a question regarding the Quickfixes and how the results of the Fiori custom-code migration app are displayed in HANA studio.

      We have done a run with the app. The result is that there are obviously 661 Quickfixes available, also a categorization into Prio 1,2 and 3 is done. See screenshot below.

      When we look now at the results of this run in HANA studio, we only have a categorization into Errors, Warnings and Infos (which is to my understanding the same as Prio 1,2 and 3 in the app), but the number of Quickfixes displayed in HANA studio is way lower than the 661 quickfixes reported by the app!

      How can we fit this together? My concern is that we have completed all quickfixes in HANA studio, but the app still reports open quickfixes.

      Thanks a lot for your help and Best Regards

      H.

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

      Hi Harald,

      has the number of findings, which can be fixed with quick fixes, been initially lower in IDE as in the CCM app (before you quick fixes in the IDE)? Have you rerun the check in the CCM app after you had applied the quick fixes in the IDE?

      Kind Regards,

      Olga.

      Author's profile photo Harald Bitzer
      Harald Bitzer

      Hi Olga,

      I have manually counted the quickfixes in HANA studio, since there is no quickfix filter (which would be very helpful by the way 😉 ).

      We have in HANA studio:

      0 quickfixes for Errors
      3 quickfixes for Warnings
      41 quickfixes for Infos

      In the app however we have

      29 quickfixes for Prio 1
      9 quickfixes for Prio 2
      623 quickfixes for Prio 3

      And I am talking about the same run. We access the same CCM results of the app in HANA studio and get different numbers.

      Best Regards

      Harald

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

      Hi Harald,

      the ABAP development tools for Eclipse filters by default the display of the ATC findings by user. Could you please check if user filter exists and remove it (context menu "Configure Tree..." in the ATC Result Browser)? If the problem still remains please open a ticket to SAP, we need to take  a closer look.

      Kind Regards,

      Olga.

      Author's profile photo Harald Bitzer
      Harald Bitzer

      I have removed all filters and no impact.

      But the numbers of findings in general is ok, this is not what I questioned (as I wrote above). It is more that the number of quickfixes within the 3 categories "Errors", "Warnings" and "Infos" doesn´t fit at all to the numbers of quickfixes reported by the Fiori app.

      In this case I probably create an SAP ticket.

      Best Regards

      Harald

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

      Yes, this is what I meant: the number of the findings, for which quick fixes exist, must be the same in the CCM app and ABAP development tools. Please open a ticket.

      Kind Regards,

      Olga.