From Templates to Real Projects: Practicing RAP on Something That Matters
From Templates to Real Projects: Practicing RAP on Something That Matters
How many times have you built a RAP application by copying a template? How many “travel” entities have you cloned just to practice?
But now—how would you honestly rate your RAP development skills?
Until you apply your knowledge on a real project, not by copying, but by defining a task and finding a solution that fits real needs (not something abstract “in a vacuum”), your skill isn’t at the level where you can truly say you understand the technology.
And even then, you’ll never cover all areas—each project uses only a subset of what RAP can do.
I’m saying this based on my own experience.
RAP has been around for several years already, and everyone says it’s a “must-have” skill for every ABAP developer.
But the truth is, many customers still run on older systems, and if you don’t have a project using new technologies, no matter how many demo courses you complete—you’ll forget it, and it won’t count as real hands-on experience.
Still, to get on a project with new technologies, you have to pass an interview on them.
So what’s the best way out? — Build a real, meaningful project on your own.
Something logical, not random demo functionality “just to try out RAP”.
🎯 The Idea: Personal Growth Apps
From my side, I’ve already worked with RAP on small enhancements and side projects, but, as they say, practice makes perfect.
So this time, I decided to kill two birds with one stone — to practice RAP again and to build a system to track my professional growth.
I call this series Personal Growth Apps — a set of applications to track professional development.
On the one hand, they help to monitor progress; on the other hand, they serve as a structured representation for promotion or career review discussions.
What’s important for developer growth besides project work?
  • Continuous learning (courses, new technologies)
  • Non-project activities (mentoring, knowledge sharing, community involvement)
  • Keeping your skills and CV up to date
To track all that, why not use RAP apps themselves?
It’s both practice and a useful outcome.
📚 Learning Hub — the First Part
The most obvious area is learning.
So the first part of my development focuses on that.
At the moment, the solution includes three Fiori applications:
  1. Learning Hub – a catalog of courses that can be maintained by an admin, searched by users, and assigned to them.
  2. My Courses – where a user manages their own learning progress and marks completion.
  3. Analytics Page – a small dashboard that will later be extended, as a list and a donut chart alone are not really informative in real life.
All these apps are managed RAP applications with list views, object pages, and a small analytical view.
Some actions and validations are implemented (e.g., changing course statuses, assigning users), as well as feature control and authorization management—because obviously not every user should have access to all functions.
🧩 Technical Insights
One new thing for me was generating real Fiori apps for RAP services and deploying them back into the system — something I hadn’t done before since it’s usually handled on the frontend side.
It was a bit tricky, especially because I’m not very used to VS Code and the deployment process there.
But I managed to do it (fortunately!) and then set everything up in the Fiori Launchpad.
It’s really satisfying for a pure backend developer to see a fully working app on the Launchpad, not just a service definition.
🧱 Features InsideBesides basic CRUD and managed behavior, these apps make use of several RAP and Fiori features that make them feel much closer to real business applications:
  • Internal actions for handling logic such as course assignment, completion, and status transitions.
  • Feature control to dynamically enable or restrict functions depending on user role or data state.
  • Draft capabilities, allowing safe editing and consistent data handling without losing progress.
  • Chart and progress bar annotations on the analytical page, visualizing user learning statistics.
  • Semantic link annotations — for example, clickable links in tables and overview pages, improving navigation between apps.
Small details like these make a big difference — they help the app feel alive, not just technically correct.
🖼️ App Structure and Screenshots
Below you can find an overview of the apps:
📘 Learning Hub — course catalog
🎓 My Courses — user learning management
🎓 My Courses — user learning management
Some small features make the apps more convenient — for example, links in table views and on the overview page, additional actions for changing the status and finishing course etc.
Check the project on my GitHub for details.
🚀 What’s Next
The next step for me is to track and manage my CV and skills — a kind of “skills inventory” app.
It should allow convenient maintenance of skills, attaching files, and downloading or uploading CV versions.

Stay tuned — more RAP experiments are coming.
Made on
Tilda