miércoles, 16 de agosto de 2017

WebIDE: Desplegar una aplicación (I, en SAP on-premise)

La verdad es que hemos visto como hacer unas cuantas cosillas: crear una aplicación, crear un servicio oData, enlazarlos, configurar el SAP Cloud Connector... ¡Pero no hemos visto cómo desplegar la aplicación! Y digo yo que ya va siendo hora, ¿no?

Eso sí, podemos tener tema para largo, así que lo haremos sencillo y por partes. De momento, hoy vamos a ver cómo desplegar nuestra aplicación en nuestro servidor SAP on-premise, para aquellos que tengan Fiori instalado en sus propias maquinitas y no en la nube. Que, hoy por hoy, serán mayoría. No vamos a hablar de asignar al catálogo, crear autorizaciones, etc. Sólo de mover la aplicación a SAP.

Eso sí, antes de nada, que no se nos olvide comprobar qué versión de SAPUI5 tenemos en nuestro SAP, no sea que luego la aplicación no nos valga y nos llevemos un chasco mayor que cuando Rocky Balboa se enfrentó a M.A. Barracus. Y eso lo podemos descubrir gracias a este post (lo de SAPUI5, no lo de Rocky).



Desplegar la aplicación


La verdad es que es muy sencillo, más que tirar el Anillo Único a la Grieta del Destino. Lo difícil es el viaje, ya sea crear la aplicación SAPUI5 o cruzarse todo Mordor.

Lo primero es seleccionar la carpeta de nuestra aplicación y elegir en el menú Deploy -> Deploy to SAPUI5 ABAP Repository.


Acto seguido nos sale una pantalla, donde vamos a elegir el sistema que queremos usar. Ahí vamos a marcar nuestro Destination... pero ojo, que ese destination debe poseer ciertos valores. Podemos recordar como crearlo en este post y revisar si el valor de WebIDEUsage incluye dev_abap.

WebIDEUsage = odata_abap,ui5_execute_abap,dev_abap

Además, si estamos usando el SAP Cloud Connector, debemos dar autorización a dos rutas de "la SICF":

/sap/bc/bsp
/sap/bc/ui2

Al desplegar la aplicación tenemos dos opciones, desplegar una nueva o actualizar una existente, así que elegimos la adecuada dependiendo de si ya la habíamos desplegado antes o no.

Esta pantalla también nos va a informar sobre la versión SAPUI5 de nuestra aplicación y la versión que tenemos instalada en SAP, así que a andarse con ojo.

Y yo sin preocuparme en revisar la versión

La diferencia entre las dos opciones de despliegue es que si elegimos desplegar una ya existente, nos aparecerá un paso más donde seleccionaremos la aplicación que vamos a volver a desplegar. Ojo, que vamos a subir TOOOOODOS los ficheros, borrándose la aplicación completa y volviéndose a desplegar. Si esa aplicación la estamos realizando con alguien más, lo suyo es hacerlo con un gestor de versiones de por medio, como por ejemplo el Git que viene como servicio del SAP Cloud Platform.

En este ejemplo, donde desplegamos nuestra aplicación por primera vez, tenemos que darle un nombre, una descripción y el paquete donde va a estar incluida.


Aquí debo añadir que el paquete no permite escribirlo manualmente y hay que seleccionarlo con el Browser... pero a mí no me funciona todo lo bien que debería, y aunque añada en la búsqueda un Z* (o lo que sea) y pulse enter no me hace caso nunca a la primera, y siempre tengo que salir, volver al paso anterior, volver a avanzar... será que el WebIDE no me quiere, pero es como si le costase obtener el listado de paquetes. No desesperéis, acabará saliendo (aunque tengáis que iniciar el proceso de despliegue dos o tres veces).

¿Cómo que no hay paquetes Z? A mí no me engañes, ¿eh?

Si no hemos elegido la instalación en local, nos pedirá una orden de transporte. Podemos seleccionar una existente o crearnos una nueva desde la propia herramienta.

La leche, qué de órdenes tengo, a ver si limpio un poco

Una vez desplegada, ¡ya la podemos ver en nuestra SE80 - BSP Application! Ahí tendremos todos los ficheros y alguno más que no conocemos pero que SAP crea para sus propias necesidades. No os preocupéis, todo es normal aunque no sea al 100% igual que en el WebIDE.




A probar la aplicación


Una vez en nuestro servidor, ya sólo tenemos que añadir la aplicación al rol-instancia correspondiente en la LPD_CUST, al catálogo/grupo de Fiori, dar la autorización al servicio oData (IWSG e IWSV). Esto es parte de la implantación básica y daría para otro post aparte, así que no lo voy a contar aquí ahora :P.

Sin embargo, si la aplicación la hemos creado con un index.html (depende de la versión SAPUI5 usada y del tipo de template), podemos probar a ejecutar dicho index.html directamente desde la SE80, que estará en la carpeta Pages with Flow Logic. 



Eso sí, si lo hacemos tal cual nos va a fallar. ¿Por qué? Porque en el WebIDE la ruta relativa que se usa para cargar SAPUI5 es diferente que en SAP.
Así que tenemos que buscar el index.html y cambiar la ruta del "sap-ui.bootstrap" por "./resources/sap-ui.core.js" .


También podrías utilizar la ruta absoluta de la librería SAPUI5 puesta a disposición en la nube, según este enlace, eligiendo la misma versión que tengas en tu SAP on-premise. Por ejemplo, src="https://sapui5.hana.ondemand.com/1.42.6/resources/sap-ui-core.js".

Aunque esto te podría dar problemas de acceso a otros dominios (cross-domain error) dependiendo del navegador que uses y su configuración. Además, no estarás probando la aplicación al 100% en tu servidor porque estarás usando la librería de forma externa.

Elijamos la opción que elijamos, si todo ha ido bien, deberíamos ser capaces de ejecutar nuestra aplicación en nuestro Fiori o con el index.html. Si algo falla... bueno, pues la podemos haber pifiado con la versión, haber hecho mal la asignación en la LPD_CUST o el catálogo o que el index.html esté mal. Pero ahí ya a cada uno le tocará investigar un poco.

No hay comentarios:

Publicar un comentario