✒️SAP BTPFIORI / La creación de controles personalizados Por Jose Baz Suarez
SAP BTPFIORI La creación de controles personalizados
La creación de controles personalizados en SAPUI5
1. Introducción
SAPUI5 permite desarrollar controles personalizados (custom controls) cuando los controles estándar no satisfacen completamente las necesidades de la aplicación.
Estos controles se crean extendiendo las clases base del framework, lo que ofrece una gran flexibilidad para adaptar la interfaz a los requerimientos del negocio sin perder compatibilidad con Fiori.
El objetivo principal de los controles personalizados es reutilizar comportamientos y diseños específicos dentro de una o varias aplicaciones.
2. Concepto de control personalizado
Un control en SAPUI5 es un objeto de la clase base sap.ui.core.Control o alguna de sus subclases (por ejemplo, sap.m.Button, sap.m.Input).
Al crear un control propio, el desarrollador puede definir:
-
Sus propiedades (properties).
-
Sus eventos (events).
-
Su renderizado (cómo se mostrará en pantalla).
-
Su lógica interna (comportamiento interactivo).
Los controles personalizados siguen el patrón MVC, donde la lógica y la representación visual se mantienen separadas.
3. Estructura básica de un control personalizado
Un control personalizado se define con la función sap.ui.define() y extiende una clase base mediante .extend().
Ejemplo:
Descripción:
-
metadata: define las propiedades y eventos del control.
-
renderer: dibuja el contenido HTML que representará al control.
-
fireAlPresionar(): dispara un evento cuando se hace clic en el control.
4. Integración del control en una vista
Una vez definido, el control puede utilizarse como cualquier otro en una vista XML o JS.
Ejemplo de uso en XML:
Configuración necesaria:
-
Registrar el namespace del control personalizado en el manifest.json o en el encabezado XML:
xmlns:myns="mi.proyecto.control"
5. Ventajas de usar controles personalizados
-
Permiten extender la funcionalidad estándar sin modificar el framework.
-
Reutilizables en múltiples proyectos.
-
Separan la lógica de negocio del diseño visual.
-
Facilitan el mantenimiento y la escalabilidad del código.
-
Se integran de manera nativa con el sistema de binding de SAPUI5.
6. Buenas prácticas
-
Nombrar los controles usando el namespace del proyecto (mi.app.control.NombreControl).
-
Definir solo las propiedades y eventos necesarios para mantenerlos livianos.
-
Utilizar el objeto RenderManager (oRM) para escribir HTML de forma segura.
-
Implementar un archivo CSS asociado si el control requiere estilos propios.
-
Registrar los controles en el manifest.json para facilitar su uso en vistas XML.
-
Documentar su comportamiento y uso esperado.
7. Ejemplo con estilo CSS asociado
Archivo CSS:
Este CSS se puede incluir dentro de la carpeta css/ del proyecto y aplicarse automáticamente al renderizado del control.
8. Conclusión
Los controles personalizados en SAPUI5 ofrecen una poderosa herramienta para crear componentes reutilizables, dinámicos y ajustados a los estándares de diseño Fiori.
Permiten extender las capacidades nativas del framework y optimizar el desarrollo de interfaces más específicas, manteniendo la arquitectura modular y la compatibilidad con el ecosistema SAP.
Preguntas de repaso
-
¿Qué clase se utiliza como base para crear un control personalizado?
✅ sap.ui.core.Control -
¿Qué propiedad dentro del control define sus parámetros, eventos y agregaciones?
✅ metadata -
¿Qué función se utiliza para definir cómo se dibuja un control personalizado?
✅ renderer -
¿Qué palabra clave permite registrar un nuevo control dentro de SAPUI5?
✅ sap.ui.define -
¿Por qué se recomienda usar el objeto RenderManager (oRM)?
✅ Porque permite generar contenido HTML seguro y compatible con el framework.
 
 
 
Sobre el autor
Publicación académica de Jose Rodrigo Baz Suarez, en su ámbito de estudios para la Carrera Consultor SAP BTP Fiori.
Jose Rodrigo Baz Suarez
Profesión: Analista de Inventarios y Auditoria - Uruguay - Legajo: WX92M
✒️Autor de: 47 Publicaciones Académicas
🎓Cursando Actualmente: Carrera Consultor SAP MM Nivel Avanzado
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Presentación:
Analista con experiencia en sap, contabilidad, inventarios y costos. manejo de cierres, balances, reportes y mejoras de procesos administrativos.
Certificación Académica de Jose Baz

























