automation

¿Fiori Elements reemplaza a los desarrolladores de UI5?

Sophia Reynolds
¿Fiori Elements reemplaza a los desarrolladores de UI5?

Un desarrollador de SAPUI5 abre SAP Business Application Studio, genera un informe de lista a partir de una vista CDS, añade una docena de anotaciones de UI y tiene una aplicación funcional, habilitada para borradores y filtrable antes del almuerzo. No se escribió ninguna vista XML. Ningún controlador. Ningún formateador. Es difícil ver que eso ocurra y no hacerse la pregunta obvia: si el framework construye la pantalla a partir de metadatos, ¿por qué alguien todavía me necesita?

La pregunta resuena con más fuerza ahora porque Fiori Elements ya no está solo. RAP genera el comportamiento y la capa de servicio en el lado ABAP. CAP hace lo mismo en SAP BTP. Las anotaciones CDS describen la UI de forma declarativa. Las propias aplicaciones S/4HANA de SAP están basadas mayoritariamente en Fiori Elements, y cada diapositiva de hoja de ruta apunta en la misma dirección: entran metadatos, sale una aplicación. Para los desarrolladores que construyeron sus carreras escribiendo vistas y controladores a mano —y para los desarrolladores ABAP que acaban de reconvertirse a Fiori— se siente como si el suelo se estuviera moviendo.

Se está moviendo, pero no en la dirección de “sin desarrolladores”. La versión breve de este artículo: Fiori Elements elimina un tipo específico de trabajo —la codificación manual de pantallas estandarizadas— y, a cambio, exige otro tipo distinto: modelar servicios, crear anotaciones, extender plantillas, depurar aplicaciones generadas y, sobre todo, juzgar qué enfoque encaja con qué requisito. Esa última habilidad no puede generarse a partir de metadatos. Veámoslo sección por sección.

¿Qué es Fiori Elements?

Fiori Elements es el framework de aplicaciones basado en metadatos de SAP construido sobre SAPUI5. En lugar de escribir la interfaz de usuario, describes los datos y su presentación prevista, y el framework renderiza la aplicación en tiempo de ejecución a partir de esa descripción.

El funcionamiento se apoya en tres pilares:

Floorplans. Fiori Elements ofrece un catálogo pequeño y deliberado de plantillas de página: el List Report (barra de filtros más tabla), la Object Page (vista de detalle con encabezado y secciones), la Analytical List Page (gráfico más tabla con exploración en profundidad), la Overview Page (página de inicio basada en tarjetas) y la Worklist. Eliges un floorplan; no diseñas un layout.

Anotaciones. Las anotaciones son las instrucciones que rellenan el floorplan. @UI.lineItem coloca un campo en la tabla. @UI.selectionField lo promueve a la barra de filtros. @UI.headerInfo nombra el objeto en su página de detalle. @UI.facet organiza la Object Page en secciones. En S/4HANA, normalmente residen directamente en vistas CDS; en otros casos, pueden estar en un archivo de anotaciones local dentro del proyecto. Escribir, estructurar y depurar anotaciones es la actividad principal de creación en un proyecto de Fiori Elements.

Servicios OData. La aplicación consume un servicio OData —V2 históricamente, V4 para todo lo nuevo— que proporciona las entidades, asociaciones, capacidades de borrador y acciones. El servicio define lo que es posible; las anotaciones definen lo que se muestra.

Como el comportamiento proviene de la plantilla y el contenido proviene de los metadatos, un patrón estandarizado como "lista con búsqueda que se abre en una página de detalle editable" requiere esencialmente cero código de interfaz de usuario escrito a mano. Y como cada floorplan implementa las directrices de diseño de SAP Fiori, el resultado es automáticamente coherente con el resto del entorno SAP: la misma barra de filtros, el mismo comportamiento de tabla, el mismo flujo de edición que el usuario ya conoce de otras aplicaciones.

Por qué existe Fiori Elements

Para entender el framework, observe el problema que SAP tenía antes de él. S/4HANA se entrega con miles de aplicaciones, y estructuralmente la mayoría de ellas son casi clones: mostrar una lista filtrada de objetos de negocio, abrir uno, editar algunos campos, guardar. Cuando cada una de esas aplicaciones se construye a mano —por equipos distintos, en años distintos— se obtienen miles de implementaciones con divergencias sutiles. La barra de filtros de una aplicación se comporta de forma diferente a la de la siguiente. Una gestiona borradores, otra no. Cada error se corrige en un lugar y sigue vivo en otros cincuenta.

