Skip to Content
Product Information
Author's profile photo Carine Tchoutouo Djomo

ABAP RESTful Application Programming Model (RAP) – FAQ

Frequently Asked Questions

This document answers the most frequently asked questions around the ABAP RESTful Application Programming Model (RAP) which offers a standardized programming model to efficiently build enterprise OData-based SAP Fiori UI services and Web APIs optimized for SAP HANA in the cloud as well as on-premise. [Get started]

General

When should I use RAP?

RAP supports the efficient development of enterprise SAP Fiori Apps and Web APIs intrinsically optimized for SAP HANA on SAP Business Technology Platform (BTP) ABAP Environment – formerly known as SAP Cloud Platform ABAP Environment – as well as on SAP S/4HANA, regardless of whether you want to start from scratch (greenfield implementations) or reuse existing business logic (brownfield implementations).

You can find more information in the blog Modernization with RAP.

Where is RAP available ?

RAP is available on

Which E2E scenarios are supported?

Following end-to-end scenarios can be developed with RAP:

  • SAP Fiori Apps
  • Web APIs
  • Lifecycle-stable and upgrade-safe local APIs can be provided via released business objects

Which types of services can be developed?

Different types of services can be developed with RAP:

  • OData-based services for exposure for UI development to build delightful, role-based, responsive, and draft-enabled SAP Fiori apps
  • OData-based services for exposure as Web APIs
  • InA-based, analytical services for building analytical apps in SAP Analytics Cloud
  • SQL-based services for data integration

You can find more information in the blog Modernization with RAP.

Advantages of RAP in comparison to previous programming models?

In comparison to the ABAP Programming Model for SAP Fiori or the code-based implementation with SEGW, RAP provides a programming model…

  • … as a strategic long-term solution for ABAP development
  • … for the efficient development of SAP Fiori apps and Web APIs, both from scratch (greenfield implementations) and through the integration of legacy code (brownfield implementations)
  • … offering an end-to-end development experience with
    • Standardized architecture and development flow
    • Native testability, documentability and supportability
    • Best practices & development guides
    • High development efficiency
  • … supporting the product qualities
    • User experience: SAP Fiori and SAP HANA
    • Cloud: Scalability, out-of-the-box extensibility, and verticalization
    • Flexibility: Breakouts for non-standardized implementations

You can find more information in the blog Evolution of the ABAP Programming Model.

Is BOPF part of RAP?

No, the Business Object Process Framework (BOPF) is not part of RAP.

How do I get started with RAP?

The openSAP course “Building Apps with the ABAP RESTful Application Programming Model (RAP)” is a good starting point.

Various getting started materials – such as documentation, videos and tutorials – are provided in the blog Getting Started with ABAP RESTful Application Programming Model.

The local installation of the ABAP Development Tools (ADT) for Eclipse and the access to an appropriate ABAP system (e.g. SAP BTP ABAP Environment trial) are required to carry out hands-on exercises.

Is RAP used in standard SAP software?

Yes.

For example, RAP is heavily used in the SAP S/4HANA development for building new applications (innovations) and renewing existing ones (renovations).

What is on the RAP roadmap?

You can find information about the actual RAP roadmap in the interactive SAP BTP ABAP Environment roadmap in the SAP Road Map Explorer.

Where do I find the latest features for RAP?

New RAP features are delivered on a quarterly basis on SAP BTP ABAP Environment and on a yearly basis on-premise on SAP S/4HANA.

Information about the latest delivered features can be found in the official release notes on the SAP Help Portal or in the Help of the ABAP Development Tools (ADT) for Eclipse.

How do I build an SAP Fiori app with RAP?

You have to first build an OData-based UI service with RAP in the Eclipse-based ABAP Developments Tools (ADT), and then develop a Fiori (elements) application with the SAP Business Application Studio (BAS) on top of it and deploy it either locally on BAS or in the ABAP repository. After you can configure a Fiori tile with the deployed Fiori app in the SAP Fiori launchpad.

You can have a look at following tutorial: Develop and Run SAP Fiori Application With SAP Business Application Studio.

ADT offers the integrated development environment with Eclipse native editors for all the standard ABAP development tasks. ADT also offers an integrated Fiori elements app preview.

Please note that the app generated via the Fiori elements app preview in ADT cannot be used for productive purposes.

Where do I maintain the UI semantics when building SAP Fiori elements apps with RAP?

When building Fiori elements apps with RAP, the UI semantics can be defined using either local XML annotations in the SAP Business Application Studio or ABAP CDS annotations in the backend with ADT. The type of annotation (ABAP CDS and XML) does not impact performance or functionality.

Due to different release cycles, some new UI annotations might be available later in ABAP CDS. For on-premise SAP systems, upgrade cycles can further impact the availability of new features for ABAP CDS annotations.

Where can I get help when defining my Fiori elements app with ABAP CDS annotations?

You can use the new SAP Fiori elements Feature Showcase App for RAP as a technical reference for the available UI features that can be defined with ABAP CDS annotations. Descriptions and code snippets for the different UI features are provided.

You can find more information in this blog post: The SAP Fiori Elements feature showcase with RAP and ABAP CDS annotations

A list of all ABAP CDS annotations (incl. UI annotations) available in the context of RAP can be found here: ABAP CDS Annotations

How do I test my code?

Various software testing techniques can be used to test your RAP service on the ABAP Platform. For example, the test double frameworks – e.g. CDS Test Double Framework and ABAP SQL Test Double Framework –, ABAP Test classes, Test Seams for legacy code and the local OData Client Proxy.

You can find more information on available ABAP testing techniques in the documentation on the SAP Help portal in the RAP Testability Guide and under Ensuring Quality of ABAP CodeEnsuring Quality with ABAP Unit. Also check out the ABAP Testability and Analysis Community on sap.com.

