SAP Learning Roadmap
Introduction
For several years now, ABAP has been in constant change from the old programming language, which was similar to Cobol, to Modern ABAP, which supports modern and new concepts. Let's look at the new concepts on the timeline based on the architecture; the intervals do not correspond to the publication times.
Descriptions
The individual technologies are described here in more detail in order to better describe the content and boundaries.
ABAP OO
Object-oriented development has been a standard concept in every modern programming language for many years, but found its way into ABAP development very late. Some concepts, such as polymorphism, are nowhere to be found here. But there are other concepts such as friends, which should be used with caution. In addition to theory (classes, interfaces, inheritance), design patterns (factory, singleton, iterator, facade, etc.) are also important.
ABAP Unit
The automation of unit tests gives a developer or even a team a safety net when extending existing software by repeatedly testing current components and validating them with the changes. This means that several developers can work on the same application and know that the basic components are running as specified. However, this also requires a testable software architecture and a high degree of coverage of the software with tests that ensure the functions.
Modern ABAP
As of ABAP Basis Release 7.40 SP8, the ABAP language has undergone a significant modernization. Functional variants have been implemented for many existing statements in order to chain them together and thus cover the same range with fewer lines of code. Modern concepts such as inline declarations have been introduced, which reduce the creation of variables and custom types. The modern statements are usually also performance-optimized, so it is worth switching to the new syntax.
ABAP Test Cockpit
The ABAP Test Cockpit, or ATC for short, is the further development of the Code Inspector and modernizes the building blocks for static code analysis through tests. The framework is based on the SCI tests, but is also open to customer-specific tests as well as tests from the open source community. The framework can be configured so that when a transport task is released, the objects it contains are checked and, if there are any violations, the release is prevented or a documented exception is made. The ATC is now also available in the BTP, which has a number of advantages.
ABAP Development Tools
The new development environment in Eclipse was initially ridiculed by developers because it was inferior to SE80 and also lacked many convenient functions. After years of development, however, the tool now has a major advantage on modern systems in terms of speed, overview and development aids. The strengths here are mainly in information gathering and refactoring, especially if you use the ABAP Cleaner.
BOPF
The "Business Object Processing Framework" is now obsolete, but it represents the foundation for modern development with RAP. It provides many concepts that will still be needed in the future, such as the data model, validations, encapsulation and centralization around the business object. BOPF is mainly implemented on the basis of various objects, which has led to a lot of boilerplate code.
Gateway
Describes the path into the world of the web and provides standardized OData interfaces. The interfaces are used as the basis for UI5 and Fiori applications, but also for exchanging data. OData is a specification of REST interfaces in which access and the form of the interface are specified. Version 2 is mainly used in the SAP environment today. OData v4 brings many advantages and is used with the current S/4 HANA releases, as well as in the cloud.
abapGit
The Git client for ABAP developers is an open source project that was originally launched by Lars Hvam Peterson and is now driven by some developers in the community, as well as SAP itself. The aim is to make Git the standard in companies and to facilitate the exchange of source code and projects.
Fiori / UI5
Is the design concept behind UI5 to provide standardized web applications. Development takes place in HTML and nodeJS, which represents a break from classic ABAP development. Fiori is intended to replace the classic SAP GUI applications and reports.
Web IDE
It was the first development environment on SAP's Neo environment with which Fiori applications were developed and deployed on the frontend server. The Web IDE already worked with Git in the background to manage the source code of the apps.
CDS
The Core Data Service was implemented as an abstraction layer between the database and the frontend. This means that data modeling can be carried out right down to the database in order to use the full capacity of the new HANA database. At the same time, the adaptation of the database under the CDS view is kept open without disturbing the dependencies on the software.
AMDP
"ABAP managed database procedures" are based on the principle of code push-down. Put as much workload, determinations and calculations as possible onto the database. The AMDP classes ultimately become database functions that are executed directly on the database. They can be made available via Core Data Services or consumed directly via ABAP.
Clean ABAP
What does clean code for ABAP actually look like? This is exactly what this guide should provide for all ABAP developers. It is a GitHub repository that transfers the various points of clean code to the ABAP programming language and makes suggestions. The document is further developed by SAP and the community and kept up to date.
codePal
Clean ABAP took the first step and introduced the concept of clean code in ABAP. However, there was no code analysis to give the developer something to work with and provide information about the code. CodePal provides tests that are integrated into the ATC and thus automatically support the development process.
RAP
The “ABAP RESTful Programming Model” is the successor to BOPF and pursues several approaches to find a lightweight solution for some requirements.
- The mapping of a business object in the system, which can be used by the ABAP developer.
- The simple provision of a Fiori application is based on the object and an external interface in the form of an OData service.
At the same time, the object contains all the checks that are needed to create a clean object.
Clean Core
The Clean Core should be the goal for every customer who uses an S/4 HANA system. It means no hard modifications or adjustments to the SAP system in order to ensure a high level of upgradeability and to make the system ready for the cloud. Clean Core provides various concepts to achieve this state.
Extensibility
How do you actually expand the system cleanly and correctly? For this there is the extensibility approach, which describes the various concepts of extensibility. Here there is mainly in-app extensibility, some Fiori applications for extending the data models, core data services, custom objects or for implementing BADIs. A second concept is side-by-side extensibility, where the actual extension is developed on the BTP and only data is exchanged via defined interfaces.
Keyuser Tools
Were the first tools for key users (users with IT know-how, but not developers) to extend the standard using simple means. Additional fields on the entire layer (database, application, UI) are no problem, nor is the rapid implementation of a BADI with certain restrictions. Other apps include the creation of customer-specific business objects or the modeling of CDS views on shared views.
BTP
The “Business Technology Platform” is the cloud solution that provides services and tools to expand the ERP system and develop your own processes to create value. The various services are usually billed according to usage, which means that the costs are variable. The various services are documented in the Discovery Center and you can test their benefits using example processes.
Steampunk
The project name for the ABAP Environment, the ABAP environment in the BTP, is Steampunk. That's why you will also find information about it using different search terms. The environment runs as a SaaS (Software as a Service) solution in the cloud and represents the current state of an ABAP platform. Every three months you get a new release and new features to develop the latest ABAP or to train the developers.
Software Components
It was the first innovation in the ABAP environment and provides a structure package in the system under which an application can be developed. Behind each software component there is its own Git repository and only the entire software component can be imported into the next system or, to put it correctly, a specific commit.
Fiori Elements
Elements applications are lightweight applications that are mainly generated from annotations and defined using so-called floor plans. These specify the appearance and functionality. In contrast to freestyle development, standardized applications can be made available easily and simply and should make up the majority of Fiori applications in the landscape.
Business Application Studio
The Business Application Studio, or BAS for short, is the successor to the Web IDE. In addition to Fiori development, you can also build CAP applications based on nodeJS and model workflows. The Cloud Application Programming Model, however, is not part of ABAP. SAP's AI, "Joule", is now also integrated into the environment.
Code Review
This is a development method in which a developer is checked by another developer after completing a development. The main focus here is on quality assurance to ensure that current concepts are adhered to, the code remains simple and understandable, and that a certain level of know-how transfer takes place. In many cases, developers learn from one another and you should not view a code review as criticism, but rather as feedback for improvement.
Embedded Steampunk
On-stack development with the language version "ABAP for Cloud Development" is now also possible on S/4 HANA Cloud and On-Premise. Applications are developed decoupled from the core of the system and can only use approved SAP interfaces, also known as APIs. Embedded Steampunk has now been renamed ABAP Cloud, but includes the same concepts.
Flexible Programming Model
Fiori Elements applications are relatively rigid because they follow their floor plan. This technology gives you as a developer the opportunity to make adjustments to such applications and to expand them at defined points. Only works for applications and services that are based on OData v4. In addition to the expansion options, building blocks are also provided that combine components and make them easier to implement.
ABAP Cloud
It is SAP's latest development model, which describes how to build clean core and cloud ready applications on one system. In doing so, you break with many concepts that no longer work later in the cloud, such as simple file access, SAP GUI or reports. The model is quite extensive in the methods that must be observed for development. You will achieve Clean Core if you stick to ABAP Cloud.
Released APIs
The released APIs are a central component for development when it comes to accessing the SAP standard. You should keep the relevant functions in mind in order to use as much standard functionality as possible in your development and to exploit the possibilities of the software.
XCO Libraries
The XCO Libraries are additional functions that SAP provides. Basically, these are also released APIs, but we have put this topic separately. Basically, it requires a little more effort to learn the APIs and how to use them, and it is also a little more difficult to get an overview of the functions.
Rating
Here you will find the rating of the individual technologies and models according to the relevance of the technology and the effort required to learn the content. The assessment is a personal opinion and experience on our part.
Technology | Relevance | Effort |
---|---|---|
ABAP OO | +++ | +++ |
ABAP Unit | +++ | +++ |
Modern ABAP | +++ | + |
ABAP Test Cockpit (ATC) | ++ | ++ |
ABAP Development Tools (ADT) | +++ | +++ |
BOPF | - | +++ |
Gateway | + | ++ |
abapGit | ++ | + |
Fiori / UI5 | +++ | +++ |
Web IDE | - | ++ |
Core Data Service (CDS) | +++ | +++ |
AMDP | ++ | ++ |
Clean ABAP | ++ | +++ |
codePal | + | - |
RAP | +++ | +++ |
Clean Core | ++ | ++ |
Extensibility | ++ | ++ |
Keyuser Tools | + | ++ |
Business Technology Platform (BTP) | ++ | +++ |
Steampunk | ++ | +++ |
Software Components | +++ | + |
Fiori Elements | +++ | + |
Business Application Studio (BAS) | ++ | ++ |
Code Review | + | +++ |
Embedded Steampunk | ++ | ++ |
Flexible Programming Model | +++ | ++ |
ABAP Cloud | +++ | +++ |
Released APIs | +++ | ++ |
XCO Libraries | + | +++ |