Fiori Elements es la respuesta industrial a ese problema, y sus motivaciones son pragmáticas más que visionarias:

  • Consistencia a escala. Una plantilla, miles de aplicaciones. Los usuarios transfieren conocimiento entre aplicaciones al instante; la accesibilidad y la capacidad de respuesta se resuelven una vez, de forma centralizada.
  • Rapidez en patrones comunes. Cuando el modelo CDS existe, una aplicación funcional está a una ejecución de generador y una tarde de anotaciones de distancia: una fracción del esfuerzo de una construcción freestyle equivalente.
  • Mantenimiento más económico. La lógica de la interfaz de usuario vive en la plantilla de SAP, no en su repositorio. Cuando SAP entrega un control de tabla mejorado o corrige un error de navegación con teclado, cada aplicación Fiori Elements lo hereda al actualizar, sin cambios de código por parte de su equipo.
  • Eliminación del código repetitivo. Barras de filtros, gestión de variantes, manejo de borradores, ventanas emergentes de mensajes, diseño de columnas flexible: la infraestructura que consumía sprints en proyectos freestyle viene preensamblada.

Observe lo que no aparece en esa lista: reemplazar a los desarrolladores. El objetivo era dejar de pagar a personas cualificadas para volver a implementar la misma página de lista por cuadragésima vez, que es un objetivo que la mayoría de los desarrolladores, honestamente, comparten.

Dónde Fiori Elements funciona bien

El framework cumple su promesa cuando el requisito encaja con un floorplan y la estandarización es una característica, no una limitación. Concretamente:

  • Informes de lista sobre entidades de negocio. "Muéstrame todas las solicitudes de compra abiertas, filtrables por centro y solicitante, con navegación al detalle." Este es el caso canónico, y Fiori Elements lo gestiona mejor y más rápido que casi cualquier alternativa desarrollada manualmente.
  • Páginas de objeto con flujos de edición estándar. Cabecera, secciones, grupos de campos, editar/guardar con soporte de borrador y mensajes de validación: todo configuración, sin código.
  • Aplicaciones CRUD sencillas. Mantenimiento de datos maestros (centros de coste, categorías de equipos, registros de proveedores) donde RAP o CAP proporciona el comportamiento y la interfaz de usuario es una capa ligera y estándar sobre él.
  • Páginas de lista analítica, cuando el análisis encaja con el modelo. Si el requisito es "gráfico del volumen de pedidos por categoría, con profundización en los pedidos subyacentes", la ALP lo hace con elegancia. El matiz importa: funciona cuando las partes interesadas aceptan tipos de gráficos y patrones de interacción estándar.
  • Escenarios de despliegue de alto volumen. Un programa que entrega cuarenta aplicaciones internas se beneficia enormemente de que treinta y cinco de ellas estén basadas en plantillas: esfuerzo predecible, UX uniforme y una superficie de mantenimiento que no crece con cada aplicación.
  • Aplicaciones donde la coherencia tiene más peso que la singularidad. Herramientas utilizadas a diario por usuarios de back office capacitados, a quienes les importa que la barra de filtros funcione exactamente igual que cualquier otra barra de filtros, no que la aplicación tenga personalidad.

Una prueba práctica: si puedes especificar la aplicación en una frase con la forma "una lista de ⟨entidad⟩ filtrada por ⟨criterios⟩, que se abre en una página de detalle editable," elegir UI5 freestyle para ella sería sobrediseñarla.

Dónde Fiori Elements no reemplaza a Freestyle UI5

Cada fortaleza mencionada anteriormente proviene de la misma fuente —un conjunto fijo de plantillas— y esa fuente también es el límite estricto. Fuera de las suposiciones de las plantillas, freestyle UI5 no es una alternativa heredada; es la herramienta correcta.

  • Recorridos de usuario personalizados. Un asistente guiado de configuración de varios pasos, un flujo de incorporación, una secuencia de pantallas impulsada por las decisiones del usuario: los floorplans modelan listas y detalles, no recorridos.
  • Lógica de pantalla compleja e interdependiente. Campos que remodelan el formulario a medida que cambian, secciones que aparecen de forma condicional según combinaciones de valores, recálculo en vivo en toda la página. Las anotaciones pueden expresar cierto control de campos, pero pasado un umbral moderado la lógica ya no encaja en un modelo declarativo.
  • Interacciones no estándar. Tableros de planificación con arrastrar y soltar, edición en lienzo en línea, comparaciones en pantalla dividida, actualizaciones colaborativas en tiempo real.
  • Paneles de control avanzados. Una pantalla de sala de control que combina un mapa en vivo, un diagrama de Gantt, mosaicos de KPI y un flujo de alertas personalizado no es una Página de Resumen, y fingir lo contrario produce lentamente un panel peor.
  • Bibliotecas de terceros y visualizaciones personalizadas. Incrustar D3, un SDK de mapas especializado o una representación SVG personalizada del diseño de un almacén implica hacerse cargo de la capa de vista, que es precisamente lo que Fiori Elements quita.
  • Front ends con mucha integración. Orquestar varios servicios, mezclar OData con fuentes REST o WebSocket, o gestionar un estado complejo del lado del cliente queda fuera de la visión de mundo de servicio único del framework.
  • Requisitos que no encajan en ningún floorplan. A veces la respuesta honesta a “¿qué plantilla?” es “ninguna”. Forzar la coincidencia más cercana crea una aplicación que va en contra de sus usuarios.