You can also carry out the exercises of following workshop: RAP400 – Writing ABAP Unit Tests for Apps built with RAP on GitHub.

How do I write own documentation for my RAP artefacts?

ABAP Doc is used to provide the documentation for code elements in the ABAP source code.

Knowledge Transfer Documents allow the documentation of various ABAP objects types (e.g. behavior definitions, classes, interfaces, packages, data elements, functions groups, function modules, views, transformations, etc.). They are supported in the cloud on SAP BTP ABAP Environment and on-premise starting with SAP S/4HANA edition 2020.

How do I do troubleshooting?

The well-known ABAP, CDS, and browser troubleshooting tools can be used for the purposes:

  • ABAP Cross Trace
  • Gateway Trace and Error Log
  • ABAP Profiling
  • Dynamic Logpoints
  • ABAP Debugger
  • Error Log
  • ADT Feed Reader
  • CDS Tools like  Data Preview, Dictionary Log, Annotation Propagation, Activation Graph, and Active Annotations
  • Browser’s Debug Console

You can find more information here: Troubleshooting Tools for RAP-based Apps

How do I rapidly build a test or PoC app with RAP?

For developers who are already familiar with RAP, an SAP Community initiative driven by Andre Fischer provides a RAP Generator that can help to rapidly build test and PoC applications by generating the required artefacts (e.g. CDS entities, service binding and service definition).

A first release of the SAP official RAP generator – with limited scope – has been released in ADT for SAP BTP ABAP Environment – Release 2111. RAP artifacts can be generated for an end-to-end transactional application based on a database table using the Generate ABAP Repository Objects wizard.

Migration

Existing code available: How should I proceed ?

For brownfield implementation scenarios, where existing code fulfilling certain prerequisites (e.g. agnostic of protocols and  UI technologies) has to be reused, the so-called unmanaged BO runtime implementations is provided.

You can read more on how to develop unmanaged transactional apps in the documentation on the SAP Help portal.

I’m working on an older ABAP release: How can I be prepared for RAP?

If you are working on SAP S/4HANA releases lower than edition 1909, then check out the blog Be Prepared for the ABAP Programming Model for SAP Fiori to find recommendations in this regard.

The recommendations are also applicable to be prepared for the ABAP RESTful Application Programming Model (RAP) when working on older ABAP platform releases.

How do I reuse existing CDS-based BOPF BOs to build applications with RAP?

SAP plans to offer a new implementation type, the BOPF-managed BO implementation, for the migration and integration of CDS-based BOPF BOs originating from the ABAP Programming Model for SAP Fiori into the RAP framework in the near future.

This implementation type will be offered to customers and partners who have built applications with the ABAP Programming Model for SAP Fiori and would like to safeguard their investments but also take advantage of the benefits offered by RAP. However, a migration of existing, generated, CDS-based BOPF BOs will not be technically mandatory when upgrading to the latest SAP S/4HANA release since the ABAP Programming Model for SAP Fiori will still be supported in the future.

Classic BOPF BOs will not be supported by this implementation.

 

 

 


Last update: April 2022

