Desarrollo de aplicaciones SAP Fiori / SAPUI5 & SAP RAP para entornos S/4HANA modernos.
Ingeniero Informático con más de 10 años de experiencia en tecnologías SAP, especializado en el desarrollo de aplicaciones SAP Fiori y SAPUI5 para clientes nacionales e internacionales.
He participado en proyectos SAP ECC y SAP S/4HANA, desarrollando soluciones modernas basadas en Fiori Elements, RAP (RESTful ABAP Programming Model), CDS Views y OData. Mi enfoque está orientado a la creación de aplicaciones escalables, mantenibles y alineadas con Clean Core.
Destaco por mi capacidad de análisis, resolución de problemas, orientación a la calidad técnica y colaboración con equipos multidisciplinares.
SAP Fiori Launchpad — Vista home personalizada con tiles de aplicaciones, KPIs y calendario integrado
Entorno de desarrollo SAP — Aplicación Fiori en monitor izquierdo · ABAP OO en Eclipse ADT a la derecha
Dominio profundo del ecosistema SAP moderno, con conocimiento complementario en desarrollo frontend estándar.
SAP S/4HANA Ecosystem — Arquitectura completa: UI Fiori · OData API · ABAP Backend · HANA Database
SAP Business Technology Platform — Plataforma unificada para construir, integrar, analizar y extender
El modelo RAP es el estándar SAP moderno para construir aplicaciones Fiori sobre S/4HANA. Separa persistencia, lógica de negocio y exposición OData en capas bien definidas.
SAP RAP — RESTful ABAP Programming Model: End-to-End Architecture con 5 capas bien definidas
Fiori Elements List Report — Aplicación Manage Sales Orders con filtros, tabla y acciones (Create, Delete, Fulfill)
Aplicación RAP managed para gestión de Contract Managers sobre S/4HANA. Fiori Elements List Report + Object Page con Value Help CDS y filtro OR personalizado.
@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; // Filtro OR — 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 })); }
Demo interactiva — List Report Fiori Elements con filtro OR sobre los 3 Contract Managers.
| Contrato | Affaire | Título | CM1 | CM2 | CM3 | Estado |
|---|
CDS Views y Fiori Elements: el dúo que define el desarrollo SAP moderno.
Eclipse ADT — CDS View ZI_SalesOrder con asociaciones, anotaciones y estructura completa del Business Object
Value Help Fiori — Diálogo de selección de proveedor con búsqueda, filtros y lista de resultados paginada
Fiori Elements Object Page — Sales Order con secciones colapsables, datos de cabecera, ítems y Business Partner
CDS de Value Help que accede a USR21 + ADRP para exponer nombre, apellidos e ID de usuario desde cualquier campo Fiori con búsqueda integrada.
@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 }
Las metadata extensions permiten definir columnas, filtros, facetas y agrupaciones sin tocar la CDS de consumo — separación limpia de responsabilidades.
@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" submit="onSubmitContractManagerFilter"/> <Button text="Effacer" press="onClearAllFilters"/> </HBox> </sfb:customControl> </sfb:ControlConfiguration> </core:FragmentDefinition>
Más de 10 años trabajando en proyectos SAP para clientes de diferentes sectores y países.
Entorno de trabajo SAP — Equipo multidisciplinar trabajando en proyecto S/4HANA con ABAP y Fiori
Metodología ágil — Sprint Planning con backlog de tareas, colaboración y foco en entrega de valor
¿Tu organización está en proceso de adoptar SAP S/4HANA, RAP o Fiori Elements? Estaré encantado de conversar sobre cómo puedo contribuir a tus proyectos SAP.
Aplicaciones SAP modernas que generan valor real: escalables, mantenibles, Clean Core y alineadas con la hoja de ruta SAP.