Senior SAP Developer · +10 years of experience

David Ollero
Montes

Building SAP Fiori / SAPUI5 & SAP RAP applications for modern S/4HANA and SAP BTP environments.

SAP FioriSAPUI5RAP CDS ViewsOData v2/v4ABAP OO S/4HANASAP BTPClean Core
// Technical profile
AvailabilityAvailable
Experience+10y SAP Fiori/UI5
EnvironmentsS/4HANA · ECC · BTP
ParadigmRAP · Clean Core
CertificationPSM I — Scrum.org
LanguagesES · FR C1 · EN B2+
LocationSeville, Spain
// About me

Professional profile

Computer Engineer with over 10 years of experience in SAP technologies, specialised in developing SAP Fiori and SAPUI5 applications for national and international clients.

Throughout my career I have participated in SAP ECC and SAP S/4HANA projects, delivering modern solutions based on Fiori Elements, RAP (RESTful ABAP Programming Model), CDS Views, OData and ABAP OO, on both On-Premise and Cloud environments. My focus is on building scalable, maintainable applications aligned with SAP BTP and Clean Core principles.

I stand out for my analytical skills, problem-solving ability, technical quality orientation and collaboration with multidisciplinary teams. I operate in international environments and work regularly in French on projects for the French market.

Spanish
NATIVE
French
C1 — ADVANCED
English
B2+ PROF.
SAP Fiori Launchpad
🔍

SAP Fiori Launchpad Home — role-based tiles, embedded analytics and calendar

// Companies I have worked with
WorldgriduDefine FihocaAluxion BirchmanTechedge
SAP developer dual monitors
🔍

SAP Fiori application on left monitor · ABAP OO code in Eclipse ADT on the right

// Technology stack

Technologies

Deep expertise in the modern SAP ecosystem — SAP Fiori, SAPUI5, RAP, CDS Views, OData, SAP BTP (Business Technology Platform), Clean Core and S/4HANA — with complementary knowledge in standard frontend development.

SAP S/4HANA Ecosystem
🔍

SAP S/4HANA Ecosystem — UI Fiori · OData API · ABAP Backend · HANA Database

SAP Business Technology Platform
🔍

SAP BTP (Business Technology Platform) — Integration, Extension, Analytics, Data & AI

SAP Core
🎯
SAP Fiori
UX / Launchpad
SAPUI5
UI Framework
🧩
Fiori Elements
Floorplan patterns
🔷
RAP
RESTful ABAP
🗃️
CDS Views
Data modelling
🔌
OData v2/v4
API layer
⚙️
ABAP OO
Backend logic
🏢
S/4HANA
On-Prem / Cloud
☁️
SAP BTP
Cloud platform
🛡️
Clean Core
Extensibility
🛠️
Eclipse ADT
Dev tooling
📋
Adobe Forms
Output mgmt
Web & other technologies
🟨
JavaScript
ES6+
🌐
HTML5 / CSS3
Frontend
⚛️
React Native
Mobile
Java
Backend
🐍
Python
Scripting
// SAP RAP — RESTful Application Programming Model

RAP Architecture

RAP is the modern SAP standard for building Fiori applications on S/4HANA. It cleanly separates persistence, business logic and OData exposure into well-defined layers, fully aligned with Clean Core and SAP BTP extensibility.

SAP RAP Architecture
🔍

SAP RAP — RESTful ABAP Programming Model: End-to-End Architecture with 5 clearly defined layers

Fiori Elements List Report
🔍

Fiori Elements List Report — Manage Sales Orders with filters, table and action toolbar

🎯 UI Layer
SAP Fiori Elements · SAPUI5 · Launchpad
🔌 OData
Service Binding · OData v2/v4 · HTTP REST
📦 Projection
Consumption CDS · Behavior Projection · UI Annotations
🔷 Interface
Root CDS View Entity · Behavior Definition · ETag
⚙️ Behavior Pool
ABAP Class · Validations · Determinations · Actions
🗃️ CDS Views
Interface CDS · VH CDS · Associations · Annotations
💾 Persistence
ABAP Dictionary Table · HANA Database
SAP RAP
Example: Contract Managers Application

Managed RAP application for Contract Manager assignment on existing S/4HANA contracts. Fiori Elements List Report + Object Page with Value Help CDS and custom OR filter across 3 CM fields.

