Technical Articles
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. |
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 |
|
Watch the recording of session DEV109@SAP TechEd 2016 |
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
Related Information:
- ABAP Programming Model for SAP Fiori -Documentation (SAP Help Portal)
- DEV109 – The ABAP Programming Model for SAP Fiori (SAP TechEd 2016 recording)
- S4H140 – The ABAP Programming Model for SAP Fiori (SAP TechEd 2017 recording)
- Get Started with ABAP Core Data Services (CDS)
- CDS Annotations for Metadata-Driven UIs
- Developing Apps with SAP Fiori Elements (SAP Help Portal)
- Introduction to Business Object Processing Framework (BOPF)
- BOPF Developer Guide (SAP Help Portal)
- ABAP for SAP HANA playlist @abap channel – Youtube (videos)
- Be prepared for the ABAP Programming Model for SAP Fiori
- Evolution of the ABAP Programming Model
- Get Started with the ABAP RESTful Application Programming Model (RAP)
- Free openSAP course: Building Apps with the ABAP RESTful Application Programming Model
- Get a free AS ABAP 7.52 SP04, developer edition (trial version)
- AS ABAP 7.52 Landing Page @SAP Community
- ABAP Platform 2020 Landing Page @SAP Community
SAP Training Classes (SAP Education)
Hi Carine,
Your efforts are appreciable, Thank you for the blog, Please keep updating the blog and benefit us.
Thanx for the feedback. Will just do that 🙂
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
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
Hi Carine,
Any updates on video tutorials?
Regards,
Ekansh
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
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
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
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
Hello Carine, and thanks for your reply. You state:
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
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
ABAP cloud trial version via AWS or Azure and you pay for it. Just use Eclipse ADT
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.
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.
The links “Access tutorial” n°1 and n°2 are returning an error message
Hello Chaouki,
Please try again.
I’ve updated the links and no login will be required now.
Thanks & Kind regards,
Carine
Thanks for that!
excellent note
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!!!!
Thanks for that great blog. i got much more information form here for my upcoming projects that i want to start.