Y hay una trampa específica que vale la pena nombrar, porque los equipos experimentados caen en ella repetidamente: muerte por extensión. Un proyecto comienza como una aplicación limpia de Fiori Elements. Los requisitos crecen. Una columna personalizada aquí, una extensión de controlador allá, luego una sección personalizada, luego una salida que vuelve a implementar la mitad de la página. Dieciocho meses después, la aplicación es 70% solución alternativa, más difícil de mantener de lo que habría sido con freestyle, y está atada a detalles internos de la plantilla que pueden cambiar en una actualización. Reconocer —temprano— que la trayectoria de un requisito se dirige más allá de los límites de la plantilla es una de las decisiones de criterio más valiosas que toma un desarrollador sénior.

Lo que los desarrolladores de UI5 aún hacen

Si se eliminan las pantallas que Fiori Elements ahora genera, la descripción del trabajo restante sigue siendo extensa — y posiblemente más interesante:

  • Crear aplicaciones UI5 freestyle para todo lo mencionado en la sección anterior.
  • Extender aplicaciones de Fiori Elements: columnas y acciones personalizadas, extensiones de controlador, secciones personalizadas de Object Page — añadidos quirúrgicos que mantienen los beneficios de la plantilla mientras cubren la brecha.
  • Desarrollar UI5 Integration Cards para SAP Build Work Zone y Overview Pages.
  • Dar forma a experiencias de Work Zone — espacios, páginas y la composición de aplicaciones en algo coherente para un rol.
  • Depurar aplicaciones generadas. Cuando una columna no se renderiza silenciosamente, alguien debe rastrear si la causa es una anotación mal formada, una capacidad OData ausente, una caché de metadatos o una particularidad de la plantilla. Esto es genuinamente más difícil que depurar código que escribiste tú mismo, porque el código que estás leyendo es código que no escribiste.
  • Análisis de rendimiento — procesamiento por lotes, disciplina con $select/$expand, carga diferida, respuestas sobredimensionadas. Las aplicaciones basadas en metadatos producen consultas lentas con el mismo entusiasmo que las codificadas a mano.
  • Resolución de problemas de OData y servicios, donde realmente se origina la mayoría de los "errores de UI".
  • Mantener la base instalada. Años de aplicaciones freestyle se ejecutan hoy en producción y no se reescribirán solo porque exista una plantilla.
  • Diseñar UX personalizada dentro del lenguaje de diseño de Fiori — a medida sin resultar ajena.
  • Integrar con RAP, CAP, BTP y API externas, conectando el front end con el backend correcto de la manera correcta.
  • Elegir el enfoque. Plantilla, plantilla más extensiones o freestyle — por aplicación, con consecuencias de costo, UX y mantenimiento asociadas. Ningún generador toma esta decisión.

El hilo conductor: el framework absorbió la escritura. No absorbió la ingeniería.

Fiori Elements vs Freestyle UI5: Comparación práctica

CriterioFiori ElementsFreestyle UI5
Mejor ajusteLista/detalle estandarizados, CRUD, analítica estándarRecorridos personalizados, interacción compleja, UX a medida
FlexibilidadLimitada por floorplans y puntos de extensiónPrácticamente ilimitada
Velocidad de desarrolloMuy alta cuando el patrón encaja; cae bruscamente cuando se fuerza la plantillaMenor al inicio; estable a medida que crece la complejidad
MantenibilidadAlta — la lógica de la plantilla es problema de SAP; las actualizaciones aportan mejorasDepende por completo de la disciplina de tu equipo
Control de UXDeliberadamente limitado al estándar FioriTotal
Habilidades requeridasAnotaciones CDS/OData, catálogo de floorplans, conocimiento de RAP/CAP, APIs de extensiónSAPUI5 profundo: MVC, controles, enlace de datos, JavaScript/TypeScript
RiesgoBajo dentro de los límites de la plantilla; aumenta rápido más allá de ellos (proliferación de extensiones)Mayor coste inicial; inconsistencia de UX si no hay gobernanza
Ejemplo"Lista filtrable de órdenes de mantenimiento con una página de detalle editable""Tablero de despachador con asignación mediante arrastrar y soltar sobre un mapa de planta en vivo"

