ABAP Cloud - Programming Model
Which programming model is used with ABAP Cloud and what can we learn from its predecessor? More details in the article.
Table of contents
What do you need a programming model for in ABAP and how is the current model structured? In this article, we will briefly go through the evolutionary history of the model and what it looks like today.
Introduction
Even before ABAP Cloud, a lot of the architecture in ABAP had changed. With the new Core Data Services, it was now possible to create a further abstraction between the database and the UI and to better describe the data model and the relationships using the associations in the views. Using additional annotations, it was possible to create an OData service directly from a Core Data Service. The OData services are important if you want to develop a UI based on SAP Fiori.
Programs
Currently, most applications are implemented as SAP GUI transactions in the system, as they are the current standard for ABAP developers and can be implemented very quickly. They rely on controls and the classic PBO and PAI for processing.
BOPF
The Business Object Processing Framework, or BOPF for short, was the first attempt to take the modeling and use of business objects to a new level. For the first time, various concepts were used to support the reusability and flexibility of the objects. The logic surrounding the business object was implemented with ABAP OO to underline the more modern architecture.
This meant that an object could consist of various tables that were related to one another. If the root node was deleted, the dependent entries in the nodes below were automatically deleted as well, without the developer having to worry about it.
Logics were implemented to check the data before saving (validations). This meant that no incorrect data could be saved in the BO. There were investigations that automatically derived various data without the user having to enter it. If an action was to be carried out that interacted with the data, it could be triggered at the BO to change, check and save data in the object.
A later extension of the concept was that a BOPF could be created from Core Data Services with specific annotations and modeling via transactions was no longer necessary. In addition, a service for the UI could easily be generated.
However, there were also some downsides to the model, as a lot of boilerplate code and artifacts were generated, which did not really make working with it any easier. Modeling and working with BOPF objects was not always easy or quick to do.
RAP
The ABAP RESTful Programming Model, or RAP for short, was the last model developed by SAP. It adopts many concepts from BOPF, such as validations, determinations and actions. It was developed and built over many iterations before it became the model we use today.
Modeling
In addition to the tables, the model is primarily based on the Core Data Services to carry out the data modeling. Therefore, not much ABAP coding is required for the actual development of the app. If you then want to implement additional behavior and make the model interactive and changeable, you have to create the behavior definition and implementation.
The service is no longer managed in the gateway (SEGW), but you create new development artifacts such as the service definition (bundling of entities) and the service binding (protocol).
First steps
Getting to grips with the framework can be quite complex because there are so many new objects and options. If you come from a reporting background and have not learned BOPF before, the many different things can seem a bit overwhelming at first. We therefore recommend that you get a rough overview of RAP at the beginning. The introductory training on learning.sap.com can help you to quickly set up your first object. In general, we recommend that you start small, with an object with a table, to learn the new concepts. Then you should increase the complexity step by step:
Learning
Learning the new programming model will take several months of training to understand the technology and methodologies. At the end, however, there is an efficient model waiting for you to be able to implement Fiori Elements applications and establish a new standard. In any case, we recommend that you use RAP in practice with various scenarios in order to learn the basics of the model. You should focus primarily on the following areas:
- Data modeling with your own and standard Core Data Services
- Creating behavior
- Entity Manipulation Language (EML)
- Designing Fiori UIs with annotations
Conclusion
Once you have understood the new programming model, implementing SAP Fiori (Elements) applications will be much easier and you will achieve results more quickly. With a little practice, you will soon be able to create applications as quickly as you can create reports with ALV today.
More information:
SAP Help - ABAP RESTful Programming Model
BOPF Developer Guide