Flexible Programming Model
El flexible programming model es el enfoque de SAP Fiori elements para OData V4 que combina en una misma app building blocks basados en metadatos, extension points, controller extensions y custom pages con código SAPUI5 freestyle. El flexible programming model elimina la elección de todo o nada entre un floorplan generado y una app SAPUI5 escrita íntegramente a mano.
Datos clave
- Tipo
- Enfoque de desarrollo dentro de SAP Fiori elements para OData V4
- Capa
- Aplicaciones de UI
- Herramientas principales
- Building blocks (sap.fe.macros), custom pages (sap.fe.core.fpm), controller extensions
- Requisito previo
- Servicio OData V4 con anotaciones de UI
- Construido con
- SAP Fiori tools en SAP Business Application Studio o Visual Studio Code
- Quién trabaja con ello
- Desarrolladores SAP Fiori, desarrolladores CAP y RAP, diseñadores de UX
- 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 el flexible programming model?
El flexible programming model no es un framework aparte, sino un conjunto de opciones que SAP Fiori elements para OData V4 ofrece para ir más allá de los floorplans mientras el framework sigue al mando:
- Extension points en list reports y object pages admiten secciones, columnas y acciones personalizadas escritas en SAPUI5.
- Building blocks colocan elementos basados en metadatos, como una tabla, una barra de filtros o un campo, donde haga falta.
- Controller extensions y la ExtensionAPI permiten que el código propio reaccione a eventos del framework, como el guardado o la navegación.
- Custom pages añaden al enrutamiento de la app una página con su propia vista XML. La página se ejecuta sobre el runtime de SAP Fiori elements (componente sap.fe.core.fpm), con el contexto de binding de OData, la navegación a las páginas estándar y el soporte de building blocks.
Por tanto, el flexible programming model es una escala gradual entre la UI generada y la UI escrita a mano, que se decide página a página y sección a sección.
¿Qué son los building blocks en SAP Fiori elements?
Los building blocks son elementos de UI reutilizables y basados en anotaciones de SAP Fiori elements para OData V4, los mismos elementos que usa el framework para montar sus floorplans.
- No son controles, sino plantillas. Un building block es un conjunto de instrucciones de templating. En tiempo de ejecución genera los controles adecuados a los datos vinculados: un texto para una propiedad de tipo string, un selector de fecha para una fecha.
- Se configuran en tres lugares. Las anotaciones del servicio definen el comportamiento por defecto, los atributos XML en línea lo afinan y el manifest prevalece sobre ambos cuando hay conflicto.
- Se referencian por ruta de metadatos. Un building block apunta a un entity set, una propiedad o una anotación, en lugar de vincular columnas a mano.
- Ejemplos: Table, FilterBar, Chart, Field, Share y Page.
Como leen las mismas anotaciones que los floorplans, los building blocks heredan la gestión de variantes, la personalización y el reconocimiento del draft. Los building blocks son la razón por la que una custom page puede seguir pareciendo y comportándose como una página estándar de SAP Fiori elements.
¿Cuándo conviene usar el flexible programming model?
La recomendación de SAP es usar tanto SAP Fiori elements como sea posible y tanto SAPUI5 freestyle como sea necesario:
| Requisito | Punto de partida |
|---|---|
| Un list report y una object page se ajustan a la tarea | Floorplan de página completa; añada extension points solo para las carencias |
| El floorplan encaja, pero un área necesita una visualización especial | Sección personalizada o columna personalizada dentro del floorplan |
| El diseño es especial, pero el filtrado, las tablas y los formularios son estándar | Custom page con building blocks |
| La interacción es única y los datos no son OData V4 | Página SAPUI5 freestyle |
Las cuatro opciones pueden convivir en una misma app: un cockpit de proveedores en Alder Manufacturing podría combinar un gráfico personalizado con un building block Table estándar y, después, abrir una object page estándar.
Prueba de decisión: si una página que piensa construir en freestyle contiene una barra de filtros y una tabla estándar, pruebe primero una custom page con building blocks. El flexible programming model es la elección correcta cuando el diseño es personalizado pero las piezas son estándar.
¿Cuáles son los puntos fuertes del flexible programming model?
- Sin elección rígida. Los equipos no tienen que abandonar SAP Fiori elements en cuanto un requisito queda fuera de un floorplan.
- Comportamiento estándar sin coste adicional. Los building blocks aportan desde el framework el filtrado, las variantes, los mensajes, la gestión de draft y la accesibilidad.
- Las anotaciones siguen siendo la fuente de verdad. Una etiqueta modificada en las anotaciones del servicio actualiza por igual las páginas de floorplan y las custom pages.
- Superficie de extensión soportada. Las controller extensions y la ExtensionAPI ofrecen al código propio puntos de enganche documentados que resultan más fáciles de mantener estables entre actualizaciones de SAPUI5.
Para las apps OData V4, el flexible programming model es la forma más directa de añadir UI personalizada sin renunciar a lo que SAP Fiori elements ya ofrece.
¿Dónde termina el alcance del flexible programming model?
- Solo OData V4. Los building blocks y las custom pages pertenecen a SAP Fiori elements para OData V4. Una app OData V2 conserva los extension points de V2; adoptar el modelo implica migrar la app y el servicio a V4.
- Depende de la versión. Los building blocks llegan release a release, así que una app solo puede usar lo que ofrece la versión de SAPUI5 del sistema de destino; la referencia de la API indica el release en el que cada building block pasó a estar disponible.
- No todas las funciones del floorplan se trasladan. SAP documenta, por ejemplo, que crear una card para la sección Insights de My Home no está disponible cuando el building block de tabla se encuentra en una custom page o en una sección personalizada.
- El uso en freestyle tiene requisitos previos. Los building blocks pueden aparecer en apps SAPUI5 freestyle, pero la configuración que necesita cada building block debe comprobarse en la documentación de SAPUI5 del release en uso.
- SAP S/4HANA Cloud Public Edition sigue sus propias reglas de extensibilidad para las apps construidas por el cliente; consulte la documentación de esa edición antes de planificar una.
El flexible programming model amplía lo que SAP Fiori elements puede hacer; no elimina la dependencia de OData V4 ni de unas anotaciones bien diseñadas.
¿Cuáles son los errores habituales con el flexible programming model?
- Reconstruir a mano elementos estándar. Una tabla personalizada con su propia lógica de filtrado duplica los building blocks Table y FilterBar. Configure el building block en su lugar.
- Configurar en tres lugares. Cuando las anotaciones, los atributos XML y la configuración del manifest describen la misma tabla, el manifest prevalece y los demás parecen no funcionar. Elija un solo lugar para cada ajuste.
- Cargar fragments de forma incorrecta. SAP exige que los fragments cargados dinámicamente que contienen building blocks se carguen mediante el método loadFragment de la ExtensionAPI.
- Corregir la UI en lugar del servicio. Una etiqueta que falta suele ser un problema de anotación; parchearla en código propio la oculta de todas las demás páginas.
- Ignorar la versión de SAPUI5 de producción. Los building blocks probados en el release más reciente pueden no existir en el front-end server.
La mayoría de los problemas del flexible programming model son errores de configuración o de reparto entre capas, no límites del propio modelo.
Flexible programming model vs. SAPUI5 freestyle: ¿cuál es la diferencia?
| Flexible programming model | SAPUI5 freestyle | |
|---|---|---|
| Runtime | SAP Fiori elements para OData V4 | Solo el framework de aplicaciones SAPUI5 |
| Qué escriben los desarrolladores | Anotaciones, uso de building blocks, vistas personalizadas y controller extensions | Vistas, controladores y acceso a datos, todo a mano |
| Comportamiento estándar | Barra de filtros, tablas, variantes, draft y mensajes desde el framework | Implementado o conectado por el equipo |
| Fuente de datos | Servicio OData V4 con anotaciones | Cualquier fuente: OData V2 o V4, REST, datos locales |
| Mantenimiento | Compartido: SAP mantiene las partes del framework y el equipo las personalizadas | Íntegramente a cargo del equipo |
El flexible programming model conserva el runtime de SAP Fiori elements y añade código propio donde hace falta; SAPUI5 freestyle parte del código propio y solo incorpora elementos estándar si el equipo los construye.
Preguntas frecuentes
¿Está disponible el flexible programming model para apps OData V2?
No. Los building blocks y las custom pages forman parte de SAP Fiori elements para OData V4. Las apps de SAP Fiori elements para OData V2 extienden sus floorplans mediante los extension points de V2, así que usar el flexible programming model requiere un servicio OData V4 y el runtime de V4.
¿Es lo mismo el flexible programming model que SAPUI5 freestyle?
No. SAPUI5 freestyle significa escribir vistas y controladores directamente sobre el framework SAPUI5. El flexible programming model conserva el runtime de SAP Fiori elements para OData V4 y permite a los desarrolladores añadir vistas personalizadas, controller extensions y building blocks, de modo que el comportamiento estándar sigue procediendo del framework.
¿Qué es una custom page en SAP Fiori elements?
Una custom page es una página con su propia vista XML, añadida a una app de SAP Fiori elements para OData V4 mediante la configuración de enrutamiento del manifest. Una custom page se ejecuta sobre el runtime de SAP Fiori elements, recibe el contexto de binding de OData y puede contener building blocks.
¿Se pueden usar building blocks dentro de una app SAPUI5 freestyle?
Sí, con límites. SAP documenta algunos building blocks, como Share, para apps SAPUI5 freestyle y anima a combinar building blocks con código freestyle. Requisitos como un modelo OData V4 y el componente de la app varían según el building block y el release de SAPUI5.
¿Sustituye el flexible programming model a los floorplans de SAP Fiori elements?
No. SAP recomienda un floorplan de página completa siempre que encaje, porque reutiliza la mayor parte del diseño y la lógica estándar. El flexible programming model añade secciones personalizadas, custom pages y building blocks para lo que un floorplan no cubre, dentro de la misma app.
Fuentes
- SAP Help Portal: Developing Apps with SAP Fiori Elements (SAPUI5, building blocks and custom pages)
- SAPUI5 SDK: Building Blocks (SAP Fiori elements for OData V4)
- SAP Help Portal: Extension Points for Pages — custom pages (SAPUI5)
- SAP Help Portal: Developing Apps with Modern Concepts — Guidance for Developers (SAPUI5)
- SAP Help Portal: Extension Architecture Guide — Presentation Tier Guidance
- Se aplica a
- SAP S/4HANA on-premise · SAP S/4HANA Cloud Private Edition · SAP BTP
- Última revisión