SAP Fiori Elements y floorplans

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 ▾
Dónde se ubica: L3 · Aplicaciones de UICapa: Aplicaciones de UI.L1L2L3L4L5L6BTP

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:

  1. Extension points en list reports y object pages admiten secciones, columnas y acciones personalizadas escritas en SAPUI5.
  2. Building blocks colocan elementos basados en metadatos, como una tabla, una barra de filtros o un campo, donde haga falta.
  3. Controller extensions y la ExtensionAPI permiten que el código propio reaccione a eventos del framework, como el guardado o la navegación.
  4. 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:

RequisitoPunto de partida
Un list report y una object page se ajustan a la tareaFloorplan de página completa; añada extension points solo para las carencias
El floorplan encaja, pero un área necesita una visualización especialSección personalizada o columna personalizada dentro del floorplan
El diseño es especial, pero el filtrado, las tablas y los formularios son estándarCustom page con building blocks
La interacción es única y los datos no son OData V4Pá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?

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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 modelSAPUI5 freestyle
RuntimeSAP Fiori elements para OData V4Solo el framework de aplicaciones SAPUI5
Qué escriben los desarrolladoresAnotaciones, uso de building blocks, vistas personalizadas y controller extensionsVistas, controladores y acceso a datos, todo a mano
Comportamiento estándarBarra de filtros, tablas, variantes, draft y mensajes desde el frameworkImplementado o conectado por el equipo
Fuente de datosServicio OData V4 con anotacionesCualquier fuente: OData V2 o V4, REST, datos locales
MantenimientoCompartido: 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

Se aplica a
SAP S/4HANA on-premise · SAP S/4HANA Cloud Private Edition · SAP BTP
Última revisión

Para profundizar

SAP, SAP Fiori, SAPUI5, SAP S/4HANA, SAP BTP y los demás productos y servicios de SAP mencionados son marcas comerciales o marcas registradas de SAP SE (o de una empresa afiliada de SAP) en Alemania y otros países. Esta guía es independiente y no está afiliada, patrocinada ni respaldada por SAP SE.