Skip to Content
Technical Articles
Author's profile photo Carine Tchoutouo Djomo

Getting Started with the ABAP Programming Model for SAP Fiori

This blog offers a collection of information (presentations, blogs, videos, etc.) about the ABAP Programming Model for SAP Fiori which is provided by the ABAP Platform starting with SAP NetWeaver AS ABAP 7.5 SP01. This blog will be updated regularly.


/wp-content/uploads/2016/04/sapnwabline_930876.png

Introduction to the ABAP Programming Model for SAP Fiori

Watch these SAP TechEd session recordings and understand the need of a modern programming model and which product qualities it shall fulfill. The video focuses on the ABAP back end, but it also includes a quick look at the integration into UI5 client technology.

Learn more about how the back-end for highly standardized, cloud-ready SAP Fiori apps are built in SAP S/4HANA and understand how to combine new and proven technologies like CDS, BOPF and SAP Gateway for building read-only and transactional apps optimized for the SAP HANA platform. You will also get some insights about its evolutionary development into the ABAP RESTful Programming model.

Watch the recording of session S4H140@SAP TechEd 2017

Access the presentation

Watch the recording of session DEV109@SAP TechEd 2016 

Access the presentation 

/wp-content/uploads/2016/04/sapnwabline_930876.png

Tutorials

Tutorial 1: Develop a Simple List Reporting App

In this introducing scenario, you have the opportunity – starting from an already existing data model – to develop a simple list – reporting scenario based on the standardized ABAP Programming Model for SAP Fiori. You will be guided step-by-step through the new development infrastructure, which includes technologies such as Core Data Services (CDS), SADL, and SAP Gateway.
Access the tutorial


Tutorial 2: Develop an Advanced List Reporting App with Search and Analytical Capabilities

Starting from the elementary list reporting (see scenario 1), you may want to add some further list reporting functions. For example, if your table or list contains many rows, it becomes difficult for end users to find the information they need. To facilitate finding the desired information, you can provide selection fields (filters) to specify the range of information that the end user is looking for. In addition, you may want to specify the positioning of columns or prioritize, or even hide, specific fields in your table or list.
Access the tutorial


Tutorial 3: Develop a Transactional App from Scratch

Develop a sales order processing application, starting with the creation of a basic persistence model, followed by the definition of a normalized data model and  then by the provision of a service-specific consumption view. After this, you’re going to build a SAP Fiori UI using SAP Fiori Elements (formerly known as Smart Templates) and test the resulting app within the SAP Fiori Launchpad. As final step, you will add custom application business logic using the BOPF API.
Access the tutorial


Tutorial 4: Develop a Transactional App from Scratch with Draft Capabilities

Develop a sales order processing application with draft capabilities, starting with the creation of a basic persistence model, followed by the definition of a normalized data model and its draft enablement. You will then specify a service-specific consumption data model and expose it as OData service. After this, you’re going to build a SAP Fiori app using the SAP Fiori Elements and test the resulting app within the SAP Fiori Launchpad. As final step, you will add custom business logic using the BOPF API.
Access the tutorial

/wp-content/uploads/2016/04/sapnwabline_930876.png

Begin.png

Related Information:

SAP Training Classes (SAP Education)