managed BOCDS VHFiori ExtensionOData v2
ABAP CDSZI_CONTRACT_MANAGER.ddls
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Contract Managers'
define root view entity ZI_CONTRACT_MANAGER
  as select from ymmcontrats_cm
{
  key yebeln        as ContractId,
      yphacase      as Phase,
      ypharfx       as RfxNumber,
      ytitrecontrat as ContractTitle,
      ycm1          as ContractManager1,
      ycm2          as ContractManager2,
      ycm3          as ContractManager3
}
ABAP CDSZC_CONTRACT_MANAGER.ddls
@Metadata.allowExtensions: true
define root view entity ZC_CONTRACT_MANAGER
  provider contract transactional_query
  as projection on ZI_CONTRACT_MANAGER
{
  @Consumption.valueHelpDefinition: [{
    entity: { name: 'ZC_VH_CONTRACT_MANAGER',
              element: 'UserId' }
  }]
  ContractManager1,
  ContractManager2,
  ContractManager3
}
ABAP RAPZI_CONTRACT_MANAGER.bdef
managed implementation in class
  zbp_i_contract_manager unique;
strict ( 2 );
define behavior for ZI_CONTRACT_MANAGER
persistent table ymmcontrats_cm
lock master
{
  update; delete;
  field ( readonly )
    ContractId, Phase, RfxNumber, ContractTitle;
  mapping for ymmcontrats_cm {
    ContractId = yebeln;
    ContractManager1 = ycm1;
    ContractManager2 = ycm2;
    ContractManager3 = ycm3;
  }
}
JavaScriptControllerExtension.js — OR filter
onBeforeRebindTableExtension: function(oEvent) {
  var oParams = oEvent.getParameter("bindingParams");
  var oInput  = this.byId("contractManagerFilterInput");
  if (!oInput) return;
  var sVal = oInput.getValue().replace(/\*/g,"").trim();
  if (!sVal) return;
  // OR filter across CM1, CM2, CM3
  oParams.filters.push(new Filter({
    filters: [
      new Filter("ContractManager1", FilterOperator.Contains, sVal),
      new Filter("ContractManager2", FilterOperator.Contains, sVal),
      new Filter("ContractManager3", FilterOperator.Contains, sVal)
    ], and: false
  }));
}

Interactive demo — Fiori Elements List Report with live OR filter across 3 Contract Manager fields.

Contract Managers
DO
ContractAffaireTitleCM1CM2CM3Status
// CDS Views & Fiori Elements

More technical examples

CDS Views and Fiori Elements: the combination that defines modern SAP development.

Eclipse ADT CDS View
🔍

Eclipse ADT — CDS View ZI_SalesOrder with associations, annotations and full BO structure

SAP Fiori Value Help
🔍

Fiori Value Help dialog — Supplier search with filters and paginated results list

Fiori Elements Object Page
🔍

Fiori Elements Object Page — Sales Order with collapsible sections, header, items and Business Partner

CDS Views
Value Help CDS — SAP Users

Value Help CDS accessing standard SAP user tables (USR21 + ADRP) to expose full name, first name, last name and user ID from any Fiori field with integrated search.

@ObjectModel.dataCategory: #VALUE_HELP@Search.searchableINNER JOIN
ABAP CDSZI_VH_CONTRACT_MANAGER.ddls
@ObjectModel.dataCategory: #VALUE_HELP
@Search.searchable: true
define view entity ZI_VH_CONTRACT_MANAGER
  as select from usr21
  inner join adrp on adrp.persnumber = usr21.persnumber
{
  @ObjectModel.text.element: [ 'FullName' ]
  @Search.defaultSearchElement: true
  key usr21.bname as UserId,
  @Semantics.text: true
  adrp.name_text  as FullName,
  adrp.name_first as FirstName,
  adrp.name_last  as LastName
}
ABAP CDSZC_VH_CONTRACT_MANAGER.ddls
define view entity ZC_VH_CONTRACT_MANAGER
  as select from ZI_VH_CONTRACT_MANAGER
{
  key UserId, FullName, FirstName, LastName
}
Eclipse ADT CDS View light
🔍

Eclipse ADT — ZDEMO_I_SALESORDERS CDS view: associations to Customer, Organization, Currency and Items

Fiori Elements
Metadata Extension — UI Annotations

Metadata extensions define the Fiori presentation layer (columns, filters, facets, field groups) without touching the consumption CDS — clean separation of responsibilities.

@UI.lineItem@UI.selectionField@UI.facet@UI.fieldGroup
ABAP CDSZC_CONTRACT_MANAGER.ddlx
@Metadata.layer: #CORE
@UI.headerInfo: { typeName: 'Contract Manager',
  title: { value: 'ContractTitle' } }
