Skip to Content
Technical Articles
Author's profile photo Michael Keller

downward compatible ABAP source code

Dear community, some time ago I transferred ABAP source code from one development system to another development system via copy & paste into a report. When trying to activate the report there were many errors. What happened?

Well, my source system was a SAP NetWeaver 7.50. I had made extensive use of newer possibilities such as inline declarations (already 7 years old!). The target system was a SAP NetWeaver 7.31, if I remember correctly. Accordingly, possibilities such as inline declarations were not available.

In my case, that wasn’t too bad 🙂 The source code section was not very long and quickly adapted. In addition, the ABAP Development Tools help a little with Quick Fix to adapt the source code really fast (did I mentioned that before: I like Quick Fix – highly recommended!).

But how does it work if you want to develop generally compatible software for a SAP NetWeaver release? Right off the bat, I couldn’t find any statistics which SAP NetWeaver release most customers use. Is that already 7.40 and you can ignore 7.31 and lower even if there is support until 2027? Is that even the year in which support is really discontinued?

In addition, I didn’t find a list with which SAP NetWeaver release an ABAP statement or an addition to an ABAP statement was added.

Both information about commonly used SAP NetWeaver release and introduced statements at which release would be really helpful.

To make things a little more complicated: We don’t even want to talk about the actual business processes, their application logic and data model. They are also dependent on a certain support package.

Can someone help here with experiences? What could be a good practice?

 

Best regards, thanks for reading and please stay healthy

Michael

 

P.S.: Check our new “Virtual Wishing Well for Blogging“.

P.S.S.: Not tired of reading blogs? Don’t miss this one by Lars Hvam.

Assigned tags

      7 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Shai Sinai
      Shai Sinai

      I'm not aware of any list which mentions the availability of an ABAP command/option per NW/ABAP platform release.

      (You can always search for it manually in the documentation of the corresponding release. e.g. https://help.sap.com/doc/abapdocu_740_index_htm/7.40/en-US/index.htm)

      Basically, NW 7.4 SP08 should be sufficient for new ABAP syntax:

      ABAP Language News for Release 7.40

      ABAP Language News for Release 7.40, SP05

      ABAP Language News for Release 7.40, SP08

      Author's profile photo Lars Hvam
      Lars Hvam

      For syntax, perhaps something like https://syntax.abaplint.orghttps://syntax.abaplint.org/#/expression/Source each part is annotated with the valid release, and can easily be navigated, including “where-used” lists?

      And then automatically downport the syntax, using standalone logic, perhaps https://rules.abaplint.org/downport/ can help? 😉

      It works on web, in vscode or run via most(all?) CI tools.

       

      Eg. for abapGit development, the syntax is run towards 702 syntax, configured in https://github.com/abapGit/abapGit/blob/master/abaplint.json#L16

      Author's profile photo Yurij Sichov
      Yurij Sichov

      Hi! I can't find downport functionality in playground.abaplint.org

      Author's profile photo Lars Hvam
      Lars Hvam

      try going to the tab "abaplint.json" and change the version to "v702", the configuration defaults to high versions where the syntax is valid

      Author's profile photo Shai Sinai
      Shai Sinai

      Amazing.

      Author's profile photo Suhas Saha
      Suhas Saha

      Maybe you can use the ABAP Remote Syntax-Check https://blogs.sap.com/2014/11/28/remote-syntax-check-for-abap-developers/

      You don't have to transport the objects to the lower releases to do the syntax check.

      Author's profile photo Matthew Billingham
      Matthew Billingham

      With my company (check my profile), we develop for 7.31 as companies are still out there using it and it is supported by SAP. It does get challenging if we want to offer functionality for later releases (like CDS view support) as our transports must import into 7.31 and 7.52 systems.

      The way we deal with this at the moment is that the lead development system is a 7.31 system. We keep it patched. Our 7.31 system though is an ERP system, and some of our clients want our products on BW systems. So we transport through to a 7.52 Basis system. If we've used any ERP components, or Basis components that are now obsolete, we'll get errors that we have to address.

      Soon, our lead development system will be a 7.52 system. We'll carry on developing as though for a 7.31 system, but this time the 7.31 will be a Basis system, and we'll also get errors if we use new syntax!

      How do we provide support for 7.4+ features? Clever dynamic programming and careful program design. However, we never generate any code at runtime.