Aplicación freestyle SAPUI5
Una aplicación freestyle SAPUI5 es una app personalizada de SAP Fiori cuyas vistas, controladores y lógica de UI escriben directamente los desarrolladores con controles SAPUI5, en lugar de generar las pantallas a partir de anotaciones OData como hace SAP Fiori elements. Ofrece control total sobre el diseño y el comportamiento, y el mantenimiento de ese código queda en manos del cliente o del partner.
Datos clave
- Tipo
- Aplicación SAPUI5 personalizada con UI escrita a mano
- Capa
- Aplicaciones de UI
- Construido con
- Controles SAPUI5 en JavaScript o TypeScript; SAP Fiori tools (plantillas freestyle obsoletas)
- Se despliega en
- Repositorio ABAP de SAPUI5 (on-premise, Private Edition) o HTML5 Application Repository (SAP BTP)
- Propiedad del código
- Cliente o partner
- Quién trabaja con ello
- Desarrolladores SAPUI5, diseñadores UX, arquitectos de soluciones
- Se aplica a
- SAP S/4HANA on-premise y Private Edition, SAP BTP
Capa: Aplicaciones de UIDónde se ubica ▾
Capa: Aplicaciones de UI
Abrir el mapa de arquitectura →¿Cómo funciona una aplicación freestyle SAPUI5?
Una aplicación freestyle SAPUI5 utiliza la estructura estándar de aplicación SAPUI5, con todas las pantallas escritas por el equipo de desarrollo:
- Componente y app descriptor: el componente inicia la app; el manifest.json declara las fuentes de datos, los modelos, las rutas y los inbounds de navegación.
- Vistas: normalmente vistas XML que colocan controles SAPUI5 como tablas, formularios y gráficos.
- Controladores: código JavaScript o TypeScript para eventos, mensajes de validación, diálogos y navegación.
- Modelos: modelos OData para los datos del back-end, modelos JSON para el estado local y modelos de recursos para los textos.
- Integración con el launchpad: un target mapping o un inbound hace que la app sea accesible desde un tile o un enlace.
SAP Fiori tools sigue generando el esqueleto del proyecto, pero SAP marca ahora sus plantillas freestyle SAPUI5 como obsoletas y recomienda partir de la custom page de SAP Fiori elements para OData V4, que sigue dejando el contenido de la página en manos del equipo. Nada en la UI se deriva de anotaciones salvo que el equipo añada building blocks deliberadamente. Por tanto, una aplicación freestyle SAPUI5 se define por quién escribe la UI (el equipo), no por qué framework la ejecuta.
¿Cuándo conviene crear una aplicación freestyle SAPUI5?
La guía de SAP para desarrolladores recomienda usar SAP Fiori elements tanto como sea posible y código freestyle tanto como sea necesario. El desarrollo freestyle es el punto de partida adecuado cuando se cumple al menos una de estas condiciones:
- la interacción no corresponde a ningún floorplan, por ejemplo una pantalla de escaneo guiado o un tablero de planificación;
- la app debe trabajar con fuentes de datos que no son servicios OData anotados, o con sistemas externos;
- el equipo necesita un control detallado sobre el renderizado y el rendimiento;
- el diseño se aparta deliberadamente de los patrones estándar para un grupo de usuarios concreto.
Ejemplo: Alder Manufacturing quiere que el personal de almacén confirme las entregas de Bright Freight escaneando palés en una tableta, con botones grandes y un flujo de un solo paso. Ningún floorplan se ajusta a esa interacción, así que una página freestyle está justificada. En cambio, una lista de entregas abiertas para los supervisores encaja en un list report. La decisión de crear una aplicación freestyle SAPUI5 debe tomarse pantalla por pantalla, no por proyecto.
¿Cuáles son los puntos fuertes de una aplicación freestyle SAPUI5?
- Control total del diseño: es posible cualquier diseño, interacción o visualización que puedan expresar los controles SAPUI5.
- Cualquier fuente de datos: la app puede combinar servicios OData, API REST y datos locales sin necesidad de anotaciones.
- El mismo lenguaje visual: como utiliza controles y temas SAPUI5, una app freestyle bien diseñada tiene el mismo aspecto que el resto de SAP Fiori.
- Combinable: las páginas freestyle y las páginas de SAP Fiori elements pueden convivir en la misma app, y los building blocks de SAP Fiori elements para OData V4 pueden combinarse en diseños personalizados.
- Ampliable por terceros: SAPUI5 flexibility permite adaptar tanto apps freestyle como apps de SAP Fiori elements, siempre que la app active el flag flexEnabled y use IDs de control estables.
Una aplicación freestyle SAPUI5 es la opción que elimina el techo de lo que puede hacer la interfaz de usuario.
¿Dónde llega a su límite una aplicación freestyle SAPUI5?
- La responsabilidad sigue siendo del cliente. La guía de SAP sitúa el mantenimiento y la propiedad del código de las apps freestyle principalmente en el cliente o el partner, a diferencia de SAP Fiori elements, donde el framework asume una parte mayor.
- La coherencia es una tarea de diseño. El cumplimiento de SAP Fiori es automático en los floorplans, pero en las pantallas freestyle hay que construirlo y revisarlo.
- La evolución del framework es manual. Las nuevas funciones de los floorplans llegan a las apps de SAP Fiori elements a través del framework; las apps freestyle solo cambian cuando alguien las cambia, también cuando SAPUI5 declara obsoletas algunas API.
- Los conocimientos son específicos. El equipo necesita conocimientos de desarrollo web y del framework SAPUI5, no solo de OData y anotaciones.
- La lógica puede desplazarse al navegador. Las reglas programadas en un controlador no protegen los datos escritos a través de otros canales.
Estos límites son el precio de la flexibilidad: mantener en buen estado una aplicación freestyle SAPUI5 cuesta más a lo largo de su vida útil.
¿Freestyle, SAP Fiori elements o una custom page: cómo elegir?
SAP describe tres puntos de partida, y una misma app puede combinar los tres:
| Punto de partida | Qué se obtiene | Cuándo elegirlo |
|---|---|---|
| Floorplan de SAP Fiori elements a página completa | Diseño y lógica estándar a partir de anotaciones | Un floorplan corresponde a la tarea |
| Custom page con building blocks (OData V4) | Diseño propio, barras de filtros y tablas estándar | El diseño es especial pero algunas partes son estándar |
| Página freestyle SAPUI5 | Control completo | Nada estándar encaja |
La opción intermedia forma parte del flexible programming model, que permite a los desarrolladores combinar building blocks basados en metadatos con su propio código. Para los equipos que optan por freestyle por costumbre, suele ser el mejor compromiso. Elegir entre freestyle y SAP Fiori elements rara vez es una cuestión de todo o nada; el flexible programming model la convierte en una decisión página por página.
¿Cuáles son los errores frecuentes con las aplicaciones freestyle SAPUI5?
- Elegir freestyle por costumbre. Revise primero los floorplans; recurra a freestyle solo donde no encajen.
- Ningún responsable designado tras el go-live. Una queja frecuente en las comunidades de profesionales son las apps personalizadas que nadie mantiene una vez que el equipo del proyecto se marcha. Asigne la responsabilidad antes del despliegue.
- Desarrollar con una versión de SAPUI5 más reciente que la de producción. Pruebe con la versión del front-end server de destino.
- Reglas de negocio solo en el controlador. Mantenga también las validaciones en el servicio del back-end.
- IDs de control inestables. SAPUI5 flexibility identifica los controles por IDs estables, por lo que los IDs generados socavan la adaptación por key users y hacen frágiles las pruebas automatizadas.
La mayoría de los problemas de las apps freestyle SAPUI5 aparecen meses después del go-live, y por eso la responsabilidad importa tanto como la calidad del código.
¿Qué diferencia hay entre una aplicación freestyle SAPUI5 y SAP Fiori elements?
| Aplicación freestyle SAPUI5 | Aplicación SAP Fiori elements | |
|---|---|---|
| Cómo se define la UI | Vistas y controladores escritos a mano | Generada en tiempo de ejecución a partir de anotaciones OData y floorplans |
| Mantenimiento y propiedad del código | Principalmente cliente o partner | Compartidos, con una parte mayor asumida por el framework de SAP |
| Cumplimiento de SAP Fiori | Implementación y revisión propias | En gran medida automático |
| Personalización | Ilimitada | Puntos de extensión, building blocks y código personalizado |
| Conocimientos necesarios | Desarrollo web y SAPUI5 | Anotaciones, OData y los floorplans |
Ambas generan apps SAPUI5; la diferencia está en si la interfaz de usuario la controla el equipo o el framework.
Preguntas frecuentes
¿Una aplicación freestyle SAPUI5 sigue siendo una app de SAP Fiori?
Puede serlo. Una aplicación freestyle SAPUI5 usa los mismos controles y temas que las demás apps de SAP Fiori y puede ejecutarse en el SAP Fiori Launchpad. Que sea una buena app de SAP Fiori depende de si el equipo siguió las SAP Fiori Design Guidelines.
¿Puedo combinar SAP Fiori elements y código freestyle en una misma app?
Sí. SAP admite expresamente combinar floorplans completos de SAP Fiori elements, custom pages con building blocks y páginas freestyle SAPUI5 en una misma app. Los building blocks del flexible programming model también pueden reutilizarse dentro de custom pages, dentro de los requisitos previos de ese modelo.
¿Pueden los key users adaptar una aplicación freestyle SAPUI5?
SAPUI5 flexibility admite tanto apps freestyle como apps de SAP Fiori elements, de modo que los key users pueden realizar adaptaciones de UI sin modificar el código original. Los desarrolladores deben preparar la app: activar el flag flexEnabled en el app descriptor y asignar un ID estable a cada control y vista.
¿Pueden ejecutarse aplicaciones freestyle SAPUI5 en SAP S/4HANA Cloud Public Edition?
Public Edition permite desplegar apps personalizadas de SAP Fiori, creadas sobre servicios OData expuestos como servicios de UI, en el repositorio ABAP de SAPUI5 del tenant de desarrollo. SAP documenta las apps personalizadas de SAP Fiori en general y no por tipo de app, así que consulte el SAP Help Portal para su release antes de planificar allí una app freestyle.
¿Necesito TypeScript para una aplicación freestyle SAPUI5?
No. Las apps freestyle SAPUI5 pueden escribirse en JavaScript o TypeScript. TypeScript añade comprobación de tipos y soporte en el editor, lo que ayuda a los equipos más grandes, pero la app resultante se ejecuta en el mismo runtime de SAPUI5 en ambos casos.
Fuentes
- SAPUI5 SDK: Developing apps with modern concepts — guidance for developers
- SAP Help Portal: Flexible programming model (SAPUI5)
- SAP Help Portal: SAPUI5 flexibility
- SAP Help Portal: UI development in SAP S/4HANA Cloud Public Edition
- SAP Help Portal: What Is HTML5 Application Repository? (SAP BTP)
- Se aplica a
- SAP S/4HANA on-premise · SAP S/4HANA Cloud Private Edition · SAP BTP
- Última revisión