sábado, 28 de abril de 2018

Dominio nuevo: uxsap.com

Pues nada, estrenamos dominio nuevo, uxsap.com. Más fácil de recordar, aunque como sigo utilizando blogger (a ver durante cuanto), se podrá seguir accediendo desde la url antigua, uxsap.blogspot.com.

Este post ha sido cortito, ¿verdad? ;)

miércoles, 25 de abril de 2018

OpenSAP cumple cinco añitos

El 29 de abril, OpenSAP cumple ya cinco añitos, que nos puede parecer poco tiempo pero gracias a ellos hemos aprendido mucho. ¡Felicidades, OpenSAP!


Y lo celebra añadiendo una nueva característica cada día, durante cinco días, comenzando desde este lunes pasado. Son pequeños detalles que no están nada mal.

miércoles, 18 de abril de 2018

Aplicación SAPUI5 para ver un PDF: Servicio oData (II)

En el post anterior, nos habíamos comenzado a pelear con la visualización de un PDF, generándolo desde SAP, ya fuese mediante un Smartform, un Adobe Form o la salida de un informe ABAP.

Pero ese PDF en SAP no nos vale para mucho, y para poder mostrarlo en una aplicación SAPUI5 necesitamos exponerlo de alguna forma. ¿Cómo lo vamos a hacer? Pues claro, mediante un servicio oData.

El objetivo final es crear una aplicación de tipo Master-Detail para mostrar un listado de autores en la parte maestra y un PDF con su bibliografía en la parte del detalle. Es ese PDF el que recuperaremos del formulario anterior y exponemos con nuestro servicio.

Así que vamos a tener que realizar los siguientes pasos:

  • Crear un servicio oData con una entidad de tipo Media.
  • Redefinir el método DEFINE de la Model Provider Class (XXX_MPC_EXT) para indicar qué propiedad será la que identifique el tipo de contenido.
  • En la Data Provider Class (XXX_DPC_EXT), implementar el método XXX_GET_ENTITYSET para devolver el listado de autores.
  • Si quisiésemos mostrar todos los datos de un único autor (aparte de un empleado), implementaríamos también el método XXX_GET_ENTITY, pero para este ejemplo esto NO lo vamos a hacer.
  • Implementar el método /IWBEP/IF_MGW_APPL_SRV_RUNTIME~GET_STREAM, que será donde devolveremos el contenido del PDF. ¿Y cuándo será invocado este método? Cuando solicitemos una entidad específica, añadiendo la opción $value.



lunes, 16 de abril de 2018

Curso de Git en OpenSAP

Hace unas cuantas semanas, veíamos los cursos que teníamos por delante en febrero del 2018. Uno de ellos era de Miríadax, y nos contaban cómo gestionar proyectos con Git y GitHub. No hacía referencia a SAP, por supuesto, pero nos podía ser útil para comprender y aprender a usar Git, la herramienta de control de versiones que nos viene integrada en el SAP WebIDE.

