Skip to Content
Technical Articles

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



You must be Logged on to comment or reply to a post.
  • 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?

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

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

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

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


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

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

  • Nice blog, Thanks for share!

    I am following the steps mentioned here however I am stuck at below step:

    On step 6 Behavior definition I am facing once issues:

    # Error Description
    1 authorization | draft | late | { | ~ expected, not "LocalLastChangedAt".
    2 define | foreign expected, not "mapping".
    3 features | mandatory | readonly expected, not "numbering".
    4 field | } expected, not "create".

    Would appreciate your help as I am blocked for this.

    Thanks again!

    Best Regards,


    • P.S Noticed that the Implementation type while creating the behavior definition can only be set as UNMANAGED.. hence the issue...





  • 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