top of page

Building an HR Management Platform on SAP BTP with Fiori UI5

A hands-on journey through SAP Business Technology Platform, Business Application Studio, and modern Fiori development — from CDS views and RAP behaviors to role-based tile management and calendar features.



What is SAP BTP, BAS, and Fiori UI5?

SAP Business Technology Platform (BTP)

SAP BTP is SAP's cloud platform — the foundation where modern SAP applications are built, deployed, and run. Think of it as the infrastructure layer that connects your SAP systems (like an on-premise NetWeaver backend) to cloud services, development tools, and user-facing applications.

In this project, BTP serves as the deployment target. The app runs on BTP and connects to an on-premise SAP through a connectivity proxy, bridging the cloud-frontend with the on-premise data.


SAP Business Application Studio (BAS)

BAS is the cloud-based IDE purpose-built for SAP development. It replaces the old Eclipse-based ABAP workbench for frontend work and provides first-class support for Fiori, CAP, and UI5 projects. I use BAS to write the Fiori XML views, JavaScript controllers, and manifest configurations — with live preview running against the backend through the BTP proxy.



SAP Fiori and UI5

SAP Fiori is the design language and UX framework for SAP applications — the look, feel, and interaction patterns that make SAP apps feel consistent and modern. Under the hood, Fiori apps are built with SAPUI5 (referred to as UI5), an enterprise-grade JavaScript framework from SAP.

UI5 follows a Model-View-Controller (MVC) pattern: XML defines the UI structure (View), JavaScript handles logic (Controller), and models (OData or JSON) hold data. The framework handles two-way binding, aggregation binding, and lifecycle management automatically.



HR Management Site — what it does and why


The Company Business Management Site is an internal HR application built for Melasoft. It serves two distinct types of users — administrators and employees — each with their own role-appropriate view of the system.


The goal was to replace scattered HR processes with a single, unified Fiori application that connects directly to our SAP backend — no middleware, no external services, just clean OData from RAP models.


Admin users see


Employees see




The backend runs on SAP NetWeaver with data persisted in custom DDIC tables (e.g. ZCA_PERSONEL_V2, ZCA_TIMESHEET, ZCA_USER_ROLES) and exposed through an OData v2 service built with the ABAP RESTful Application Programming model.



CDS views and BDEF behaviors — what they are and how I built them

What is a CDS view?

CDS stands for Core Data Services. A CDS view is SAP's way of defining data models in the database layer using an SQL-like annotation-rich language. Instead of writing reports that query tables directly, you define a view once — and that view becomes the canonical data model for everything above it: services, UIs, APIs.

I created two layers of CDS views for each entity. The interface view (prefix ZI_) defines the raw data structure, and the consumption view (prefix ZC_) adds annotations for the Fiori UI — labels, search helps, value lists.


Example — ZI_TIMESHEET interface view



What is a BDEF (Behavior Definition)?

A BDEF defines what operations are allowed on a CDS entity — create, update, delete — and what the rules are. It is the "contract" between your data model and the application logic. The RAP (RESTful Application Programming) model uses BDEFs to generate a fully functional transactional API.


For the Timesheet entity my BDEF looks like this:



Service bindings and OData publishing

Once the CDS views and BDEFs are defined, the next step is exposing them as an OData service that the Fiori app can consume. In RAP this is done through a Service Definition and Service Binding. The Fiori app communicates exclusively through OData v2 calls — reads with $filter, creates via POST to the entity set, updates via PATCH/PUT, and deletes via DELETE. No custom REST APIs, no direct database access.

Some sample pages;

My Courses Page: You can manage your courses.
My Courses Page: You can manage your courses.

A KANBAN page where you can follow your plans.
A KANBAN page where you can follow your plans.

A Calendar page in which you can make your weekly, monthly plans and follow them.
A Calendar page in which you can make your weekly, monthly plans and follow them.



Goals and what comes next


The project is actively evolving. The core HR features are functional, but there are several areas I want to expand:


  • Certificate Management: Introduction of a dedicated tile for completed courses, enabling users to easily access and download their certificates through a streamlined flow.

  • My Profile Page: Implementation of a personalized profile section where employees can manage and update their details, including profile photo upload functionality.

  • Admin Dashboard: Development of an interactive dashboard providing key insights such as headcount metrics and course completion rates, supporting data-driven decision-making.

  • Notification Center: Creation of an in-app notification system to inform users about new task assignments, course enrollments, and other important updates in real time.

  • Mobile Optimization: Enhancement of the user interface with a fully responsive tile-based layout, ensuring optimal usability across tablets and mobile devices.

  • SAP BTP Deployment Pipeline: Establishment of a CI/CD pipeline leveraging MTA build processes and automated deployment to SAP Business Technology Platform, ensuring efficient and reliable releases.

Additionally, following validation and alignment with HR requirements, further enhancements can be introduced to support broader company management processes. Given the extensive capabilities of the SAP ecosystem, there is significant potential to continuously integrate new features that improve operational efficiency and deliver added business value. Thanks for your time for reading this blog.

 
 
 

Comments


bottom of page