Assigned Tags

      21 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Aslam MD
      Aslam MD

      Hi Carine,

      Your efforts are appreciable, Thank you for the blog, Please keep updating the blog and benefit us.

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

      Thanx for the feedback. Will just do that 🙂

      Author's profile photo Former Member
      Former Member

      Hi Carine,

      I got started with the smart template but what I need to know is how can you use the navigation link on each line to show more details, e.g. may be you have a header which represents the main work list but then you want to show items? Or why is the navigation link on each line? Is there an example for the next page?

      Thanks

      Stefan

      Author's profile photo Stefan Engelhardt
      Stefan Engelhardt

      Hi Stefan,

      in the manifest.json there has to be a page for the corresponding entityset. It is described here (section "Setting Up Object Pages"): SAPUI5 SDK - Demo Kit.

      Cheers

      Author's profile photo Ekansh Saxena
      Ekansh Saxena

      Hi Carine,

      Any updates on video tutorials?

      Regards,

      Ekansh

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

      Hi Ekansh,

      due to other activities, we had to postpone the videos creation. So please bear with us. We're currently planning to upload them after TechEd.

      Kind regards,

      Carine

      Author's profile photo Ramesh Vodela
      Ramesh Vodela

      When I tried to create BOPF (7.51 S4HANA) actions from eclipse  I got the message that eclipse client tools was out of date with back end - When I installed updates and restarted I still got the same message - The same on Mac or windows.

      I tired BOPF with Draft options- I created Persistence table when I activated I got the message that

      Draft Table was created - I created this - Should we create Draft table as well. I assume that system

      should create this

      Ramesh

      Author's profile photo Cameron HUNT
      Cameron HUNT

      Hello Carine, and thanks for this interesting content that helps try to imagine where SAP is headed.

      After watching DEV109@TechEd 2016, I have a couple of questions to ask you/SAP :

      1) as far as I can tell, Drafts will not be fully supported before BASIS 751 SP1, and therefore for many customers who are still on 740, not for a number of years to come in their Prod environments. Likewise, as far as I can tell, Drafts -- which use unitary locks on Transactional Data just like classic Transactions -- offer no advantage beyond device switching (given Collaboration could have been equally achieved using a slight tweak of classic locks) ?

      Given this, I wonder if SAP has considered the very likely possibility that laptops/desktops are soon to be obsolete (I bought a cheap phone yesterday that has half the RAM of a new laptop), that people will simply dock their smartphones when they get to work in the future to have a screen and a keyboard, and that the whole new mechanism of Drafts is already obsolete, given there is no future Use Case for device switching ?

      2) Drafts are persisted to the (HANA) DB, meaning that the mobile device must ALWAYS be connected for Drafts to work. Given that one of the key Use Cases for mobile devices is the ability to work Offline, is this not another reason to believe that the new Draft functionality is already technically redundant ?

      Regards, Cameron HUNT

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

      Hello Cameron,

      Happy New Year!

      Thanks for your feedback.

      The back-end draft capability enables the development of the state-of-the-art business applications with high requirement for work continuity and speed of data entry. This feature is generally available within the ABAP programming model for SAP Fiori starting with ABAP 7.51 (SPS02) which provides the foundation for SAP S/4HANA 1610.

      Work continuity includes not just the switch between devices, but also between windows. Another aspect here is the avoidance of data loss, e.g. by intermittent network connection or work interruption without explicitly saving the data.

      Within the ABAP programming model for SAP Fiori, based on stateless technologies such as UI5 and the OData protocol, a draft document is used for (1) setting locks on the data of the involved business entities in the original persistency and (2) handling state by storing transient data of these business entities – which can even be incomplete and/or inconsistent – until it is permanently stored in the original persistency as active document.

      In classic SAP UI technologies (e.g. Web Dynpro ABAP and FPM), a lock is bound to an ABAP session which is bound to an ABAP user who on his turn is bound to the device. This is not the case in the draft approach, where a lock is decoupled from the ABAP session and has a configurable timeout.

      During the creation of a draft document, an exclusive lock is set on the relevant business entities. An exclusive lock is switched to an optimistic lock after its timeout, i.e., the related active document is no longer locked, but the draft document is kept until it is either discarded by another user or deleted by the application infrastructure. An expired draft document can be resumed by its author. By doing that, the optimistic lock is then switched back to an exclusive lock. Only private draft documents which can only be manipulated by their author are supported currently. [Video]

      Regarding the offline scenarios:
      Yes, the end-user must be online in order to use the back-end draft capability, but the mobile device must not be always connected to the back-end thanks to the REST-based communication between front-end and back-end. 

      Offline-enabled SAP Fiori apps are deployed on the mobile device and access a local offline store containing business data that synchronizes periodically with the back-end when the network connection is restored. [Learn more about Preparing SAP Fiori Apps for Offline Use]

      In the context of the ABAP programming model for SAP Fiori, the offline-enabled app can consume a draft-enabled OData service. The draft will then handle the locks and transient data in the back-end.

      Kind regards,
      Carine

      Author's profile photo Cameron HUNT
      Cameron HUNT

      Hello Carine, and thanks for your reply. You state:

      1) "Offline-enabled SAP Fiori apps are deployed on the mobile device and access a local offline store containing business data that synchronizes periodically with the back-end when the network connection is restored"
      = The devices store locally all of the data needed to fully support office-enabled apps
      2) "Yes, the end-user must be online in order to use the back-end draft capability, but the mobile device must not be always connected to the back-end"
      = Even though ""Offline-enabled SAP Fiori apps ... access a local offline store containing business data that synchronizes periodically with the back-end", this data is completely useless unless you are ONline when you start working on your draft !
      = If you didn't think to start your draft when online, forget even trying to use your 'offline-enabled' apps.
      3) "An exclusive lock is switched to an optimistic lock after its timeout, i.e., the related active document is no longer locked.. An expired draft document can be resumed by its author. By doing that, the optimistic lock is then switched back to an exclusive lock".
      So, why not just let mobile users, even when not connected, make changes to the data already stored and sychronised locally on their devices -- let's call this an IMPLICIT OPTIMISTIC LOCK -- and when they reconnect, if the same data was not already changed on the Backend DB, this IMPLICIT OPTIMISTIC LOCK becomes an Exclusive Lock, and their LOCAL DRAFT is updated on the DB ?
      Now that would be 'offline enabled'...
      Regards,
      Cameron HUNT
      Author's profile photo Ravi Sankar Andela
      Ravi Sankar Andela

      Hi Carine,

      Thank you for the constantly updated blog.

       

      I have a doubt here regarding the New ABAP Programming Model for S/4HANA,

      If we are creating a new custom business process, where should we start?

      BOPF? which will create a Data model and transaction capabilities with in that data model or

      Manually create the data model and create CDS with Annotations which will generate BOPF for transaction capabilities?

      If we are manually creating data model (data base tables, should we follow RDBMS rules or we should use GUIDs as Keys/Nodekey/Parent key? if we create manually how do we create alternative keys?

      If we use BOPF as the first step and create CDS views on top of it, this will again generate BOPF for transaction isn't it a duplication?

      Thank you in advance.

      Ravi

       

      Author's profile photo Dominique Poisson
      Dominique Poisson

      Hi, all,

      I am a newcomer to ABAP.

      Is there a way to access a development platform (ABAP workbench) from my computer (I am using a MacBook), using it as a thin client?

      Thank you.

      dp

      Author's profile photo Former Member
      Former Member

      ABAP cloud trial version via AWS or Azure and you pay for it. Just use Eclipse ADT

      Author's profile photo hashir hussain
      hashir hussain

      hi there,

      i am new to abap, so i what  wanted to know is, like c++ can i run abap, or do i have to install server and ui  to work on abap.

      Author's profile photo Former Member
      Former Member

      The language is too heavy and like .NET may be you need  a small test server to run it. Just look for ABAP trial version.

      Author's profile photo Chaouki Akir
      Chaouki Akir

      The links “Access tutorial” n°1 and n°2 are returning an error message

      • “403: You don’t have rights to view this page”

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

      Hello Chaouki,

      Please try again.
      I’ve updated the links and no login will be required now.

      Thanks & Kind regards,
        Carine

      Author's profile photo Marco Büscher
      Marco Büscher

      Thanks for that!

      Author's profile photo Hermes Callirgos Oliva
      Hermes Callirgos Oliva
      excellent note
      Author's profile photo Ross Goodman
      Ross Goodman

      Why do we have an organization the size of SAP creating a recording of an event in which the presenter wanders around the stage and in doing so becomes INAUDIBLE? Every time the presenter moves around the sound deteriorates to the point that you are listening to someone sticking their head in a small metal bucket. Ridiculous! Spend some of the profits SAP and create a useable recording of a session. This guy knows his stuff that's obvious so I really would like to be able to understand EVERYTHING HE SAYS!!!!

      Author's profile photo Leo Barnoski
      Leo Barnoski

      Thanks for that great blog. i got much more information form here for my upcoming projects that i want to start.