Skip to Content
Technical Articles
Author's profile photo Milton Chandradas

Exploring ABAP RESTful Application Programming Model (RAP)

GitHub repository:

To be published soon…



  • In this series, we will explore the new ABAP RESTful Application Programming Model (RAP)
  • Quick introduction to ABAP RESTful Application Programming Model (RAP)
  • Create an end-to-end example to illustrate the various features present in the RAP model



  • In this series, we will start with creating a base table
  • We will then create interface and consumption views on top of it
  • Then add metadata extensions for the Fiori Element app
  • Then define the Business Object and its behavior and also the implementation
  • Then we will project the Business Object behavior
  • And then create a service definition and service binding (with various protocols)
  • Finally, we will add draft handling feature


YouTube Link:











  • These series of videos should give you a clear idea on how to use the ABAP RESTful Application Programming Model (RAP)
  • If you have questions or comments, please list them below and I will be happy to answer



Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Ramil Babayev
      Ramil Babayev

      Dear Milton these series very helpful for understanding  ABAP RESTful Programming Model. Can you show for us in next series Fiori App development using ABAP RAP, Fiori Elements and local VS Code studio? It mean that without using any cloud solution. Only Eclipse for backend and VS Code for frontend?

      Author's profile photo Milton Chandradas
      Milton Chandradas
      Blog Post Author

      I am not exactly sure of your question...  The OData Service (web api) created by the RAP model is UI framework agnostic (and by extension, IDE agnostic as well).  You can use your favorite UI framework to build the UI application - for example, SAPUI5, React, Angular etc.  And of course, you can use your own IDE - Visual Studio Code being the more popular IDE.


      When you say without any cloud solution - I am going to assume, you mean not use SAP S/4HANA Cloud.  RAP model can also be used with SAP S/4HANA 1909 or higher (On-Premise).

      Author's profile photo Ramil Babayev
      Ramil Babayev

      Dear Milton thanks for quick response. As I know for development Fiori interface in On-Premise (S/4HANA 1909 or S/4HANA 2020) developers are using SAP Business Application Studio. This is a Cloud Solution and Developers have to always connect to cloud for developing. I mean that can I use VS Code instead of SAP Business Application Studio and directly deploy Fiori code to On-Premise server?

      Author's profile photo Milton Chandradas
      Milton Chandradas
      Blog Post Author

      Yes - I have used Visual Studio Code locally for quite a few development projects.  One of the motivation for moving away from SAP Web IDE is to bridge the gap between local development and developing in the cloud.

      With Business Application Studio, you can develop in the cloud if you want.  The IDE comes pre installed with all the tools necessary.  And you can make use of all the wizards...

      But you can do the same with the local install of Visual Studio Code.  You will have to manually install some of the tools - but it's pretty straight forward with npm.  Also, some of the extension wizards available in BAS is also available as Visual Studio Code extensions.

      Although at this moment, I recommend using both (instead of choosing one over the other).

      Author's profile photo Neha Goyal
      Neha Goyal

      Hi Milton,

      The videos are very nicely structured and explained.Thanks for creating such videos. These are really helpful to ramp up quickly on the latest programming model.


      Author's profile photo Milton Chandradas
      Milton Chandradas
      Blog Post Author

      Thanks Neha !!

      Author's profile photo Ashish Baghel
      Ashish Baghel

      Great blog Milton !!

      Author's profile photo Milton Chandradas
      Milton Chandradas
      Blog Post Author

      Thanks Ashish !!

      Author's profile photo Kishor Basina
      Kishor Basina

      Excellent Blogs Milton on the ABAP RAP Programming Model. Really of great help in understanding concepts easier & quicker.  Just wants to know is there any information on BAPI / FM support provided for these models to make use of SAP standard content and integration with On Premise systems.

      Author's profile photo Milton Chandradas
      Milton Chandradas
      Blog Post Author

      Yes...  In this case, we will be using the unmanaged scenario.

      The OpenSAP course - Week 4 talks about this scenario.  Andre Fischer (Product Manager) walks you through an end-to-end example.


      Author's profile photo Rajeev Anandan
      Rajeev Anandan

      Hi Milton Chandradas ,

      Thanks for making this blog. It is a very useful one. I followed all the steps and created the application however in the screen label is not displayed for the "Set Active" button. But the button is existing in the screen and functionality is working. Can  you inform in which file we set the label for the button? Please refer the screenshot below.

      Author's profile photo Jorge Carvalho
      Jorge Carvalho

      In case you're facing the same issue (as I did too), in your metadata extension file, you're missing the label attribute:

      @UI: { lineItem: [{position: 60}. { type: #FOR_ACTION, dataAction: 'setActive', label: 'Active'...

      Author's profile photo Manjunath Venkatesh
      Manjunath Venkatesh

      Great blogs !! Milton

      Author's profile photo Cristian Felipe Montoya Gallego
      Cristian Felipe Montoya Gallego

      Hi Milton Chandradas

      How can I configure an application deployed under the RAP on premise model in the SAP FIORI launchpad? Thanks.
      Author's profile photo iMRO DEV TEAM

      Hello Milton,


      We are trying to extend a Root CDS and added a new association to the extended CDS.
      Now we all know that unless the association is not exposed in service definition it cannot be consumed by UX. So the CDS is extended, is there also a framework where service definition can be extended and the new association be exposed there?.

      Thanks & Regards,

      Udita Saklani

      Author's profile photo Gabby Isidro
      Gabby Isidro

      Hello Good Day!~

      I am trying to do pessimistic locking on Managed.


      I noticed during edit, that the method lock is only triggered when clicking save.. so the 2 save events from 2 instances of the application are getting saved.. instead of having the locking error.


      Can please point me to a correct way to implement this that it should error when i click edit on the 2nd app instance?


      Thank you!~

      Author's profile photo Rakesh Gowdru
      Rakesh Gowdru

      Nice Blog, great content

      Author's profile photo prathamesh naik
      prathamesh naik

      Hi Milton ,

      Very helpful blog. Just a question is it possible to add collective search help for this odata services generated by CDS view . Since most of the collective search help are sap standard , can we attach them directly to the search fields.

      Author's profile photo Vivek Prabhu
      Vivek Prabhu

      Hi Milton,

      Great Video. I was also trying to do a small leave application POC. I just wanted to know if you can help me with a doubt. I was using 2 tables - one employee master table with Emp Id and Emp Name and  other employee leave details with all details reg employee's leave having Emp Id as foreign key. Now if in the final Consumption View, I need to join these tables and display leave details and fetch the Emp Name from first table, this would be a JOIN on Interface View level ?


      Thanks and Regards


      Author's profile photo j.sai. ponnuru
      j.sai. ponnuru

      Great Blog Milton. I have gone through the tutorial and it was very simple and easy to understand. But I have few clarifications on the concept of RAP.

      1. Is RAP used only for FIORI Apps creation?
      2. Is ODATA service creation = Service Definition?
      3. To create Fiori Apps from a developer perspective we need knowledge on CDS, RESTful programming, ODATA, Eclipse ADT. Is that right?
      Author's profile photo david huber
      david huber

      Hi Milton 🙂 Thanks for this great blog. I have one question and i really appreciate if you can help me with. Right now we are working on a project using SAP Cloud Foundry Environment. In this case we create custom application and we use oData Service to retrieve some information that we are reading from SAP S/4 using Cloud Connector with Principal Propagation destination. My question is ... ¿ Is it possible to replace this oData service and develop all this services using RAP ? or in which business scenario we should conclude that RAP is the best solution to go forward ?.

      Many thanks again for your guidance.