The move from the classical SAP Business Suite to the Digital Core, i.e. SAP S/4HANA, places SAP HANA at the center of the game. The same is also valid when moving from traditional databases to SAP HANA - i.e. SAP Business Suite and SAP Business Warehouse powered by SAP HANA.
What does this really mean for ABAP developers?
I would like to use this blog to elaborate a bit on the topic ABAP for SAP HANA again.
ABAP (development) for SAP HANA refers to all developments which leverage the power of SAP HANA within ABAP-based applications. In this context, the SAP HANA platform is the primary database underlying the ABAP platform. This system deployment option is supported with AS ABAP 7.4 onwards.
The introduction of the SAP HANA platform in the ABAP universe has brought a shift in the application programming paradigm. The general rule of thumb here is quite simple:
Do as much as you can in the database to get the best performance – but at same time, avoid unnecessary burden to the database. |
The classical application programming paradigm, data-to-code, where a huge amount of data is fetched from the database, stored in internal tables and then processed on the application server, shifts to the in-memory database-powered code-to-data programming paradigm (aka code pushdown), where data-intensive computations are delegated to the database and only the result sets sent back to the application server. This reduces both memory consumption and workload on the application server, as well as the network load. |
Various code pushdown programming techniques, with different levels of utilization of the advanced native SAP HANA capabilities, are available in the ABAP platform.
SAP recommends the following:
The graphic below shows the level of utilization of native SAP HANA capabilities – e.g. high performance and advanced business functions libraries – and indicates the relative level of effort required for their implementations. The real effort depends, of course, on how complex the requirements are and how much expertise the developers have.
Further code pushdown techniques are available besides the ones mentioned above: the so-called bottom-up techniques with external views and database procedure proxies, and the classical options with the ABAP Database connectivity (ADBC) API and native SQL.
These techniques are only mentioned here for the sake of completeness, but I’ll not really elaborate on them any further. The reason being that SAP does not recommend using them for efficient ABAP development on SAP HANA, meaning they should be used with caution or even better, simply avoided.
Learn more: External Views | Database Procedures Proxies | ADBC API | Native SQL
ALV with IDA offers an in-memory optimized variant of the well-known ALV re-use component. With the new component, all data-centric UI operations such as sorting, grouping or aggregating are delegated to the database and thus always processed on the full data set. Constraints such as authorizations and value ranges are declared and evaluated directly on the database, and the database paging is used on SAP HANA so that only visible data is fetched from the database.
A typical basic use case is to improve the performance of an existing ALV-based application which worked with a huge amount of data. With the classical ALV, developers have to e.g. specify a truncation parameter to limit the amount of data fetched from the database and stored in internal tables. This means that data-centric operations were only performed on the fetched data which may not be the whole result set.
Learn more: ALV with IDA Intro (video) | ALV and FPM on SAP HANA | ALV with IDA Feature Matrix
With ABAP 7.4 onwards, the functionality of a search help object (F4 Help) has been enhanced with optional type-ahead and fault-tolerant full-text search.
By just selecting the appropriate enhanced option in a search help, a google-like type-ahead search can be activated. Also known as search-as-you-type, this function offers a faster user interaction by displaying possible search results from the standard F4 help while typing in entries. In addition, a full text fuzzy search option can be activated. This function is SAP HANA-specific and offers a fault-tolerant cross-column search. No modification is required on the UI side.
Learn more: Overview about Enhanced Search Help
The major programming techniques recommended by SAP in the context of core ABAP development for SAP HANA are on one side Open SQL and ABAP CDS views which are meant to cover the most variety of scenarios and should be the first choice for developers, and on the other side AMDP and ABAP CDS table functions which are meant to be used for special use cases where the other techniques are not suitable to cover the application requirements.
The mainstream techniques ABAP SQL and ABAP CDS views, which offers an extension of the ABAP database interfaces, should always be the first option for developers as they cover most application requirements in the ABAP development. But of course, there are applications with special requirements ranging from high performance requirements involving complex calculations to the access to specialized native SAP HANA function libraries and algorithms – which cannot be fulfilled efficiently (or at all) with other options.
The code breakouts techniques AMDP and ABAP CDS table functions should be taken into consideration for such special scenarios – also called breakout scenarios. They are SAP HANA-specific and developers must provide fallback implementations for any other DB if required.
Open SQL is the first abstraction layer in the ABAP platform. It defines a common syntax and semantics used for accessing all relational database systems supported by SAP. Thus, allowing ABAP developers to work in a database-agnostic manner – unless making explicitly use of DB-specific features.
Code pushdown in ABAP starts with Open SQL, as it is the most known techniques of all and is used almost used everywhere when it comes to fetching data from the database.
With ABAP 7.4 onwards, Open SQL has been heavily enhanced and some of the existing limitations removed, thus, providing a broader coverage of the SQL-92 standard. A higher level of expressiveness in Open SQL statements is now possible using e.g. the rich set of built-in SQL functions and expressions, table comprehensions and enhanced JOIN capabilities.
Main characteristics & purposes:
Learn more: Code pushdown in ABAP starts with Open SQL | Open SQL Documentation (SAP Help Portal)
CDS represents SAP’s next generation of data definition and access for database-centric applications. Technically, CDS uses and extends SQL to capture the business intent.
The CDS specification comes from the SAP HANA world, but besides the implementation provided in SAP HANA (HANA CDS), another one is provided in the ABAP platform (ABAP CDS).
The integration of CDS into the ABAP platform provides a new database abstraction layer and an advanced modelling infrastructure for defining semantically rich data models regardless of the application domains – i.e. transactions, search and analytics.
ABAP CDS represents a cornerstone technology within SAP S/4HANA, where it is used as Virtual Data Model (VDM) and within the new ABAP programming model for SAP Fiori apps.
ABAP CDS objects are created in the eclipse-based ABAP Development Tools in a text-based editor.
Main purposes and characteristics:
Learn more: Get started with ABAP CDS | ABAP CDS Documentation (SAP Help Portal) | Get started with the new ABAP programming model
When to use what? is a frequently asked question by customers and partners as both techniques seem to serve the same purpose in the ABAP platform.
ABAP CDS and Open SQL are not competitors. On the contrary, they complete each other. |
There is no simple answer to this question because, yes, both extend the database interface of the ABAP platform, but different aspects have to be taken into account before making a decision. Thus what can be clearly said is that ABAP CDS and Open SQL are not competitors as they basically follow different purposes.
ABAP CDS provides the new data modelling infrastructure for building semantically rich data models in ABAP – i.e. it is the successor of SE11 when it comes to view building – whereas Open SQL is meant to be used for single queries with no reuse characters. Do not forget, that CDS views and roles can be consumed in Open SQL statements.
The table below shows a comparison of the major aspects to be taken into account during the decision process.
Open SQL | ABAP CDS | |
Data modelling, , incl. associations | - | + |
Ad-hoc / single queries | + | - |
Domain-specific metadata | - | + |
Rich set of built-in function | + | + |
Reusability | - | + |
Dynamic programming | + | - |
Direct binding into ABAP Language | + | - |
Data manipulation language (DML) | + | - |
Modification-free extensibility | - | + |
Data Control Language (DCL) for declarative access control | - | + |
Seamless mapping to OData | - | + |
Access to advanced SAP HANA capabilities | - | + |
Learn more: Domain-specific metadata
AMDP provide a class-based framework for creating and calling SAP HANA database procedures and functions from the ABAP environment – i.e. AMDP procedures and AMDP functions. The ABAP platform is the sole master regarding the lifecycle management (creation, update, deletion and transport) of such SAP HANA entities.
The main characteristics of AMDP procedures and functions:
AMDP procedures and functions are implemented and debugged in the methods of properly tagged global classes (so-called AMDP classes and AMDP methods) using the eclipse-based ABAP Development Tools. They are consumed in ABAP report like any regular ABAP methods.
Various development support like syntax highlighting, static syntax checks are provided.
Learn more: Intro about AMDP (Blog) | AMDP Documentation (SAP Help Portal) | SAP HANA SQLScript reference
To keep it short: CDS table functions enable the integrate AMDP functions into CDS-based data models. Thus, providing the access to the powerful SAP HANA capabilities directly from CDS.
Learn more: CDS Table function (Blog post)
That's it! Find a link collection of related information below.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
28 | |
16 | |
8 | |
8 | |
8 | |
7 | |
7 | |
6 | |
6 | |
6 |