2000px-sap_2011_logo-svg

SAP es una empresa multinacional alemana dedicada al diseño de productos informáticos de gestión empresarial, tanto para empresas como para organizaciones y organismos públicos.

Competidor directo del otro gigante del sector, Oracle, se calcula que «entre el 70% y el 80% del mercado de grandes empresas» utilizan sus productos. Sus productos incluyen SAP ERP, SAP Business Warehouse (SAP BW), SAP BusinessObjects software, y SAP HANA.

En los últimos tiempos SAP se ha propuesto mejorar la experiencia de usuario de sus aplicaciones, en especial las destinadas a usuarios finales de SAP. Para ello, ha creado la SAP User Experience Strategy, una estrategia en base a la que desde diferentes puntos de vista (NEW, RENEW y ENABLE) se quiere conseguir dicho objetivo.

Uno de los medios que han puesto a disposición de los desarrolladores para llevar a cabo la estrategia SAP User Experience es SAPUI5.

¿Qué es SAPUI5?

SAPUI5 es un conjunto de librerías Javascript para el desarrollo y diseño de aplicaciones de negocio SAP basadas en HTML5. Es un framework de programación que facilita el desarrollo de aplicaciones web client-side que cumplen los principios de la SAP User Experience Strategy. Además del uso de los estándares HTML5, CSS3 y Javascript, tambien utiliza otras herramientas: jQuery, QUnit, jQueryUI, jQuery Mobile, cubiq, Zynga Scroller, LESS, DataJS, D3, JSZip, Google-Caja JS HTML Sanitizer, MobiScroll, SinonJS, URI.js, Flexis.js para el frontend y otras como oData, REST, JSON, Atom, XML para la comunicación con el backend.

A la hora de implementar estas aplicaciones SAPUI5 se pueden utilizar diferentes entornos de desarrollo como Eclipse, Visual Studio o WebStorm.

Principios de las aplicaciones SAPUI5

Las aplicaciones SAPUI5 deben cumplir los principios de la estrategia SAP User Experience:

Aplicaciones SAPUI5 orientadas a roles: Las aplicaciones SAPUI5 deben estar pensadas para los usuarios que van a utilizarlas. Sólo deben mostrar los datos que un determinado rol de negocio quiere ver y ninguno más. Se trata de dividir las transacciones que conocemos hasta ahora, en pequeñas aplicaciones orientadas a las tareas concretas del rol que las va a utilizar.

Aplicaciones SAPUI5 responsive: Las aplicaciones SAPUI5 deben ofrecer una interfaz de usuario atractiva, y a la vez sencilla e intuitiva, que ofrezca una experiencia de usuario buena y equivalente sea cual sea la plataforma o dispositivo desde la que se acceda, independientemente de versión, sistema operativo, navegador, resolución, etc.

Aplicaciones SAPUI5 simples: Las aplicaciones SAPUI5 además de estar orientadas a roles, deben ofrecer la funcionalidad de una manera sencilla y simple. En el desarrollo de aplicaciones SAPUI5 se sigue la regla 1-1-3: 1 usuario, 1 caso de uso, 3 pantallas como máximo. Si la aplicación que estamos desarrollando no puede resumirse en 3 o menos pantallas, deberemos rediseñarla o dividirla en varias aplicaciones SAPUI5.

Aplicaciones SAPUI5 coherentes: Las aplicaciones SAPUI5 deben hablar el mismo idioma. Esto se refiere a que deben utilizar elementos y estilos comunes de manera que un usuario que sepa utilizar una aplicación SAPUI5, sepa utilizar cualquiera otra. Para ello, existen themes y recursos web a disposición de los desarrolladores SAPUI5.

Aplicaciones SAPUI5 disponibles al instante: Este principio está más relacionado con las aplicaciones SAP Fiori UX enmarcadas en el enfoque RENEW de la estrategia User Experience de SAP. Se refiere a la disponibilidad de una de estas aplicaciones Fiori, que también son aplicaciones SAPUI5 ya desarrolladas y puestas a disposición por SAP que pueden instalarse y usarse en poco tiempo.

Arquitectura de las aplicaciones SAPUI5

Desarrollar una aplicación SAPUI5 significa, diseñar una interfaz y definir desde dónde se van a obtener los datos que va a tratar esta interfaz. Para ello, se utiliza el paradigma MVC, es decir:

  • Modelo: Serán las fuentes de datos de los que se nutrirá la aplicación, podrán ser SAP o no SAP y podrán estar basados en diferentes formatos como JSON, XML u oData.
  • Vista: Ficheros en los que se diseñará la estructura y formato de la aplicación SAPUI5 en cuestión: layouts, controles, tablas, etc. Pueden desarrollarse en los siguientes formatos: Javascript, XML, HTML o JSON.
  • Controlador: Ficheros Javascript en los que se definirá la lógica de negocio de la interfaz, se atenderá a eventos, se realizarán validaciones y se crearán modelos con los cuales se pueda establecer la relación entre la aplicación y el backend de donde procedan los datos a tratar.

Fiori y SAPUI5

SAP Fiori es un conjunto de aplicaciones comerciales completamente implementadas utilizando la tecnología SAPUI5. Para la comunicación con el backend utiliza oData, y actualmente SAP ofrece casi 200 aplicaciones Fiori.
Para la implementación de nuevas aplicaciones Fiori, es necesario conocimiento sobre SAPUI5, HTML5, jQuery y oData.

Algunas ventajas que nos brinda SAPUI5

  • Funciona para cualquier tipo de dispositivo (Desktop, Tablet y Móvil).
  • Desarrollada para todo tipo de sistemas operativos (Windows, Linux, Android, IOS, etc.).
  • Sencilla, ligera y rápida.
  • Ofrece componentes gráficos de una complejidad alta que permite crear aplicaciones de negocio de un modo muy productivo.
  • Su uso combinado con SAP Gateway y otras fuentes permite crear aplicaciones consumiendo fuentes de datos diversas de forma transparente al usuario.
  • Permite desplegar apps de SAPUI5 en Stack SAP Java, en SAP ABAP, en un servidor estándar Java como Tomcat/WebSphere, etc.
  • Posibilita aprender a desarrollar SAPUI5 con saber HTML, CSS3 y JavaScript.
  • Es personalizable.

Conclusión

A nivel personal, considero que me he topado con uno de los mejores (sino el mejor)  frontend framework, para el desarrollo ágil y evolutivo de aplicaciones web client-side.

El desarrollo de widgets, formularios, grillas, paneles y demás elementos interactivos, ya no es un problema con SAPUI5. La comunicación con la información a traves de los controladores también es amigable, permitiendo impactar nuestras reglas de Lógica de Negocio, con mínimos conocimientos de intérpretes basados en prototipos y por supuesto, Programación Orientada a Objetos.

En resúmen, solo necesitamos un poco de JavaScript, HTML y CSS/SASS, luego SAPUI5 hará el resto.

 

Links de interés:

SAPUI5 Developer Guide

SAPUI5 Explored Entities

SAPUI5 Tutorials

SAP Fiori