Lee la tabla como una regla de enrutamiento, no como una clasificación. El modo de fallo no es elegir la tecnología "incorrecta" en general, sino aplicar la herramienta de una columna al problema de la otra columna.

¿Fiori Elements significa menos trabajo de front-end?

La respuesta honesta tiene dos partes, y ambas son ciertas al mismo tiempo.

En escenarios estandarizados: sí, de forma drástica. El List Report clásico que antes consumía un sprint freestyle de dos semanas —barra de filtros, tabla responsiva, gestión de variantes, navegación, manejo de borradores— ahora es un día de modelado y anotación. Multiplicado en un despliegue de cuarenta aplicaciones, el ahorro es real y grande. Quien afirme lo contrario está defendiendo un modelo de facturación, no describiendo la realidad.

En aplicaciones de negocio complejas: no; el trabajo se reubica. Las horas dejan de invertirse en vistas XML y controladores, y pasan a invertirse en:

  • hacer que el modelo CDS y sus asociaciones sean correctos, porque la UI solo es tan buena como los metadatos que la sustentan;
  • crear y depurar anotaciones, lo cual es programación con otro nombre, con sus propios modos de error y su propia curva de especialización;
  • diseñar las capacidades del servicio OData: borradores, acciones, efectos secundarios, ayudas de valor;
  • crear extensiones exactamente donde termina la plantilla;
  • y tomar la decisión de arquitectura para cada aplicación del portafolio.

El efecto neto es un cambio en el apalancamiento, no una reducción del campo. Antes, la producción de un desarrollador se medía en pantallas construidas. Ahora, una pequeña cantidad de metadatos bien ubicados produce una aplicación completa, lo que significa que el desarrollador que entiende toda la cadena (modelo → servicio → anotación → plantilla → extensión) produce mucho más que antes, mientras que el desarrollador que solo sabía ensamblar controles ve automatizada su tarea específica. La demanda no desapareció. Subió en la pila.

Cómo deberían adaptarse los desarrolladores UI5

El perfil que el mercado recompensa es el del desarrollador que trabaja en toda la pila y dirige cada requisito a la herramienta adecuada. Una lista realista de inversión, aproximadamente en orden de urgencia:

  1. Fiori Elements en sí — el catálogo de floorplans, el vocabulario de anotaciones y, de manera crucial, los puntos de extensión y sus límites. Saber dónde termina la plantilla es tan importante como saber qué hace.
  2. OData V4 (manteniendo conocimientos de V2) — borradores, acciones, efectos secundarios y el modelo de capacidades del que dependen las plantillas de Fiori Elements V4.
  3. Anotaciones CDS — en un mundo impulsado por metadatos, este es el lenguaje en el que más se escribe.
  4. Fundamentos de RAP — definiciones de comportamiento, gestión de borradores y cómo la pila ABAP alimenta la plantilla.
  5. Fundamentos de CAP — la misma historia en BTP, para desarrollos nuevos y extensiones en paralelo.
  6. SAPUI5 freestyle, siempre afinado — es la vía de escape para cada caso difícil, y TypeScript es cada vez más el dialecto esperado.
  7. Conceptos básicos de SAP BTP — despliegue, destinos, servicios de launchpad/Work Zone, dónde viven realmente las aplicaciones en la nube.
  8. UI5 Web Components — el modelo de componentes que sobrevive a cualquier generación individual de framework.
  9. Oficio de pruebas y depuración — wdi5/OPA5, además de la habilidad específica de diagnosticar aplicaciones generadas mediante herramientas del navegador y seguimiento de anotaciones.
  10. Conocimiento de UX y de procesos de negocio — porque "¿esto debería ser estándar o personalizado?" es una pregunta de negocio con disfraz técnico, y responderla bien requiere comprender lo que el usuario realmente intenta lograr.

Profundizar en los diez puntos es un proyecto de varios años; está bien. El paso inmediato es más acotado: dominar Fiori Elements, seguir siendo capaz en freestyle y poder leer una vista CDS sin inmutarse. Esa combinación por sí sola coloca a un desarrollador por delante tanto del usuario que solo hace clic en plantillas como del resistente que solo trabaja en freestyle.