Pues ese curso ya ha finalizado, y por desgracia parece que no está abierto para consulta. Así que si al final no lo hicimos, ya es tarde para nosotros. Yo, por mi parte, entre la familia, el trabajo, otros cursos y actividades frikis varias, sólo pude hacer el primer módulo :(. Tengo que ver dónde solicitar días de más de 24 horas.

Pero nunca es tarde si la dicha es buena, ya que en OpenSAP ha comenzado un curso que nos va a ser todavía más útil, SAP Cloud Platform Version Control with Git.

Es decir, que esta vez si que vamos a aprender a usar la herramienta directamente en nuestra cuenta de SAP Cloud Platform.


El curso ya está abierto en su semana 0 (de preparación), y el martes (17 de abril de 2018) comienza la primera semana. A ver si esta vez, habiendo acabado ya otros cursos (o a punto de ello), me da tiempo a hacer éste.

jueves, 12 de abril de 2018

Aplicación SAPUI5 para ver un PDF: Introducción (I)

Una aplicación muy común que nos van a pedir en algún momento, es aquella que nos permitirá visualizar un PDF. Pero no un PDF cualquiera, no, nada de un archivo que hemos creado y colgado en algún repositorio, sino un smartform o un adobe form que ya tenemos en SAP y que queremos mostrar. O incluso algún report estándar que se usa mucho y queremos colgarlo en el portal. Nos puede venir a la mente aplicaciones estándar como la del recibo de nómina (my paystubs), donde vamos a ver las monedas de oro que cobramos mensualmente mediante la visualización de un PDF.

Pues nada, eso es lo que vamos a aprender en esta ocasión, la creación de un servicio oData que nos devolverá el contenido de un PDF y visualizaremos en una aplicación SAPUI5.

Lo veremos en tres post, que son los siguientes:

  • En el primero (en este), no jugaremos aún con Fiori. Lo que haremos será generar, en ABAP, el contenido de un PDF en una variable de tipo XSTRING, que es con lo que vamos a trabajar. Para ello, vamos a ver los pasos a seguir para smatforms y adobe forms y haremos un ejemplo más detallado con un report, del que recuperaremos la salida para generar más tarde el PDF. Ojo, que esto del report es sólo para tener un punto de partida, ser tan cutre no debería ser la norma.

  • En el siguiente post, crearemos un servicio oData para poner accesible el contenido del PDF: Aprenderemos a usar entidades de tipo "media" y a saber para qué sirve la opción $value, tocaremos la model provider class (MPC_EXT... sí, esa clase que nunca hace falta tocar) y pondremos disponible el contenido del PDF en la data provider class (DPC_EXT) mediante el método GET_STREAM, usando la función que hemos creado en el punto uno.

  • En el último post, mostraremos el PDF en nuestra aplicación SAPUI5. Para ello, usaremos un componente de tipo sap.ui.core.HTML, donde añadiremos el código HTML estándar que nos permita incrustar el PDF en la página. La URL a usar será la del servicio oData con la opción $value.

martes, 10 de abril de 2018

Extender un control UI estándar

Introducción

Buenas, perdonad la tardanza en realizar mi segundo post en el blog pero los proyectos y un enano de 15 días apenas me dejan tiempo (😉)

Hoy voy a mostraros cómo ampliar la funcionalidad de un control UI de una biblioteca estándar (sin destruir cosas 😏).

En nuestro caso vamos a cambiar la funcionalidad del control ViewSettingsDialog, que se encuentra en la librería sap.m.  Este control se trata de un popover y varias listas internas en pestañas diferentes para realizar operaciones de ordenar, agrupar o filtrar. Dentro de esas listas internas puede existir una barra de búsqueda para encontrar cualquier elemento de esas listas.

miércoles, 4 de abril de 2018

SAP Web IDE: Varios workspaces

Dentro del SAP Web IDE, cuando has hecho un montón de aplicaciones chorras para hacer posts y pruebas, comienzas a tener el área de trabajo (el workspace) hecho un asco, con más carpetas que uruk hai en casa de Saruman. Todo un lío, vaya. Y si encima mezclamos aplicaciones SAPUI5, Java... pues la liamos.

Que sí, que podemos descargar las aplicaciones en local o subirlas al Git... pero nos da pereza borrar y el número de carpetas en el workspace comienza a crecer. Yo soy muy cutre, y tengo una carpeta llamada "Almacén de aplicaciones" para mover ahí las aplicaciones y borrarlas del workspace general.

Pues ahora tenemos una nueva solución: En la última actualización del Web IDE (podemos ver las cosicas nuevas de marzo de 2018 en este vídeo), nos encontramos con una mejora interesante: La posibilidad de tener varios workspaces. Y para eso, vamos a tener acceso a una nueva herramienta: el Workspace Manager.


Entiendo que la idea de esta función es poder tener un workspace específico para cada tipo de aplicación: un workspace para aplicaciones HTML5 y uno o varios para aplicaciones multitarget (MTA, que podrían ser aplicaciones Java, módulos HDB. extensión de servicios S/4HANA o una combinación de varios). Aunque también nos va a permitir tener uno para, por ejemplo, aplicaciones de prueba y test y otro para desarrollos "reales", ¡hasta donde nos lleve la imaginación!