Skip to Content
This blog offers a collection of information (presentations, blogs, videos, …) 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.

Latest News :

19.12.17: Be prepared for the ABAP Programming Model for SAP Fiori (Blog)
04.12.17: S4H140@SAP TechEd 2017 – The ABAP Programming Model for SAP Fiori in SAP S/4HANA (Video)
14.11.16: DEV109@SAP TechEd 2016 – The ABAP Programming Model for SAP Fiori in SAP S/4HANA (Video)


/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:

To report this post you need to login first.

13 Comments

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

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

    (0) 
    1. Carine Tchoutouo Djomo 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

      (0) 
  2. 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

    (0) 
  3. 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

    (0) 
    1. Carine Tchoutouo Djomo 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

      (0) 
      1. 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
        (0) 
  4. Former Member

    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

     

    (0) 
  5. 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

    (0) 

Leave a Reply