Building SAP Fiori / SAPUI5 & SAP RAP applications for modern S/4HANA and SAP BTP environments.
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.
SAP Fiori Launchpad Home — role-based tiles, embedded analytics and calendar
SAP Fiori application on left monitor · ABAP OO code in Eclipse ADT on the right
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 — UI Fiori · OData API · ABAP Backend · HANA Database
SAP BTP (Business Technology Platform) — Integration, Extension, Analytics, Data & AI
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 — RESTful ABAP Programming Model: End-to-End Architecture with 5 clearly defined layers
Fiori Elements List Report — Manage Sales Orders with filters, table and action toolbar
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.
@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 }
@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 }
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; } }
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 | Affaire | Title | CM1 | CM2 | CM3 | Status |
|---|
CDS Views and Fiori Elements: the combination that defines modern SAP development.
Eclipse ADT — CDS View ZI_SalesOrder with associations, annotations and full BO structure
Fiori Value Help dialog — Supplier search with filters and paginated results list
Fiori Elements Object Page — Sales Order with collapsible sections, header, items and Business Partner
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.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 }
define view entity ZC_VH_CONTRACT_MANAGER as select from ZI_VH_CONTRACT_MANAGER { key UserId, FullName, FirstName, LastName }
Eclipse ADT — ZDEMO_I_SALESORDERS CDS view: associations to Customer, Organization, Currency and Items
Metadata extensions define the Fiori presentation layer (columns, filters, facets, field groups) without touching the consumption CDS — clean separation of responsibilities.
@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; }
<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>
Over 10 years delivering SAP projects for clients across different sectors and countries, working in international environments in Spanish, French and English.
International SAP team working on S/4HANA project — ABAP, Fiori and Eclipse ADT
Agile Sprint Planning — backlog, collaboration and focus on value delivery
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.
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.
Researcher in the group of circuits and Micro/Nanometric Systems Engineering, Seville. Surrogate modeling and optimization of inductor performances using Kriging functions.
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.
Modern SAP applications that generate real business value: scalable, maintainable, Clean Core and aligned with the SAP BTP technology roadmap.