Hi ABAP developers,
Last month I had the luck to be able to attend SAP TechED Barcelona. I think there were quite a lot of updates considering the way, how you implement your applications in the future - therefore I would like to share my take-aways now in this blog. As I want to avoid wasting your time, I will focus on the technical stuff and leave out all personal experience considering the travel, location, conference and endless discussions at the hotel bar (beer involved).
As I consider myself mainly as a developer (partly as an architect), my focus on the topics was application development, primary in the area of ABAP. Therefore this blog will contain three major blocks of information for you – if none of them is applicable, you probably should skip this blog:
- Overview and distinction of the three major state-of-the-art programming models, which seem to be highly relevant for the future of ABAP and each ABAP developer.
- Preview of upcoming WebIDE features (namely the SAPUI5 Visual Editor) to simplify the implementation of FIORI Elements, especially when it comes to annotations.
- A quick guideline, what you can do right now, to prepare yourself for the big change in SAP (ABAP) development (which already started – in case you haven't noticed yet).
State-of-the-art programming models
As you (hopefully) noticed , SAP introduced S/4HANA a few years ago to simplify the data model in order to leverage SAP HANA capabilities. Obviously, this also has a lot of impact on application development and as technology evolves very fast nowadays (like the introduction of FIORI and SAPUI5), the way that you should build your applications is not PBO/PAI anymore. From my point of view, there are three programming models highlighted at TechEd, which are relevant:
ABAP Programming Model for SAP FIORI
The following picture shows use the state-of-the-art considering ABAP development:
The yellow area is the so called ABAP Programming Model for SAP FIORI and this is the way, how we are currently developing our applications in S/4HANA. As we are convinced about this model in my company, we even take this approach productively in several customer projects even though the technology stack is "only" NW 7.50 (meaning Business Suite on HANA) there. The model is based on BOPF (generation by CDS), SAP Gateway and CDS in the Back-End. In the front-end we are focusing on FIORI Elements, but of course not exclusively as there is often the need of freestyle FIORI UIs based on SAPUI5. In case you start a new project in ABAP today (and your NetWeaver release allows it) this is the way, how you should implement the project from my point of view.
ABAP RESTful Programming Model (RAP)
This model was announced at TechEd 2017 and is now rolled out by SAP… that is what the slides, and announcements of SAP tell you. It is generally available, that is correct - but only in a very limited scope right now. ABAP in the cloud (= ABAP PaaS - which is
available for a few weeks now) is based on this model, so it is generally available there – but only there, not in the current On-Premise release. The (SAP) plan is to roll it out in the cloud now, continuously improve and stabilize it over the next releases and bring it (hopefully) to On-Premise with the next release September 2019. However, the current state of the implementation right now is <50% of the model. So even if it will be released in September 2019, it will probably take some time to get yout development team in touch with it and use it productively. Nevertheless, that is the model, which will be the state-of-the-art when it comes to the end of the Business Suite maintenance in 2025 and from my point of view it looks very good (from what you can already see in ABAP Paas). In addition, as SAP invests significantly high effort in the development of the model right now, it really looks that it will last a lot longer than 2025. You probably ask yourself, why this model exists, when there is already the first model in place and available. The major reason is that the first model lacks a few things, which have been investigated over the last years and SAP wants to improve in those points. Besides some general problems like partly in-efficient interaction between the components of the model or ugly un-typed APIs with the BOPF framework the major problem is the lack of support in cases, where the application coding is already available and you want to integrate it. RAP takes the Business Object concept from the first model one-step further and allows you to integrate your current implementation to RAP in 2020 On-Premise (so don't be afraid to start a new project today based on the first model). It introduces new development stuff like new ABAP- and CDS-Keywords, Behaviour Definition and Business Services artifacts and supports three identified major use cases (currently only the first one is implemented in the current ABAP Paas release):
The left side of the picture shows another nice improvement of the model by a clear orchestration of points in time, which can be implemented by the redefinitions of
typed(!) ABAP methods with the concrete names of the points in time (like e.g. finalize() or read()). For further information about the RESTful Programming Model there is documentation already available on help.sap.com - for very comprehensive and well-explained information about model, have a look at the TechEd Sessions CNA215 and CNA216 of Marcel Hermanns, if you have access to them.
Application Programming Model for SAP Cloud Platform
As some developers in the SAP world think that ABAP is not everything, there is a third non-ABAP programming model as well. This model provides a framework of tools, languages, libraries and best practices to create enterprise services and apps via full-stack development. The following picture (sorry for the quality) compares the model to the RESTful model, which we talked about before:
As you can see there are quite a few concepts, which are applicable in both worlds. Especially also CDS plays a big role in this model – it comes in an even more powerful flavor like ABAP CDS, which also support e.g. the definition of entities along with their relationships and a better-compressed way to implement annotations. Besides different programming languages, of course there are also fundamental differences to RAP, like the service-oriented paradigm instead of Business Objects. If you want to learn more about this model I would suggest to take TechEd session CNA221 as a starting point, where several follow-up sessions are referenced to deep-dive into the topic.
SAPUI5 Visual Editor in WebIDE
In case you are already familiar with FIORI Elements, chances are good that you already walked through what we internally call
annotation hell. Annotations are the way to tell the UI, how the data has to be visualized – they can be implemented in the back-end (directly in the CDS view or metadata extension) or in the front-end via local annotation file. The problem is, that the documentation of these annotations is let's call it
improveable and they are far from self-explanatory, at lesat for my colleagues and myself. Therefore, you unfortunately need a lot of initial work to get familiar with them. SAP is now planning to support the developer with a tool to make this ride more comfortable, a visual editor:
According to the preview, a WYSIWYG editor will support you, where you can model the UI. In this way the never-ending loops of
Annotate-Activate-Check-Doesn'tWork-Annotate-Activate… should be gone as you can directly tell the system, how the UI should look like. This will be available for all FIORI Elements, so also Overview Page or Analytical List Page – not only the List Report + Object Page. Just as a sidenote, you might already know the UI Adaption Editor in WebIDE – this Visual Editor is the successor tool of it. The label already changed in the WebIDE, the annotation editor is not available so far. Unfortunately, the sources, when it will be available differ – but it will be in the soon future, as it seems at latest first quarter in 2019.
Considering further FIORI Elements innovations, it can be noted here, that "Customer Extensibility" (>= 1.60) plays a big role with high fidelity code extensions for existing applications without the need to do some modifications in the source application. So this is not the FIORI Elements breakouts, like available right now – it is really about extending an existing app.
Interested in the new style of application programming?
If you are one of the few readers, who made it until here, I assume that you are interested in the new technologies and innovations provided by SAP in general. But as you might be stuck in your concrete project, which might be based on WebDynpro, ABAP Reports or PBO/PAI programming you might ask yourself "Where and how should I start to prepare myself for the future in order to somehow leave this maintenance hell?". As there is a lot to learn, it makes sense to start now to be prepared for the future:
- Start using Eclipse and really start with it right now. Do not plan to do it at some point in the future, when there is time for it. Go to https://www.eclipse.org/downloads/ and get it now. Get it running and install the ABAP Development Tools (ADT). In the ABAP Programming Model you already need it, as CDS is not supported by SAP GUI (SE80) anymore and for the RESTful model there will be Eclipse only. As there is enough stuff to learn considering the mentioned model and the framework behind it in the future, get in touch with Eclipse already right now.
- CDS is the core concept in all of the new programming models. If you get used to it now, you will definitely benefit from it. If you think you already know CDS as you have implemented a few views with it, then you should have a second and third look at it. It is not only about replacing an ABAPSQL statement and maybe adding a calculated field. There are plenty of additional things to learn (like building transactional and analytical models) and to experience (like dealing with performance issues).
- One thing I did not mention yet is testing. Not because it is not important, but because there is no real new stuff which I recognized at TechEd. There are double frameworks existing based on ABAPUnit, which have to be used for automated testing, so if you update your knowledge in this area, this is also not bad idea.
- The BOPF framework is part of the ABAP Programming Model for FIORI. Its concepts are important to understand, as the RESTful Programming Model is also based on Business Objects. As the framework like you know it today won't be part of the RESTful model (there are new artifacts as mentioned) maybe an extremely deep dive to the framework is not needed for the future – but you should make sure to understand the concept in general.
- FIORI Elements should not be underrated. I hardly saw a single application on TechEd, where you cannot identify the FIORI floorplan behind it. It seems like SAP pushes the concept further on, so a good overview on what's existing and what are the possible breakouts doesn't hurt. It is crucial to be able to estimate based on the customer requirement, if you want to build a FIORI Elements application with some breakout or directly build a freestyle SAPUI5 app.
- Considering the RESTful programming model you cannot do too much yet as it is only available in ABAP-PaaS and (at least) at the moment no trail version is existing and the minimum costs are pretty expensive (3000 - 4000€ per month). However, generally there is documentation along with tutorials out there, which can already be checked out.
- Last but not least SAPUI5. I don't have a concrete number in mind, but you can identify that the SAP community is not really crowded by ABAP developers, who already added SAPUI5 to their skill list. You will for sure need those guys and girls in each upcoming project a lot – even if you plan to mainly use FIORI Elements you need someone with deeper knowledge, especially when it comes to breakout scenarios (and it will). Building up knowledge in this area is therefore a very good idea – if you come from the ABAP world don't expect it to be easy (as you will have to change your mindset).
I hope I didn't bore you too much with this long blog. I am quite thankful for the opportunity to participate for the second time now at SAP TechEd. As I think that the information is quite useful to most technology-interested developers in the ABAP area, I decided to make the blog a little more detailed.
Best regards,
Sebastian