Mostrando entradas con la etiqueta pdf. Mostrar todas las entradas
Mostrando entradas con la etiqueta pdf. Mostrar todas las entradas

jueves, 10 de mayo de 2018

Aplicación SAPUI5 para ver un PDF: Creando la app (y III)

En post anteriores, habíamos visto los pasos necesarios para crear un servicio oData en el Gateway que nos devolviese un PDF.

  • En un primer post, habíamos creado un report de ejemplo que nos devolvía un listado ABAP y lo transformábamos en PDF mediante el SPOOL. Era un modo un poco cutre, lo suyo sería crear un Adobe form o un smartform, pero como no era el objetivo del post, lo hicimos en plan rápido.

  • En el segundo post vimos cómo teníamos que crear el proyecto en la SEGW para poder generar el servicio oData que nos devolverá el contenido de un PDF, así como tratar las clases ABAP para devolver el PDF.

Así que ya tenemos preparada la parte de SAP al completo. ¿Qué nos toca ahora? Pelearnos con el SAP Web IDE para crear la aplicación SAPUI5. Será una aplicación de tipo Master-Detail, en la que mostraremos un listado de autores en la parte del Master y un PDF con sus libros en la parte del Detail.

Y el resultado que buscamos será algo como lo siguiente:



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.



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.