Skip to Content

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

 

 

To report this post you need to login first.

18 Comments

You must be Logged on to comment or reply to a post.

  1. Michelle Crapo

    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,

    Michelle

    (2) 
    1. Jelena Perfiljeva

      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. 🙂

       

      (5) 
    2. Paul Hardy

      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.

      Isn’t that ironic? It is easier to learn a whole new language (JavaScript) than to learn to use something which purports to be in ABAP!

       

      (2) 
      1. Sebastian Freilinger-Huber
        Post author

        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.

        Best regards,

        Sebastian

        (0) 
        1. Chaouki AKIR

          hello Sebastian,

           

          You are writing about “the new Back-End technologies”, what are they ? Only CDS ? Use of Eclipse and ADT ?

           

          PS: I am a classical back-end ABAP developer (coming from COBOL) with a scientific background (no knowledge on web languages).

          Chaouki

           

          (0) 
  2. Dominik Ritter

    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??

    • start learning JavaScript?
    • then have a look at SAP FIORI / SAP UI5?
    • before that learn CDS?
    • then there is ODATA…
    • what about REST-Services?
    • and what about BOPF?
    • etc. etc.

    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 🙂

    Any suggestions?

    (0) 
    1. Sebastian Freilinger-Huber
      Post author

      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).

      I think, you have to focus on something to learn and it is simply not possible to become a serious expert in CDS (including knowing all performance traps and so on) and in the same time in SAPUI5 (especially with no JavaScript knowledge), if you cannot spend your whole time on learning for several weeks/months. When you start a new project, you should deliver pretty fast some content, so you don’t have too much time to update your skills. If you want to do this before you start the project you are probably stuck in your old project, where you also have no (or limited) time to learn. On my opinion it is already a challenge to get to serious knowledge quickly in Back-End or Front-End as there is really a lot to learn in both. So I would say, you should focus on one of both at the begin and try to build knowledge in the other one in the running project from your colleagues (e.g. via knowledge transfer sessions or pair programming), who focused at the begin on the other side.

      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.

      Best regards,

      Sebastian

       

       

      (1) 

Leave a Reply