ABAP code has been used by programmers working with SAP products since the 1980s, so why is it starting to cause problems for organizations who want to migrate to and get optimal performance from SAP HANA almost 40 years later?
If you’ve spent time researching SAP HANA there’s a good chance you’ve come across “ABAP code” and this may have set off alarm bells if you don’t have a background in development.
This blog post is written for professionals involved in IT strategy or purchasing but don’t neccessarily have a high level of programming or development knowledge. However, there's still plenty here for those who not only know what ABAP code is, but are fluent in using it to bend technology to their will.
For everyone else, welcome to ABAP 101!
What is ABAP Code?
ABAP code is simply computer code written in Advanced Basic Application Programming (ABAP), a high-level programming language that was previously known as Allgemeiner Berichts-Aufbereitungs-Prozessor (roughly German for “general report creation processor”).
A Brief History of ABAP
Originally ABAP was used as the reporting language for SAP R/2 in the 1980s and empowered customers with programming experience to develop custom reports.
In 1992 SAP announced R/3, their new ERP solution, and the vast evolution of technology in the years between releases meant it could utilise very different hardware and software architecture to improve functionality.
Unsurprisingly, this needed developers to change some of the ways they used ABAP and some code from R/2 was rendered obsolete.
The expanded use of ABAP in R/3 gave users even more opportunity for customization when creating applications and by 2001, all but the most basic functions of R/3 were written in ABAP.
In 2010 SAP released a new database - SAP HANA.
HANA wasn't so much an improved solution but a complete paradigm shift in how databases operated. Unsurprisingly, this huge leap forward required significant changes to the way ABAP code was used to interact with the database.
And so, anybody wanting to fully utilize the unique functionality provided by HANA now needs to ensure their ABAP code is adapted to be HANA-ready.
ABAP was one of the first coding languages to introduce a high level of abstraction between business applications, operating systems and databases – now known as Logical Databases (LDBs).
Simply put, ABAP-developed applications copy information from a database, leaving the database itself completely untouched. The data is then processed and transformed by the application before the result is presented to the user.
The use of ABAP code ensured any SAP application was "database neutral" and could extract information from a range of databases because it didn’t depend on functionality unique to specific platforms.
Many users then wrote custom ABAP code enabling them to utilize their database’s unique functionality. This has typically led to systems with a large custom code base written in ABAP that has accumulated over decades.
What’s Different About SAP HANA?
Innovations such as cloud computing, the Internet of Things and real-time analytics are no longer emerging technology – they’re business reality. And organizations who aren't utilizing new technologies will quickly fall behind competitors.
HANA is SAP’s proprietary cutting-edge database and provides clients with access to some of these innovations and represents some some of the most advanced technology available.
The speed and computing power provided by SAP HANA outstrips previously available databases, and, with so much unique functionality, it no longer makes sense for the abstraction between applications and databases.
HANA empowers users to perform intensive operations at the database level and not in the application itself, as before. Now data transformations and calculations are executed within the database, and only the result is returned to the application.
Transferring all data-intensive operations to the database level is necessary to make use of all SAP HANA capabilities and makes the whole architecture much more elegant and efficient.
In fact, companies that have already migrated to SAP HANA have reported a massive improvement in application performance.
Why Does My ABAP Code Need Adapting?
Firstly, it's important to know that not all your ABAP code will need adapting. Most of it will still function optimally after being migrated to SAP HANA. What will need to be adapted is any custom ABAP code that was written to use the unique functionalities of any particular database.
One of the inevitable trade-offs that resulted from accessing the unique functionality of SAP HANA is that any custom ABAP code written specifically to interact with another database is now obsolete and could potentially interfere with your systems.
For your ABAP code to work with SAP HANA, you will need to ensure your systems are truly database independent.
This means identifying any ABAP code that relies on the unique behaviour of any specific database and adapting it to fit into HANA's simplified data models.
Custom Code and the New SAP HANA Data Model
SAP HANA's dramatically simplified data model means custom code that worked with other databases may not function optimally using HANA. This is due to changes in the underlying database architecture that is referenced by that custom code.
One example of this is the need for code that aggregates data. SAP HANA aggregates all totals and subtotals on the fly using its in-memory and column-based architecture, obviously this means you no longer need ABAP code that performs this task.
Some instances of incompatible custom code will result in significant performance degradation but others will cause fatal system crashes – making it vital to clean up your custom code.
This is true whether you're migrating your entire database as a new HANA user or optimising your current HANA database for better performance.
This includes analyzing your entire custom code base to identify instances of incompatible ABAP code and manually adapting them to the new SAP HANA data model.
Obviously this represents a big challenge for some organizations. After all, it's an extremely time-consuming task, with potentially tens of thousands of custom ABAP code items that will need to be found and adapted.