Respuesta final: ¿Fiori Elements reemplaza a los desarrolladores UI5?

No — y la pregunta en sí contiene una suposición falsa: que el valor de un desarrollador UI5 alguna vez estuvo en teclear código.

Fiori Elements reemplaza una tarea: codificar manualmente pantallas estandarizadas que se estaban reconstruyendo, con ligeras diferencias, cientos de veces en todo el ecosistema SAP. Esa tarea merecía ser automatizada, y los desarrolladores se benefician de su automatización del mismo modo que se beneficiaron de no escribir llamadas XHR sin procesar después de la llegada del enlace de datos.

Lo que permanece — y crece — es todo aquello que la plantilla no puede decidir: si un requisito encaja en un floorplan, cómo modelar el servicio para que las anotaciones se mantengan limpias, dónde extender y dónde retirarse, por qué la tabla generada es lenta, cómo se comunica el front end con RAP, CAP y el resto de BTP, y qué necesita realmente el usuario que haga la pantalla. Los desarrolladores bajo verdadera presión son aquellos cuyo conjunto de habilidades coincidía exactamente con la tarea automatizada. Los desarrolladores más demandados son aquellos que pueden mirar un backlog de veinte aplicaciones y decir correctamente: estas catorce son Fiori Elements, estas tres necesitan extensiones y estas tres deben ser freestyle — y luego construir las veinte.

Fiori Elements no reemplazó a los desarrolladores UI5. Reemplazó la parte menos interesante de su trabajo y elevó el valor del resto.

Preguntas frecuentes

¿Fiori Elements reemplaza a SAPUI5?

No. Fiori Elements está construido sobre SAPUI5: sus plantillas son aplicaciones SAPUI5 generadas a partir de metadatos. Reduce el código UI5 escrito manualmente para patrones estándar, pero SAPUI5 sigue siendo el framework subyacente y la herramienta necesaria cuando los requisitos superan las plantillas.

¿Sigue siendo relevante el UI5 freestyle?

Sí. UI5 freestyle es la opción correcta para recorridos de usuario personalizados, lógica de pantalla compleja, bibliotecas de terceros, visualizaciones personalizadas y cualquier aplicación que no encaje en ninguna plantilla; además, impulsa la gran base instalada de aplicaciones existentes que seguirán ejecutándose en producción durante años.

¿Fiori Elements es solo para aplicaciones simples?

No: es para aplicaciones estandarizadas, que pueden ser grandes y críticas para el negocio. La limitación no es el tamaño ni la importancia, sino la forma: la aplicación debe encajar en una plantilla compatible. Las aplicaciones muy interactivas, poco convencionales o con mucha integración quedan fuera de esa forma, independientemente de lo simples que sean.

¿Deben los desarrolladores UI5 aprender RAP o CAP?

Sí, al menos a nivel de conocimiento práctico. Las aplicaciones Fiori Elements se alimentan de RAP (en S/4HANA/ABAP) o CAP (en SAP BTP), y las anotaciones que definen la interfaz de usuario viven cada vez más en esos modelos. Un desarrollador UI5 que no pueda leer el modelo de backend ya no puede depurar completamente su propio front end.

¿Cuál es la principal diferencia entre Fiori Elements y UI5 freestyle?

Fiori Elements es declarativo: describes la aplicación mediante metadatos y anotaciones OData, y una plantilla estándar la renderiza. UI5 freestyle es imperativo: tú mismo construyes las vistas y los controladores con control total. El intercambio es velocidad de desarrollo y consistencia garantizada frente a flexibilidad y libertad de UX.

¿Puede Fiori Elements gestionar requisitos personalizados?

Parcialmente, mediante puntos de extensión definidos: columnas personalizadas, acciones personalizadas, extensiones de controlador, secciones personalizadas. La personalización ligera funciona bien. La personalización intensa se acumula en una proliferación de extensiones que es más difícil de mantener que el código freestyle, momento en el cual cambiar de enfoque es la decisión de ingeniería más sensata.

¿Sigue siendo UI5 una buena habilidad para los desarrolladores SAP?

Sí, posiblemente más estratégica que antes. UI5 sustenta al propio Fiori Elements, cada extensión es código UI5 y freestyle sigue siendo obligatorio para los casos difíciles. El perfil más sólido del mercado combina fundamentos de UI5 con fluidez en Fiori Elements, profundidad en OData y conocimiento de RAP/CAP.


¿Lo disfrutaste? ¡Compártelo!

Artículos relacionados