The future of SAP application programming according to TechEd 2018
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.
Very Informative blog!!
Boring???! Not at all. Great blog. Nice way to group things. And ideas on what we should focus our training on.
And my addition - SAP does not always do what it plans. Although to miss out on new learning opportunities would be a mistake. I know my current company does not allow Webdynpro. I also noticed that did not make the list. 🙂
I really liked it,
I sincerely hope Web Dynpro is just going to die of natural causes eventually. This is one technology I chose to "sit out" and never regretted the decision. 🙂
Maybe I should have added - I'm glad it didn't make it on the list. It's funny back in the day - that was the latest and greatest.
Did the same
Hi Jelena Perfiljeva,
to be honest I did exactly the same and skipped WebDynpro completely.
As it turns out, this was a lucky decision (at least for the future direction).
I ported an out-dated, complicated .NET application with it! With some help from Thomas Jung blogs back in the day. He was always on the cutting edge! Then he left me for HANA. 🙁 But it was a bit painful at times.
Did the same.
Well done to your company for banning Web Dynpro.
UI5 does not only look better than Web Dynpro (actually anything looks better than Web Dynpro, including a report written using WRITE statements) but the learning curve is a lot less steep.
Hi Paul Hardy,
I think it is always depending on the level of depth which you are planning to reach, when you decide to learn something new. If you talk about the basic concepts to enable yourself to implement something in Java Script, I am with you considering your last sentence.
However, if you want to be one of the guys (or girls) in your projects, which are implementing the Front-End and which are really knowing what they are doing (including weighting up the possibilities how to implement something and not just making it work somehow), I am not sure if I would call this "easier" to learn than the new Back-End implementation. At least from my experience (coming from an ABAP background) it is easier to learn the Back-End. Here ou can leverage a lot of stuff, you already learned (ABAP-OO, SQL, ...). In the Front-End you have to fully change your mindset, if you want to master the journey from "ABAP Developer" to "SAPUI5 expert" (e.g. asynchronous programming and other wild stuff).
I think it is highly dependent on each individual, but I am pretty sure, most ABAP developers will probably adopt faster to the new Back-End technologies than to (skillful) SAPUI5 programming.
It is weird for sure. But not as weird as BOPF in my opinion!
Nice Blog. Thanks for sharing it with the SCN community.
Nice blog !
Really Very Informative, directive how to stay updated in ABAP world.
It was a great speach and i'm really happy to see it in a blog!
Thanks a lot!
Very informative blog!
Good overview, thank you!
Currently, it is not easy to sort out all the different models and technologies.
As SAP In-house consultant there is very limited time available to prepare for all those new fancy things (I like them and it is very interesting, don’t get me wrong).
We still use the business suite with ECC 6 EHP8 (so SAP_ABA Release 7.50) but in the next years, there will be a path towards S/4HANA (on-premise – I guess).
So how would someone use that very limited time to prepare for all that new topics and concepts??
We do not have a separation between Front-End- / Backend-Developers.
Furthermore, we do the “traditional” ABAP developments (Enhancements of all kind, Z-Reports…) in the modules and not in a dedicated ABAP team (which is a good thing from my perspective).
So what is the preferred learning path? How will others do that massive transformation towards all that new stuff??
I for myself do not have a clear personal roadmap or plan how to start that journey and especially I have no clear opinion how the learning sequence of what I wrote above should be.
I am using Eclipse already to develop in our ECC EHP8 system. This journey is started 🙂
Hi Dominik Ritter,
well I tried to outline what to focus on in the last part of the blog, lets see if I can precise this a little.
I understand that there is the idea to not differentiate between Back-End and Front-End developer, therefore we also started our projects with the idea of "everyone should be able to implement in both areas". From my point of view that does not really work out at the beginning and it did in neither of our projects (a handful of developers managed it, but not the big croud).
If you start Back-End for sure you should get familiar with Eclipse and CDS. This is bothabsolute key in the future. The skills in BOPF and OData are important as well, but there you don't have to go into the last level of detail on my opinion, as the RESTful model takes over those concepts, but your implementation will look differentthere (other object types). That's at least how I would start and priorize the journey. If you want to start with Front-End I am the wrong guy to ask (as I am currently also in an early state to build knowledge).
As a sidenote: It is already possible to use the FIORI Programming Model for ABAP before S/4HANA on Business Suite on HANA with EHP 8 (so basically NW 7.50), when you start a new project. We are also doing this in some customer projects productivly. However you have to be aware, that you cannot access all features and some stuff is quite a little buggy, as e.g. the Draft Concept for FIORI Elements (including all of its benefits like locking and so on) is simply not available. For us this was no showstopper, as we absolutely wanted to provide "S/4-like" apps via FIORI Launchpad already on SuiteOnHANA. In case you are stuck in an older project, nevertheless you can get started with Eclipse & ADT.
Very informative! Thanks
Nice job! Very informative!
Just wanted to note that Marcel Hermanns session CNA215 - See the Big Picture of the ABAP RESTful Programming Model was recorded and you can watch it on SAPTechEd online: https://events.sap.com/teched/en/session/41240
For sure worth to watch.
Best session last year!
It was a very informative blog.
My only question is, eventually BOPF will obsolute and CDS with BOPF is taken care of the framework?
Do we have any source/material to learn more on RAP?
to get started with the new RAP model, I can recommend this blog here by Carine Tchoutouo Djomo
Currently RAP is still in the development process, so not all features from the ABAP Programming Model for SAP Fiori are available yet (therefore the known ABAP Programming Model is still known as SAP's Best Practice). But SAP is investing a lot to achieve this.
RAP is already available since 1808 in the ABAP Environment of the SCP (e.g. for side-by-side extensions) and partly available since 1909 in the On-Premise world as well.
I hope this helps you getting started.