annotate view ZC_CONTRACT_MANAGER with {
  @UI.selectionField: [{ position: 10 }]
  @UI.lineItem: [{ position: 10, importance: #HIGH }]
  ContractId;
  @UI.lineItem: [{ position: 50 }]
  @UI.fieldGroup: [{ qualifier: 'ContractManager', position: 10 }]
  ContractManager1;
}
XMLContractManagerFilter.fragment.xml
<core:FragmentDefinition xmlns="sap.m"
  xmlns:sfb="sap.ui.comp.smartfilterbar">
  <sfb:ControlConfiguration
    key="ZContractManagerFilter"
    label="Contract Manager">
    <sfb:customControl>
      <HBox alignItems="Center">
        <Input id="contractManagerFilterInput" width="20rem"/>
        <Button text="Clear" press="onClearAllFilters"/>
      </HBox>
    </sfb:customControl>
  </sfb:ControlConfiguration>
</core:FragmentDefinition>
// Professional background

Experience

Over 10 years delivering SAP projects for clients across different sectors and countries, working in international environments in Spanish, French and English.

SAP S/4HANA development team
🔍

International SAP team working on S/4HANA project — ABAP, Fiori and Eclipse ADT

Agile Sprint Planning
🔍

Agile Sprint Planning — backlog, collaboration and focus on value delivery

Oct 2025 → Present
Worldgrid
SAP Fiori / FullStack Developer

SAP Fiori and Fullstack Developer specialised in modern SAP technologies. Full end-to-end development of Fiori applications, covering both frontend (SAPUI5) and backend (ABAP / CDS / OData), with a strong focus on code quality, performance and user experience. Operating in an international environment, working in French on projects for the French market, in close collaboration with business and technical teams.

SAP FioriSAPUI5ABAPCDS ViewsODataEclipse ADT
Jan 2020 → Sep 2025
5y 9m
uDefine
SAP Fiori Consultant & ABAP Developer

Full-Stack SAP Fiori Developer using ABAP RAP with OData v4. Development of custom Fiori applications and standard Fiori apps on SAP S/4HANA Cloud. Implementation of Fiori Elements with Annotations, Adobe Forms for S/4HANA Cloud, SAP List Viewer Reports, ABAP developments and Fiori application support.

RAPOData v4Fiori ElementsS/4HANA CloudAdobe FormsABAP
Sep 2019 → Dec 2019
4m
Aluxion · Madrid
React Native Developer
asisa — Application for contracting medical insurance
DiveAsap — Social network for Divers
React NativeJavaScriptMobile
Jan 2019 → Dec 2019
1y
Fihoca · Barcelona
SAP Fiori Consultant
Zurich — Fiori Launchpad (FLP) configuration. Custom app implemented and registered in FLP.
Servihabitat — API Web based on SAP Fiori and SAPUI5 for management of commercial functions: customer maintenance, property visualisation, user administration, billboard management.
Everis — SAPUI5 Junior consultants trainer.
SAP FioriSAPUI5FLPOData
Sep 2017 → Jan 2019
1y 5m
The Birchman Group · Barcelona
SAP Fiori Consultant
Quimidroga — Custom SAP Fiori and SAPUI5 app for the Sales Department in an international environment.
Tous — Support for multiple module development and customised apps based on SAP Fiori and SAPUI5.
SAP FioriSAPUI5JavaScript
Jun 2015 → Aug 2017
2y 3m
Techedge España · Barcelona
SAP Fiori Consultant
Techedge — Trainer in SAP Fiori (SAPUI5).
Werfen — Custom CRM for the Bolton field based on SAP Fiori and SAPUI5, for distribution, management and sales departments related to medical products worldwide.
Servihabitat — API Web based on SAP Fiori and SAPUI5 for commercial functions management.
Werfen — Custom CRM based on SAP Fiori and SAPUI5 for IVD business development and management departments.
SAP FioriSAPUI5ODataTraining
Sep 2013 → Jan 2015
1y 5m
IMSE-CNM · Sevilla
Researcher — Circuits & Micro/Nanometric Systems

Researcher in the group of circuits and Micro/Nanometric Systems Engineering, Seville. Surrogate modeling and optimization of inductor performances using Kriging functions.

ResearchLabViewKriging
// Contact

Let's talk

Is your organisation in the process of adopting SAP S/4HANA, RAP, SAP BTP or Fiori Elements? I would be delighted to discuss how I can contribute to your SAP projects across Europe.

What can I bring?

Modern SAP applications that generate real business value: scalable, maintainable, Clean Core and aligned with the SAP BTP technology roadmap.

RAP + Fiori Elements applications ready for S/4HANA
Clean Core extensions — without modifying SAP standard
ECC → S/4HANA migrations
SAP team training and mentoring
Send a message →