ABAP Cloud - Relevant Objects
Which objects are still relevant in ABAP development and which ones can you slowly put away? Find out more here.
Table of contents
In this article, we will examine the theory of existing objects and see what will still be relevant in ABAP Cloud and what will no longer be. We will examine the different objects and their use and make a forecast based on our own opinion.
Introduction
With ABAP Cloud, some objects and language constructs are "finally" not only made obsolete, but completely banned. This makes the learning scope and options easier and gives newcomers to the ABAP world the advantage of focusing directly on the new topics. Some people in the community would certainly have preferred this, as it is standard in the world of programming languages and backwards compatibility right down to the oldest code is something of a rarity.
In principle, however, we can say that this only applies to the customer's own code and partners, as this does not currently apply to SAP code. Most of this will still run under classic ABAP and therefore everything will be possible. We will therefore restrict ourselves here to our source code and objects.
Objects
In this section we will look at the various objects and technologies.
ABAP OO
We have already discussed the topic of using objects in the software architecture in an older article. The written source code will be found primarily in classes and interfaces, which makes it easy to write unit tests. All other objects act as shells that instantiate and call the classes. Nowadays, with the test double frameworks, there are also options for mocking many of the other objects during testing (classes, function modules, tables, CDS views, RAP objects, authorization objects, events, etc.). Relevant objects in this area would be:
- Classes (CLAS)
- Interfaces (INTF)
SAP GUI
With ABAP Cloud, the SAP GUI and the frameworks and objects associated with it are history. The most popular framework here is certainly the report and the ALV, followed by various other GUI technologies such as trees or HTML controls. These objects have been the cornerstone of SAP GUI development to date. Obsolete objects in this area would therefore be:
- Report (REPO)
- Transaction (TRAN)
- Dynpros
- GUI status
- Search helps (SHLP)
- Set/Get Parameter (PARA)
Dictionary
We have already discussed the use of tables and Core Data Services in another article. In the DDIC environment, some objects that you no longer need in ABAP Cloud become obsolete because there are alternatives in the CDS area.
- View (VIEW)
If we look at the future of the table and the current capacities, these will be replaced by table entities and types in the future (2025). During the transition period we will still be able to use the current artifacts, but we should switch to the new types if possible.
- Table (TABL)
- Data element (DTEL)
- Domain (DOMA)
- Structures (STRU)
Services
Services are no longer built in the SEGW if the release state allows it. With Core Data Services, Service Definition and Service Binding you have very good tools at your disposal. This allows you to cover all types of services and protocols.
- Core Data Services (DDLS)
- Service Definition
- Service Binding
Function modules
The use of function modules has been standard for a long time, regardless of whether it is an RFC interface, a BAPI or for use as an object. In development, they can lead to side effects that a young developer may not be able to properly assess when it comes to buffering information. In current development, we used them more as a shell for calling objects and encapsulating the logic in testable classes. If we take a look at frameworks that normally required a function module, such as parallelization or background processing, SAP now offers alternatives. RFC function modules will be around for a while, as they are still a popular means of communication, but they may be less needed in the future, at least when used directly.
- Function group (FUGR)
- Function module (FUNC)
Extensions
How do we extend a system in ABAP Cloud? BADIs will also be available. This will enable you to implement extensions in the system at intended locations in the future. However, older technologies such as user exits, includes or implicit enhancement points will disappear from the system.
Language elements
Let's take a look at the language elements and from which area something will disappear and what we will continue to use.
File processing
Direct file processing is no longer possible in ABAP Cloud; as developers we no longer have access to the file system there. Accordingly, all statements from this area will also be eliminated:
- OPEN DATASET
- TRANSFER
- READ DATASET
- CLOSE DATASET
- DELETE DATASET
SAP GUI
When it comes to working with dynpros in the SAP GUI, there are some specific commands for calling dynpros. The classic selection screens will also disappear, as will numerous commands with them. You can slowly forget about this as you build more and more applications with RAP and Fiori.
- CALL TRANSACTION
- SELECTION-SCREEN
- PARARMETER
- SELECT-OPTION
- SKIP
- etc.
Authorization check
Checking user authorizations remains an important part of processing. Do you want certain functions in applications to be offered only to certain users? This can generally be done via customizing, but it would be cleaner to use an authorization object. Corresponding statements are still required:
- AUTHORITY-CHECK
Most authorization checks are probably carried out directly in the access control of the Core Data Service.
Dynamic calls
It is quite difficult to imagine, but the creation and calling of objects still requires some older statements, at least when it comes to dynamic processing. In our opinion, we set the topic to "Still Relevant", perhaps SAP will present a more modern solution here.
- CREATE OBJECT
- CALL METHOD
Summary
Here is the summary of the objects again. We differentiate between "Relevant", "Still Relevant", which may disappear in the near future, and "Not Relevant", which you can no longer use in ABAP Cloud.
Relevant | Still Relevant | Not Relevant |
---|---|---|
Objects | ||
Class (CLAS) | Table (TABL) | Report (REPO) |
Interface (INTF) | Data element (DTEL) | Transaction (TRAN) |
Core Data Services (DDLS) | Domain (DOMA) | Search help (SHLP) |
Behavior definition (BDEF) | Function group (FUGR) | Set/Get Parameter (PARA) |
Application Log (APLO) | Function module (FUNC) | |
Package (DEVC) | Structure (STRU) | |
Message Class (MSAG) | ||
BADIs | ||
Service Definition | ||
Service Binding | ||
Language elements | ||
AUTHORITY-CHECK | CREATE OBJECT | ... DATASET |
CALL METHOD | TRANSFER | |
C ALL TRANSACTION | ||
SELECTION-SCREEN | ||
PARARMETER | ||
SELECT-OPTION | ||
SKIP |
Hint: The list includes all objects mentioned in the blog and does not refer to the complete objects of the system, as there are certainly more objects here.
Conclusion
In our opinion, it was finally time to clean up ABAP. On the one hand, we can now tackle the new topics, and on the other hand, beginners have it easier because they don't have to learn this juggernaut of existing topics before they can even really start with ABAP.