UI5 Web Components
Los UI5 Web Components son una biblioteca open source de web components independientes de cualquier framework, basada en los estándares de navegador Custom Elements y Shadow DOM, que implementa el diseño SAP Fiori. Los UI5 Web Components funcionan con React, Angular, Vue o HTML puro y complementan a SAPUI5: ofrecen controles SAP Fiori, no un framework de aplicaciones con modelos, enrutamiento ni floorplans.
Datos clave
- Tipo
- Biblioteca open source de web components con diseño SAP Fiori
- Capa
- Aplicaciones de UI
- Licencia
- Apache 2.0
- Versión mayor actual
- 2.x (2.0 publicada en julio de 2024)
- Paquetes npm principales
- @ui5/webcomponents, @ui5/webcomponents-fiori, @ui5/webcomponents-ai, @ui5/webcomponents-icons
- Quién trabaja con ello
- Desarrolladores web que utilizan React, Angular, Vue o JavaScript puro
- Se aplica a
- SAP BTP y cualquier aplicación web; independiente de los back-ends SAP
Capa: Aplicaciones de UIDónde se ubica ▾
Capa: Aplicaciones de UI
Abrir el mapa de arquitectura →¿Cómo funcionan los UI5 Web Components?
Los UI5 Web Components son elementos HTML personalizados. Un desarrollador instala un paquete npm, importa los componentes que necesita la aplicación y los utiliza como etiquetas, por ejemplo un botón o una shell bar, como cualquier otro elemento HTML.
El mecanismo tiene cuatro partes:
- Custom Elements registra cada componente como una etiqueta propia, para que el navegador sepa cómo mostrarlo y actualizarlo.
- Shadow DOM encapsula el marcado y los estilos de cada componente, de modo que el CSS de la página y el del componente no interfieren entre sí.
- Los temas proceden de los parámetros de theming de SAP como variables CSS; así es como los componentes siguen SAP Horizon o Quartz y pueden adoptar un tema personalizado del UI theme designer.
- El empaquetado corresponde a la aplicación: no existe una red de distribución de contenidos oficial, por lo que solo los componentes importados acaban en la compilación de la aplicación.
Los componentes se distribuyen en varios paquetes: controles básicos como campos de entrada, listas, tablas y diálogos; controles específicos de SAP Fiori como la shell bar, el asistente y la navegación lateral; controles relacionados con la IA; y el conjunto de iconos. Por tanto, los UI5 Web Components son una biblioteca de controles que cualquier stack web puede consumir, no un runtime que controla la aplicación.
¿Cuándo conviene utilizar UI5 Web Components en lugar de SAPUI5?
El criterio de decisión es qué framework controla la aplicación.
Utilice UI5 Web Components cuando:
- la aplicación ya está construida con React, Angular, Vue u otro framework web y debe tener el aspecto de SAP Fiori;
- un sitio estático o un portal necesita unos pocos elementos interactivos con estilo SAP Fiori sin un framework completo;
- la aplicación es un micro-frontend que debe permanecer aislado de la página en la que se ejecuta.
Utilice SAPUI5 cuando:
- la aplicación es una aplicación SAP Fiori en SAP S/4HANA o en el SAP Fiori Launchpad;
- la aplicación necesita modelos OData, enrutamiento, los floorplans de SAP Fiori elements o la adaptación por key user;
- el equipo trabaja dentro de las herramientas y el ciclo de vida estándar de SAP para aplicaciones SAP Fiori.
Para Alder Manufacturing, un portal de proveedores basado en React para Cedar Office Supply y Bright Freight es un caso típico de UI5 Web Components; una aplicación de aprobación de solicitudes de pedido en el launchpad no lo es. Los UI5 Web Components encajan cuando el framework web viene dado y SAP Fiori es el estándar visual.
¿Cómo funcionan los UI5 Web Components con React, Angular y SAPUI5?
- React: UI5 Web Components for React envuelve los componentes para que se comporten como componentes React, con propiedades y eventos tipados. El wrapper añade componentes de layout y componentes de gráficos propios.
- Angular: UI5 Web Components for Angular proporciona wrappers que admiten los formularios de Angular y el binding bidireccional sin soluciones provisionales en el esquema.
- Vue y JavaScript puro: los componentes se utilizan directamente como custom elements.
- SAPUI5: una aplicación SAPUI5 puede requerir un UI5 Web Component como si fuera un control normal. SAPUI5 asigna las propiedades, los slots, los eventos y los métodos a sus propias propiedades, agregaciones, eventos y métodos. La configuración utiliza la extensión ui5-tooling-modules de la UI5 CLI para empaquetar los paquetes npm.
Las antiguas bibliotecas wrapper de SAPUI5 para web components (sap.ui.webc.main, sap.ui.webc.fiori, sap.ui.webc.common) quedaron obsoletas en SAPUI5 1.120 y se eliminaron en 1.147, por lo que los desarrollos nuevos utilizan la integración directa. Los UI5 Web Components se conectan a cada framework mediante wrappers ligeros, no mediante un framework propio.
¿Dónde están los límites de los UI5 Web Components?
- Sin framework de aplicaciones. No hay modelos, ni binding OData, ni enrutamiento, ni ciclo de vida de componentes. Los aporta el framework anfitrión o el equipo.
- Sin floorplans. Los list reports, los object pages y otros floorplans de SAP Fiori elements no existen como páginas listas para usar; el equipo los compone a partir de componentes.
- Sin integración con el launchpad de serie. Ejecutar una aplicación de este tipo dentro del SAP Fiori Launchpad o de SAP Build Work Zone requiere un enfoque de integración propio; el launchpad basado en ABAP, por ejemplo, puede integrarla mediante el tipo de aplicación URL.
- No todos los controles SAPUI5 tienen equivalente. El conjunto de componentes es amplio, pero más reducido que la lista completa de bibliotecas de SAPUI5.
- Las actualizaciones corren a cargo del equipo. Como los componentes se empaquetan dentro de la aplicación, las nuevas versiones solo llegan cuando la aplicación se recompila y se vuelve a desplegar.
Nada de esto es un defecto: los UI5 Web Components dejan deliberadamente las decisiones de arquitectura al framework anfitrión.
¿Cuáles son los errores comunes con los UI5 Web Components?
- Buscar una red de distribución de contenidos. El proyecto espera que las aplicaciones empaqueten solo los componentes que importan. Solución: añada los paquetes al pipeline de compilación.
- Mezclar versiones mayores. La versión 2 cambió API respecto a la versión 1. Solución: actualice todos los paquetes
@ui5/webcomponents*a la vez y siga las notas de migración. - Confundir los controles SAP Fiori con el cumplimiento de SAP Fiori. Los controles siguen el diseño SAP Fiori; el layout de página, la navegación y la redacción tienen que seguir igualmente las SAP Fiori Design Guidelines.
- Mantener las antiguas bibliotecas wrapper de SAPUI5. Las aplicaciones que todavía utilizan
sap.ui.webc.*dejan de funcionar en las releases de SAPUI5 en las que esas bibliotecas se han eliminado. Solución: migre a la integración directa de web components. - Olvidar los recursos del tema. Los temas personalizados y la fuente SAP 72 proceden del contenido de theming de SAP; compruebe que la compilación los sirve.
La mayoría de los problemas con los UI5 Web Components provienen de la gestión de la compilación y de las versiones, no de los propios componentes.
¿UI5 Web Components frente a SAPUI5: cuál es la diferencia?
| UI5 Web Components | SAPUI5 | |
|---|---|---|
| Qué es | Web components independientes de cualquier framework con diseño SAP Fiori | Framework de aplicaciones empresariales con controles, modelos y enrutamiento |
| Quién controla la aplicación | React, Angular, Vue o HTML puro | El propio SAPUI5 |
| Datos y navegación | Los aporta el framework anfitrión | Modelos OData, data binding y enrutamiento integrados |
| Entrega | Paquetes npm, empaquetados en cada aplicación | Red de distribución de contenidos de SAP BTP, plataforma ABAP, SAP S/4HANA |
| Uso típico | Aplicaciones web y portales no SAPUI5 que deben tener el aspecto de SAP Fiori | Aplicaciones SAP Fiori en SAP S/4HANA y SAP BTP, incluido SAP Fiori elements |
Los UI5 Web Components comparten con SAPUI5 el lenguaje visual de SAP Fiori, pero SAPUI5 es un framework de aplicaciones completo, mientras que los UI5 Web Components son controles para otros frameworks.
Preguntas frecuentes
¿Los UI5 Web Components son de uso gratuito?
Sí. Los paquetes de UI5 Web Components, incluidos el wrapper para React y el paquete de iconos, se publican en npm bajo la licencia Apache 2.0. El contenido base de theming de SAP que utilizan, incluidos sus archivos de la fuente 72, también se publica bajo Apache 2.0.
¿Los UI5 Web Components sustituyen a SAPUI5?
No. El proyecto describe los UI5 Web Components como complementarios de UI5, no como su sucesor. SAPUI5 sigue siendo el framework para aplicaciones SAP Fiori completas, mientras que los UI5 Web Components sirven a las aplicaciones que ya utilizan otro framework web o ninguno.
¿Puedo utilizar UI5 Web Components dentro de una aplicación SAPUI5?
Sí. Las releases actuales de SAPUI5 permiten que una aplicación requiera UI5 Web Components y los utilice como controles SAPUI5 normales, con la extensión ui5-tooling-modules empaquetando los paquetes npm. Las antiguas bibliotecas wrapper sap.ui.webc están obsoletas y se han eliminado en las releases recientes.
¿Qué temas admiten los UI5 Web Components?
Los UI5 Web Components admiten los temas SAP Horizon, con Morning Horizon como tema por defecto más Evening Horizon y dos variantes de alto contraste, y los temas Quartz. También pueden cargarse temas personalizados creados con el UI theme designer.
¿Qué es UI5 Web Components for React?
UI5 Web Components for React es una biblioteca wrapper open source que hace que los UI5 Web Components se comporten como componentes React nativos, con definiciones de TypeScript y una gestión correcta de los eventos. UI5 Web Components for React añade además componentes de layout y componentes de gráficos que no forman parte de los paquetes base.
Fuentes
- SAPUI5 SDK: The UI5 ecosystem — UI5 Web Components
- SAPUI5 SDK: Using Web Components
- SAPUI5 SDK: Deprecated themes and libraries (sap.ui.webc libraries)
- SAP Help Portal: Passing User Settings to URL Applications (SAP Fiori launchpad, ABAP platform)
- SAP on GitHub: SAP Theming Base Content (license and 72 font files)
- Se aplica a
- SAP BTP
- Última revisión