Assigned Tags

      64 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Srinivas Rao
      Srinivas Rao

      Hi - Thanks for the blog. Since one of the primary reasons to have a new model, is the term "intrinsically optimized for SAP HANA", it would be best to have an in-depth technical explanation for that statement --- so that the developers really understand and accept the learning curve for the new model...

      Author's profile photo Carine Tchoutouo Djomo
      Carine Tchoutouo Djomo
      Blog Post Author

      Hi Srinivas,

      CDS is optimized for SAP HANA and used for advanced data modelling and access on the ABAP Platform. It is the cornerstone of RAP.

      Starting with the release 1809 (i.e. SAP_BASIS 7.53), the ABAP Platform only supports SAP HANA as underlying database which gives us the possibility to fully leverage advanced SAP HANA capabilities such as hierarchies in CDS as well as to further optimize the communication between the application server and SAP HANA DB.

      Kind regards,
      Carine

      Author's profile photo Paul Hardy
      Paul Hardy

      My FAQ is why the name keeps changing. First of all it was RAP standing for "RESTful ABAP Programming Model" and then it was ARP for "ABAP RESTful Programming Model" and now it is RAP again for "ABAP RESTful Application Programming Model"

      What will it be called next week?

      Author's profile photo Aleksandar Mijailovic
      Aleksandar Mijailovic

      Maybe because, SAP likes to confuse us. Similar to On- and Any-Premise ;). I decide to stick to the RAP.

      There is probably a department at SAP, that is responsible for naming things, and they get payed by the amount of names they’ve created 🙂

      Jokes aside, probably the new name is a little bit more meaningful, but who knows.

      Author's profile photo Carine Tchoutouo Djomo
      Carine Tchoutouo Djomo
      Blog Post Author

      Hi Paul,

      Unfortunately product name changes occur even though we strongly try to avoid them – and this does not only apply to RAP.

      Regarding the “ABAP RESTful Application Programming Model” (RAP), aka “ABAP RESTful Programming Model”, no further name change is planned.

      Kind regards,
      Carine

      Author's profile photo Rodrigo Ariel Giner de la Vega
      Rodrigo Ariel Giner de la Vega

      Someone could enlight me regarding why using RAP on-Premise ?  I mean besides being able to later on truly migrate to an ABAP on Cloud instance if wanted.

      Is there any other advantages that I'm not seeing ? because I don't see the point:

      • Is faster ?
      • Can I use the non-white listed functions ?

      Because so far I'm aware of the CONs but I didn't find any PRO.

      Thanks

       

      Author's profile photo Srinivas Rao
      Srinivas Rao

      One of the reason I can think of is : it is intrinsically optimized for SAP HANA....what does this technically mean is what I have also asked as a question in the comments section 🙂 :)..

      Author's profile photo Shai Sinai
      Shai Sinai

      Basically, it should allow more robust (standardized) and faster development.

      Author's profile photo Florian Pinno
      Florian Pinno

      I don't see the CONs only the PROs using a standardized programming model for application development On-Prem, if you are doing new implementations.

      If you have to maintain a huge codebase then adopting the new model might be a little too much. Although theire may even be reasons for that, like supporting drafts in applications or the nice integration of ui preview.

       

       

      Author's profile photo Rodrigo Ariel Giner de la Vega
      Rodrigo Ariel Giner de la Vega

      At one time Webdynpro was supposed to be the standardized programming model for ABAP application development and it was awful and years later not widely used.

      Right now even Fiori is not widely used, the mayority of customer still uses SAP GUI and will keep using it because Fiori is slow in performance and is more aimed for very end user or management people that likes “mobile” stuff.

      SAP changes things so much thing around lately that there is no “standard”, for example BRF+ was the way to accomplish “draft” feature and now you have RAP.

      Besides I know that on ABAP on Cloud you can even uses non-whitelisted function modules... that doesn't sound like a CON ? yeahh when you see the SFLIGHT model all is nice but when you get more complex business scenarios won't be so pretty.

      Author's profile photo Patrick Van Nierop
      Patrick Van Nierop

      Honestly, I’m surprised how easy and fast you can create report-like fiori-solutions from only a couple of CDS’s and a bunch of annotations. I can’t imagine building such report solutions equally fast if you have to create the gateway service and the frontend application through development.

      Ok, the annotations are a whole new world to discover, and keeping track of what-is-available-where isn’t always easy.

      But if I have to create a read only fiori application (in S4H1909+), I’ll check RAP first.

      Also, it is an excellent way for an old-skool-abapper-with-little-to-no-js-skills to make elaborate fiori applications..

      Author's profile photo Rodrigo Ariel Giner de la Vega
      Rodrigo Ariel Giner de la Vega

      if you have a CDS view with ALV-IDA you can literally show the report in just one ABAP line of code, how that is not fast and easy ? just to be in Fiori you have to create so many objects.

      RAP needs to find a more direct way on creating all the overhead of stuff like in SEGW that automatically create all the classes. I would love to spread the Fiori love but so far no luck.

      Author's profile photo Bharat Bajaj
      Bharat Bajaj

      Hi Carine Tchoutouo Djomo

      Thanks for sharing the FAQ and I am happy that SAP came up with the OpenSAP course on ABAP RAP.

      Although, about this statement in the advantage section :

      ...as a strategic long-term solution for ABAP development

      My question is : how do you define the "long-term"? 

      Is it supposed by the strategic solution for decades, without a new successor in near future?

      The way SAP is replacing its own products and platforms with something new every year, I fear RAP will soon be replaced by something new.

      Hope you could enlighten me.

      Regards,

      Bharat Bajaj

      Author's profile photo Rodrigo Ariel Giner de la Vega
      Rodrigo Ariel Giner de la Vega

      I totally agree with you, SAP is changing so fast stuff around...

      Neo > no more NEO, now Cloud Foundry

      Web IDE > Web IDE Full Stack > Business Application

      Honestly I don't see the point in ABAP on Cloud, it's like look we also have a cloud option. There is no way to migrate old stufff and for new in the cloud... why I would choose RAP over CAP.

       

      Author's profile photo Bharat Bajaj
      Bharat Bajaj

      I agree with you Rodrigo,

      Let me update your list.

      Eclipse > Web IDE Personal > Web IDE Full Stack > Business Application Studio > VS Code with Fiori Tools.

      As of today, No eclipse, No Web IDE full-stack >> After a few years, No BAS or VS Code I suppose.. this is so perpetual.?

      Now Talking about ABAP :

      ABAP -> ABAP WebDynPro -> ABAP for HANA -> CDS -> ABAP for Fiori with BOPF -> ABAP RAP with BOPF Future edition

      It’s too much to learn and unlearn at the same pace for a human being.?

      Author's profile photo Aleksandar Mijailovic
      Aleksandar Mijailovic

      you've forgot the SE80 🙂

       

      For some time, I've raised the question, why it is not possible to "make one for all".

      • For RAP/ ABAP based CDS-Views and HANA Native development, authorizations etc., you have to, and for usual GUI-programming, you can use Eclipse/Hana Studio (or the Hana Cockpit for HANA e.g.)
      • For Fiori-UI: Eclipse is possible, WEB IDE Full-Stack, Visual Studio Code and now BAS, basically SAP's version of VSCode, based on Eclipse THEIA
      • For Java/Node.JS/CAP: WEB IDE Full-Stack, VSCode and BAS
      • For ABAP in the Cloud (c.f. RAP): Eclipse

      Question: since BAS is also based on some Eclipse "derivative", why not providing ADT for it? It would provide then that we can concentrate on one IDE, rather than 2-3. It would make life easier...

       

      I've raised the question many times and the answer was just "no, we don't do that". 🙂

      I would be interested in the considerations/reasons, why this is not considered as a value add.

       

      Thx & BR

      Aleks

       

      BR,

      Aleks

      Author's profile photo Carine Tchoutouo Djomo
      Carine Tchoutouo Djomo
      Blog Post Author

      Hi Barat,

      RAP is the recommended programming model to build SAP Fiori apps and Web APIs on SAP’s strategic solutions such as SAP S/4HANA and SAP Cloud Platform ABAP Environment – regardless whether you start from scratch or reuse existing code. Therefore is RAP positioned as our long-term solution.

      No successor to RAP is planned on our roadmap.

      Kind regards,
      Carine

      Author's profile photo Thomas Keller
      Thomas Keller

      Hello Carine,

      thanks for this blog (and for the openSAP course on RAP - that is perfectly timed for me:-) ).

      When playing around based on the SAP Press book, I encountered these (basic) questions - can you help here ?

      1. I understood that CDS views are regularly associated with each other (e.g. a document header to a document item CDS view and also that document item back to the document header). Wouldn't a transport (e.g. from DEV to QA system) fail because there is no valid order of activating these objects ?
      2. Using the ABAP cloud trial instance, I got errors on some annotations (@VDM_viewtype, @DefaultAggregation,@Semantics.imageurl). Is there a list of valid annotations by Netweaver/Cloud release ? Can you think of anything else I did wrong there ?

      Thanks you very much !

      Regards, Thomas.

      Author's profile photo Aleksandar Mijailovic
      Aleksandar Mijailovic

      Hi Thomas,

       

      to question 1) if you assign all those objects to one transport, it should be fine.

       

      BR, Aleks

      Author's profile photo Carine Tchoutouo Djomo
      Carine Tchoutouo Djomo
      Blog Post Author

      Hello Thomas,

      Thank you for the feedback! Appreciate it a lot.

      Regarding your questions:

      1. This shouldn’t be a problem if the dependent entities are transported together.
      2. You can find a list of the CDS annotations supported in ABAP CDS in the documentation on the SAP Help Portal: Cloud | On-Premise

      Kind regards,
      Carine

      Author's profile photo Aleksandar Mijailovic
      Aleksandar Mijailovic

      book-marked these links!

      Author's profile photo RON SARGEANT
      RON SARGEANT

      Hi Thomas,

      I came across the same thought when using BTP trial, but this is not a new thing. Classic DDIC also has this chicken-egg problem with some objects cross-associating. In general that is solved by mass activation, and in the case of transports they were generally sorted into a sensible activation order, i.e. domains before data elements before tables before programs...etc and also activated en masse. Sometimes there could be a failure but reprocessing the transport would finally activate any inactive failures, assuming that everything required was in the transport and the objects were logically valid.

      Regards

       

      Ron.

      Author's profile photo SRINIVASULU BESTA
      SRINIVASULU BESTA

      HI Carine,

       

      Thanks for your wonderful blog and providing us the FAQ’s with detailed explanation.

       

      Regards,

      Srinivas

      Author's profile photo Carine Tchoutouo Djomo
      Carine Tchoutouo Djomo
      Blog Post Author

      Hi Srinivasulu,

      You’re welcome!

      Kind regards,
        Carine

      Author's profile photo Bharat Bajaj
      Bharat Bajaj

      Why there was a need to invent RAP, when it is almost a successor of BOPF.

      I believe this whole RAP and EML thing could have been achieved by the BOPF APIs as well, of course changing it’s flavor a bit to meet the cloud requirements.

      Adversely, someone with years of experience in ABAP on-premise suddenly becomes a beginner for the cloud edition.

      In the pursuit of so-called "innovations" for a challenging and competitive market, SAP is replacing its own products and platforms way too frequently.

      This is too much to handle at once.

       

      Author's profile photo Andre Fischer
      Andre Fischer

      Hi Bharat,

      Let me comment on two misconceptions.

      RAP is not only about cloud.

      As of SAP S/4HANA 1909 RAP is available for unmanaged scenarios and with SAP S/4HANA 2020 RAP also supports managed scenarios and draft.

      So as of SAP S/4HANA 2020 you can concentrate on RAP.

      The decision to develop the new RAP framework instead of further developing the existing BOPF framework was made after a thorough analysis of the requirements for cloud based applications.

      Best regards,

      Andre

      Author's profile photo Bharat Bajaj
      Bharat Bajaj

      Hi Andre,

      First, I must thank you for 2 things:

      1. The lightning-fast response to my question about the thought process of SAP behind RAP.
      2. You awesome tutorials, in ABAP RAP OpenSAP Course - Week 4(current).

      Now, the problem of hardcore ABAPer like me is, the majority of the customers are still on ECC. Even for S4/HANA, they not yet on the 2020 version.

      Today if I wish to work for a customer for S/4HANA cloud implementation, it's a whole new learning path for me, before I could get going.

      Moreover, this adds complexity in designing solutions in On-prem edition, when it comes to choosing between, Classical ABAP, ABAP for Fiori with BOPF, Freestyle UI5, or now this latest candidate - the ABAP RAP.

      It's like SAP is serving too many dishes on the table like a buffet, and we are bound to grow the apetite to grab it all ?

      Regards,

      Bharat

      Author's profile photo Patrick Van Nierop
      Patrick Van Nierop

      Hey Bharat,

      SAP is evolving, and the SAP developer now is no longer the ABAP developer as we knew it. A decade ago an SAP developer was an ABAP developer, but now ABAP is only a part of the technologies SAP offers/uses/..

      Personally, I think the step from ABAP to ABAP-in-the-cloud is smaller then ABAP to CAP M for instance. And with Fiori Elements and RAP, you no longer have to know UI5 or js to make a decent Fiori application..

      So yes, there is a learning curve. And yes it might even be steep, but it seems SAP is investing a lot to give us ABAP-ers the chance to wake up, smell the music, and prepare for what is to come.

      Cheers,

      Patrick

       

       

      Author's profile photo Aleksandar Mijailovic
      Aleksandar Mijailovic

      Patrick,

       

      you are right. Technology, the market, the "world"...everything is changing, and SAP has to adopt. Though, I am not their advocate 😉

      The days when one could solely rely on one language (anyhow, never existed for me) are over. As you pointed out, RAP is a good "bridging the knowledge gap" for ABAPers, that have the requirement to build CRUD-Q enabled Fiori-UIs. And in generall, a speed up and decrease of the TCO for building good looking, stable "enterprise grade" Fiori-Apps. When I remember the time how much did it take to build an app from scratch using Eclipse, without any templates (ok, you could copy & paste existing source-code, make here and there some adjustments), and when I first tried out WEB IDE F.S. (R.I.P. :)) and its templates... wow, what a speed up. And when Fiori-Elements become stronger and stronger... even more.

       

      Anyhow, enjoy coding!

       

      Author's profile photo Andre Fischer
      Andre Fischer

      and we plan to provide tools that make the development of a RAP BO even faster ;-), so stay tuned.

      For the meantime (until the enhanced ADT tooling becomes available) you can have a look at my RAP Generator to generate a starter project.

      Best regards,

      Andre

       

      Author's profile photo Aleksandar Mijailovic
      Aleksandar Mijailovic

      thank you! RAP Generator is a nice and handy tool 😉

       

      BR,

      Aleks

      Author's profile photo Aleksandar Mijailovic
      Aleksandar Mijailovic

      Dear Bharat,

      Dear Andre,

       

      I would also like to thank Andre for this quick response.

       

      From my point of view:

      • RAP is good and much faster especially when serving Fiori-Elements Apps, compared to free-style apps. Boundaries/Limitations for this approach are especially given by boandaries/Limitations of Fiori-Elements.
      • Comparing RAP to APF: I like RAP more, although they share much in common. In APF, I always came into trouble by setting up the correct hierarchy and where to put transactionalProcessing enabled and what is handled where and to not forget to go from the child to the parent etc. and all the other annotations. Sure, you have basically the analogue things here, but, at least is this my impression, not so heavy-weighted and everything using annotations for creation of the BOPF. It is just more "clear" and slim, structured, ..and you achieve the same things
      • Managed/Un-managed/Real-world use cases:
        • so far, as Andre already pointed out, for the On-Premise World, you have to be on S4H 2020 for the managed flavour.
        • Un-managed is already possible with 1909
        • personally, I expect anyhow that the un-manage flavor will be more used, for OnPrem, as it provides a way to use existing and released BAPI's.
        • Maybe, there will be also something "in between" planned for the future.
      • Complexity: Yes, you are right! Today, one could encounter requirements in the same project,
        • e.g. where you need to enhance  SAP Standard application that are being build using SEGW & DPC_EXT & SAPUI5
        • Apps that are partially build using SEGW but make use of CDS-Views, and here you also have different flavours
        • apps, build without SEGW, "OData.publish: true", with or without further UI-annotations
        • Coming slowly towards APF, those that are build using this approach
        • create new apps using RAP
        • or even, you get the requirement that you build good old SAPGUI Screens (as happened to me, in an S/4Hana 1909 Roll-Out!!)
        • -> All of these things could you encounter today. This is not an easy (tansition) period for developers, solution architects...

      Good luck!

       

      BR,

      Aleks

      Author's profile photo Brendan Farthing
      Brendan Farthing

      Hi Carine Tchoutouo Djomo

      Thanks for this post and also for your contributions to the current RAP OpenSAP course, it’s very good.

      I have a couple of topics related to RAP which I am interested in some feedback on.

       

      RAP with freestyle Fiori/UI5 apps

      All of the Fiori/UI5 examples with RAP that I have seen so far are using Fiori Elements. This is great, but at our company we very often need to build Fiori UI5 freestyle applications for desktop or mobile.

      Are all of the RAP features fully supported in freestyle UI5 Fiori apps? in particular I’m interested to know if the RAP/CDS optimistic and pessimistic locking mechanisms are supported, incl with ETags. And is the Draft functionality fully supported? I'm assuming they are as this is related to the OData Service/CDS itself, but my question is more around integration of that into UI5.

      If the RAP locking and Drafts are fully supported, are there specific UI5 API functions to handle this which we should use in our UI5 code? Note that I didn’t look into Fiori Elements generated UI5 code yet to see what it’s doing.

       

      RAP vs CAP

      We are also trying to evaluate whether we focus on RAP or CAP for SAP Cloud development at our company. Before too long we will have multiple S/4 systems (all will be on-premise due to very heavy modifications over 25 years to include functionality needed by our business that isn’t available in standard SAP). During that transition we will also have ECC systems until they all move to S/4. We have also been running SAP Cloud for 3 years now with traditional UI5 apps calling on-premise ABAP systems via OData.

      Most of our developers are pure ABAP developers, especially when it comes to CDS and OData Service development. We have UI5 developers as well. In future we will need to build some standalone or side-by-side applications running in SAP Cloud using SCP HANA DB. These cloud apps may also also have some OData calls within them to on-premise S/4 or ECC, but the core business logic will be in SAP Cloud.

      We are trying to determine if RAP or CAP is a better long term approach for our development team for apps running in SAP Cloud (assume cost of the SAP Cloud ABAP instances is not a problem for the sake of this discussion, although it’s clearly a determining factor). Seems that RAP is the most common sense approach for apps running on SAP Cloud. That way the ABAP CDS/OData Service developers will have the exact same language, tools and processes for RAP development for on-premise S/4 and in SAP Cloud. Both will use Eclipse ADT in exactly the same way.

      But I wonder if there any limitations in RAP for the ABAP on SAP Cloud Fiori/UI5 scenario versus CAP? Or vice versa. I’m wondering if the ABAP language on SAP Cloud may give us any limitations vs Javascript via Node.js when building cloud native standalone apps? It also seems that interacting with the HANA DB at development time is easier and more integrated in RAP with Eclipse ADT vs CAP in Business Application Studio, am I right?

      One thing that is also unclear to us which I dont think is documented anywhere is the exact list of language and class/function differences/limitations in SAP Cloud ABAP (Steampunk) vs on-premise S/4 2020 ABAP.

       

      Thanks in advance,

      Brendan

       

       

       

      Author's profile photo Carine Tchoutouo Djomo
      Carine Tchoutouo Djomo
      Blog Post Author

      Hello Brendan,

      Thank you very much for the feedback!

      Regarding your questions:

      RAP with freestyle Fiori/UI5 apps
      I will clarify this question with our UI colleagues – and get back to you ASAP.

      RAP VS CAP
      Unfortunately, a general recommendation cannot be made here, as the decision is always project-specific. RAP is available on SAP Cloud Platform and also on SAP S/4HANA 1909 and higher.

      We do not have a comparison of the functional scope of both programming models, but you can have a look at the feature scope of RAP and the ABAP Language on SAP Cloud Platform in the online documentation on the SAP Help portal:

      You can access the online documentation for the SAP S/4HANA on-premise edition here:

      ADT provides the eclipse-based IDE for developing OData services with RAP - and for all ABAP development for SAP HANA in general.

      You can find further info on RAP here: https://community.sap.com/topics/cloud-platform-abap-environment/rap-opensap

      Kind regards,
      Carine

      Author's profile photo Andreas Kunz
      Andreas Kunz

      Hi Brendan,

      let me try to shed some light on the UI5 freestyle part.

      While certainly all the Draft- and locking-related things can be implemented in UI5 freestyle - after all Fiori Elements is just a layer on top - there is no specific support and no related set of UI5 APIs, so it's not going to be some work, but also some figuring-out. Most of the related code is in the Fiori Elements layer and while there are isolated modules/controllers at least in the OData V4 version which may or may not in some future be usable standalone in freestyle apps (I don't know the exact plans of that area), there is nothing like this right now.

      Some colleagues and I have recently published a UI5 freestyle sample app using Draft mode (https://github.com/SAP-samples/ui5-cap-event-app) which was build after talking to experts in CAP and the UI5 models team, so if you want to go that route, you might find the code and the documentation helpful that we wrote to explain the code, especially the parts around the Draft handling which was pretty much the focus of our attention: https://github.com/SAP-samples/ui5-cap-event-app/blob/main/docs/documentation.md#The-Heart-of-the-App-the-Registration-Controller

      We can't guarantee that the code is perfect, but as it's working and contains expert knowledge, it should be a good starting point.

      Regards

      Andreas

       

      Author's profile photo Shai Sinai
      Shai Sinai

      Thanks for the update.

      It's a shame that official API for draft in UI5 freestyle isn't in the roadmap.

      Author's profile photo Tanmoy Mondal
      Tanmoy Mondal

      Hi Catherine,

      Thank you for the excellent training on RAP in Open SAP. Below is the screen-shot from Business Technology Platform showing the entitlements - SAP HANA Cloud. I think the RAP model will also work here too  - Is that understanding correct ? Can you please confirm?

       

      All the best,

      Tanmoy

       

      Author's profile photo Carine Tchoutouo Djomo
      Carine Tchoutouo Djomo
      Blog Post Author

      Hi Tanmoy,

      Thank you for the feedback. Appreciate it.

      RAP is available on SAP BTP ABAP environment and on SAP S/4HANA 1909 and higher.

      In case you want to work on SAP BTP trial, then please create an ABAP Environment trial - if not yet the case.

      Step-by-step instructions on how to do that are available here: https://developers.sap.com/tutorials/abap-environment-trial-onboarding.html

      Edit: Here are additional links on RAP:

      Hope this helps you further.

      Kind regards,

      Carine

      Author's profile photo Denis Galand
      Denis Galand

      I have a question about deploying a RAP service to a Fiori Launchpad on premise, do we need to wrap the OData to a Fiori template in Web Ide or BAS, or can we use the OData Web api in a tile.

      What would be the best approach?

      Author's profile photo Aleksandar Mijailovic
      Aleksandar Mijailovic

      Hi Denis,

       

      to what are you exactly referring or what do you want to do? Do you want to have only the service as an API, then you don’t have to.

      But for an app, up to my last info/knowledge, you would definitely have to use fiori elements template (either WEB IDE or BAS, but the deployment with BAS to On-Premise can be buggy sometimes). The generated Preview-App is not usable to wrap it into a file. Though, I am not sure if this may not change in time and if not, why not.

      something related to this is the possibility od UI-Generation with the custom business objects app. For S4H-Cloud (and maybe newer on premise systems), you do not need an IDE to get an Fiori-Elements app. Why for RAP it is still necessarily required to have an separate IDE, i don’t see the reason.

      Author's profile photo Denis Galand
      Denis Galand

      Yes I wonder if we can, or is it planned to be able to consume a RAP service with it's ui inside a fiori launchpad directly, without an additional IDE, I have followed the Open SAP course but afair I don't recall we have talked about consuming RAP into the Fiori Launchpad

      Author's profile photo Carine Tchoutouo Djomo
      Carine Tchoutouo Djomo
      Blog Post Author

      Hi Denis,

      We only offer a Fiori elements App preview in ADT. The openSAP course focused on the back-end implementation. The proper SAP Fiori elements application need to be created on top of the OData service using the SAP Fiori tools.

      You can have a look at following tutorial for the purpose: Develop and Run SAP Fiori Application With SAP Business Application Studio

      Additional RAP related info can be found here.

      Hope this helps.

      Kind regards,
      Carine

      Author's profile photo Attila Berencsi
      Attila Berencsi

      Hi Carine Carine Tchoutouo Djomo,

      it is mentioned that RAP can be used on S/4HANA as well. There are several options under S/4HANA. At the moment 4-5 options. Can be RAP used in

      1. SAP S/4HANA Cloud: previously called essentials edition (ES) and Multi-Tenant Edition ?
      2. SAP S/4HANA Cloud extended edition: previously called Single-Tenant Edition ?
      3. SAP S/4HANA Cloud, private edition (new in 2021) ?
      4. SAP S/4HANA On-Premise managed by SAP (HEC) ? (Probably no additional setup required, should be OK)
      5. SAP S/4HANA On-Premise: On-Premise or managed by cloud provider Hyperscalers (Here no additional setup required OK)

      In which case is needed a separate ABAP environment in the cloud to be activated or licenced for side-by-side extensibility of S/4HANA Cloud editions for the customer to be able to connect with ADT and implement applications?

      Thank you,Attila

      Author's profile photo Carine Tchoutouo Djomo
      Carine Tchoutouo Djomo
      Blog Post Author

      Hi Attila,

      RAP can be used in all SAP S/4HANA deployments where the classic extensibility option – i.e. ABAP custom development with the ABAP Development Tools in Eclipse – is supported. This is the case today for all SAP S/4HANA deployment options* you mentioned, exception being the option 1 - SAP S/4HANA Cloud: previously called essentials edition (ES) and Multi-Tenant Edition.

      *On-premise starting with SAP S/4HANA edition 1909

      Kind regards,
        Carine

      Author's profile photo Attila Berencsi
      Attila Berencsi

      Hi Carine,

      thanks for the clarification.
      have a nice day.

      Attila

      Author's profile photo David Sun
      David Sun

      Hi Carine

      Thanks for the blog.

      I have a question about the "UI annotation", do we have any plan to enhance the UI annotation to make it more strong and flexible, this part didn't mentioned in road map.

      Author's profile photo Venkata Subba Raju Elluru
      Venkata Subba Raju Elluru

      Hi Carine

      1. How to handle attachments in RAP?
      2. Is it possible to trigger workflow on RAP behavior implementation?
      Author's profile photo Aleksandar Mijailovic
      Aleksandar Mijailovic

      There was a similar question, some while ago, and the answer was "it is in the road map"...

      Here, there was an answer referring to the attachment service as an alternative.

      Maybe one could introduce an annotation for the cds view entity stating that it is a media-type.. Curious about the answer!

      BR,

      Aleks

      Author's profile photo Ross Goodman
      Ross Goodman

      Could I get clarification on this statement:-

       

      You have to first build your RAP UI service with the ABAP Developments Tools (ADT) for Eclipse, then develop the application with the SAP Business Application Studio on top of it.

       

      In relation to having RAP on premise in Hana 2020. To develop a new fiori app and deploy it to the launchpad in this on-premise situation do I need to go anywhere near BAS with the RAP UI Service created ?

      Author's profile photo Andre Fischer
      Andre Fischer

      As Aleksandar wrote, in order to develop / generate a SAP FIori Application on top of an OData Service built with the ABAP RESTful Application Programming Model (RAP) you have to use either Business Application Studio of Visual Studio Code. SAP Web IDE should not be used anymore since it has been deprecated.

      With either BAS or Visual Studio Code you can use SAP Fiori Elements to simply generate an SAP Fiori Application without the need to write any line of code. For scenarios where SAP Fiori Elements is not sufficient (even not without the use of extensions) you can still develop SAP Fiori Applications in a code based approach.

      The term "RAP UI service" is maybe a little bit misleading. I assume you refer to this term from the so service bindings that are either deonted as "OData V2 - UI" and "OData V4 - UI". These bindings contain UI annotations used by SAP Fiori Elements applications whereas "OData V2 - API" and "OData V4 - API" service bindings do not contain UI releated annotations since these are to be used as API's.

      Kind regards,

      Andre

      In

      Author's profile photo Carine Tchoutouo Djomo
      Carine Tchoutouo Djomo
      Blog Post Author

      Hi Ross,

      Additional Information:

      SAP BAS offers the possibility to deploy the developed SAP Fiori UIs into a SAP S/4HANA on-premise system.  
      You can have a look at following tutorial: Develop and Run SAP Fiori Application With SAP Business Application Studio

      Kind regards,
      Carine

      Author's profile photo Aleksandar Mijailovic
      Aleksandar Mijailovic

      Hi Ross,

      good question! even in S/4Hana 2020 on-prem, you need an IDE for the UI part of the "RAP-medal". So what you do is to develope the CDS-View, Projection, Behavio Definition etc. Service Definition / Binding etc., enrich what you like with annotations (also UI-annotations for the Fiori Elements to work), using eclipse, and then, you could preview the app using eclipse but it does not generate (at least as for now) anything that you could deploy or use permanently. You need still an IDE to generate the "permanent" Version of the app, using either BAS or WEB IDE.

       

      But, in a different context, in Extensibility for S/4Hana Cloud, there is already (since a few years) the possibility, to have a UI generation for custom CDS Views / Custom Objects, without the need of either BAS or WEB IDE. So not sure what the road map is at the end.

       

      I hope it became a little bit more clear to you.

      BR, Aleks

      Author's profile photo Andre Fischer
      Andre Fischer

      Hi Aleksandar,

      the UI generation for custom CDS is part of the Key User Tools in SAP S/4HANA. These have been made available to allow for developing very basic applications in SAP S/4HANA Cloud Systems so that one gets "in app extensibility" where you so far have no option to develop "real" applications using ABAP. Key User tools are also available for SAP S/4HANA on premise.

      The SAP Fiori UI's based on these simple OData services are automatically generated and deployed in your SAP S/4HANA system either on premise or in the cloud.

      The Key User Extensibility Tools of S/4 HANA | SAP Blogs

      But this is not "real" development as you know it from the development of OData services based on the ABAP RESTful Application Programming Model (RAP) which is currently only available in SAP S/4HANA on premise systems but not in SAP S/4HANA cloud systems.

      As you can read in Harald Kucks blog post Steampunk is going all-in | SAP Blogs we will see Embedded Steampunk to overcome this technical restrictions in future releases. As Harald wrote, stay tuned for more infos at SAP TechED 2021!.

      Kind regards,

      Andre

       

      Author's profile photo Aleksandar Mijailovic
      Aleksandar Mijailovic

      Hello Andre,

       

      thank you for your reply. I was not sure if this feature was made available also for on-prem, knew it only for Public Cloud or Cloud Essentials. Though, if we touch this topic of "Key-User Custom CDS", I was/am wondering if the artefacts that are generated underneath, are as of today, following ABAP RESTful or APF/BOPF? Before a year when I was curious and checked the last time, the objects (CDS-Views etc.) that were generated in this way, seemed to follow BOPF (ObjectModel Annotations etc)

       

      Thx & have a nice weekend so far!

      BR Aleks

      Author's profile photo Andre Fischer
      Andre Fischer

      The code that is generated by the key user tools is still based on BOPF. But that doesn't matter right now since on SAP S/4HANA Cloud you cannot create your own ABAP code.

      It will become more interesting once you will be able to program in ABAP using the embedded Steampunk option.

      Author's profile photo Aleksandar Mijailovic
      Aleksandar Mijailovic

      looking forward to explore this feature when finally available 😉

      cheers!

      Author's profile photo Sadashiv Nayak
      Sadashiv Nayak

      We have developed a Service using the RAP model: ODATA V4 (API). To cover the Service ABAP units do we have any example or document which can guide me?

      Author's profile photo Arti Nair
      Arti Nair

      Hi Carine Carine Tchoutouo Djomo,

      Thanks for the blog .

      I was curious to know whether I can create Fiori Application on SAP Webide Personal Edition (Productive ) using service created from ABAP RAP Model ?

      Author's profile photo Aleksandar Mijailovic
      Aleksandar Mijailovic

      Hi Arathy,

      even if the question is for Carine, let me allow to try to answer:

      • in the most common scenario, you will create with RAP an OData-Service with Annotations that can be interpreted by the Fiori Elements type of apps
      • With WEB IDE (and BAS), you can create Fiori Elements apps
      • so, it is irrespective if the OData-Service was created using RAP, BOPF/APF, SEGW... for the IDE to create the App.
      • This is not only true for Fiori Elements apps. You can also create "SAPUI5" apps (both are SAPUI5, but the latter you do not write it by yourself), with full CRUD-Q functionality, that use the CRUD-Q methods of the OData-Service. Why is that? Because this is the whole idea about using OData, and separating the concerns. From the app coming, you do not care how the OData-Service was implemented.

      I hope I could elaaborate this a bit.. .

       

      BR,

      Aleks

      Author's profile photo B@lu .
      B@lu .

      hi  Carine Tchoutouo Djomo,

      How to find which SAP standard Apps where were implemented by using ABAP RAP Programming

      Model?  it will be helpful while developing custom Apps using RP model  by referring SAP Standard

      Apps.

       

      Regards,

      B@lu.

      Author's profile photo Aleksandar Mijailovic
      Aleksandar Mijailovic

      Hi B@lu,

       

      one option would be, looking for Service definitions involving "RAP" objects/artefacts.

       

      Object type description
      SRVD Service Definition
      SRVB Service Binding
      BDEF Behaviour Definition
      IWVB Vocabolary Annotation
      IWOM Model Metadata

       

      So, going to SE16N -> Table TADIR, when you check for R3TR and for object type one of these categories, you might at least find the OData-Services built in that way. So, when you have the services, you can start looking for the Fiori apps that are using those services. The information is usually maintained in the manifest.json. I am not aware if there is a report that can provide you the information in a nice way, but something should be possible as also PFCG identifies the OData-Services associated to a app contained in a cataloge, e.g. extracting the information through manifest.json, so there could be something that could be exploited.

       

      Otherwise, checking Fiori library for extracted RAP OData-Services.

       

      Hope that helps,

      BR Aleks

      Author's profile photo Orhan Er
      Orhan Er

      Hello,

      I have a question and I couldn't solve it.

      orginal Question is here: https://answers.sap.com/questions/13752962/zugriff-rap-cds-verhaltensklassenimplementierungen.html

      I have a backend application with RAP that includes CDSs, CDs view, CDS Projection, Service definition, Service Binding and CDS-Behaviour and CDS-Behviour Implementation Classes. With this, a connection to a room in fiori UI is already implemented automatically.

      I can also access this backend RAP from a fiori UI application with SAP BAS (Business Application Studio).

      Problem: I want to be able to access this backend RAP from a SAPUI5 (not fiori UI) application with SAP BAS(Business Application Studio). But unfortunately I can't find it.

      Here's what I want to do: I can't stay flexible and free with Fiori. I want to implement my own UI with SAPUI5 and I want to reach the backend (I want to use RAP - CDS Behavior Implementation Classes) with a button, for example.

      In summary (just like the "-action" logic in Fiori) I want to reach the Behaviour-Class in RAP with a button in SAPUI5.

      I couldn't find any source. How can I do that?

      Orhan

      Author's profile photo Carine Tchoutouo Djomo
      Carine Tchoutouo Djomo
      Blog Post Author

      Hi Orhan,

      Thank you for your question.

      Could you please post your question in the "Ask a question" section (https://answers.sap.com/) and tag it with the appropriate SAP-managed tags (e.g. SAP Business Application Studio, ABAP RESTful Application Programming Model, SAPUI5, SAP Fiori, etc...), and then paste the link here?

      This way experts from the different areas, especially SAP BAS and SAPUI5, can help you.

      Kind regards,
      Carine

      Author's profile photo Orhan Er
      Orhan Er

      Danke Carine.

      Orhan