miércoles, 1 de febrero de 2017

¿Intranet inaccesible para el Web IDE? SAP Cloud Connector al rescate (I)

Resulta que hemos descubierto el SAP Web IDE para desarrollar aplicaciones SAP UI5 fácilmente, y nos hemos ofrecido voluntariamente (como pasaba en la mili) para hacer una aplicación Fiori que lea los datos de SAP.

Nos hemos creado nuestro servicio oData, lo hemos probado mediante el Gateway Client y funcionaba chachi piruli juan pelotilla. Ahora vamos a meterle mano a la parte web.

Así que comenzamos a construir la app, creamos nuestro Destination para apuntar al entorno de desarrollo y... oh, oh, esto no funciona. Comenzamos a cambiar parámetros, a hacer pruebas, a tirarnos de los pelos, pero esto no lo consigue arrancar ni Carlos Sainz.

¿Qué puede pasar? Desde la oficina nos estamos conectando sin problemas con el servidor, pero el SAP HCP no está por la labor.

Lo que ocurre es que tenemos un problema de conectividad: El servidor front-end (y por tanto, el Gateway) no es accesible desde el exterior. Tienen capado el acceso (lo que es normal, todo sea dicho) y sólo los equipos dentro de la intranet pueden acceder. Por eso nosotros podemos (ya que estamos en local) pero el destination no llega (está fuera de la red local).

No se puede acceder al servicio oData desde el Web IDE

¿Y entonces cómo narices vamos a consultar el servicio oData para poder desarrollar tu aplicación? Porque cualquiera le echa valor para usar el Eclipse: El Fiori Toolkit ya está obsoleto.

Pues para eso tenemos a (...redoble de tambores...) ¡SAP Cloud Connector (SAP CC)!

Es la herramienta que nos proporciona SAP para permitir dicha conectividad, sin necesidad de abrir puertos en el Firewall para dar acceso al Gateway. Ojo, que esa es otra opción, claro; pero para eso lo mismo tienes que pedir autorizaciones (¿me abres un agujerito para acceder desde fuera?), justificar dicho acceso (oye, que es que quiero trabajar), puede que todo un lío. También podría ser que la propia empresa quiera usar el SAP CC dentro del propio servidor para no abrir el Firewall. Como el peor caso es que no nos quieran hacer caso, pues para eso tenemos este post.

SAP CC no es más que un pequeño programa que nos va a permitir conectar nuestra cuenta HCP con nuestro equipo (o con el propio servidor) y que éste haga de "puente" de conexión con el Gateway.

Ahora sí que sí podemos trabajar
Cuando nos lo instalemos, haremos una configuración inicial para que nuestra cuenta de SAP HCP se pueda conectar al servidor SAP que le digamos. En SAP HCP también tendremos que configurar un destination de tipo onPremise para poder establecer la conexión.

Una vez instalado y configurado, nos ponemos a trabajar: Si nosotros levantamos el SAP CC, nuestra cuenta de SAP HCP podrá conectarse a SAP; si lo cerramos, pues entonces SAP HCP ya no puede.

Se puede descargar en SAP Development Tools, en la sección Cloud.



Aquí nos encontraremos con dos posibles versiones: La versión autoinstalable y la versión portable (que antes llamaban versión de developer). ¿Cuál elegimos?

  • La versión autoinstalable (en la que sólo indica el sistema operativo) es el típico paquete de instalación que requiere permisos de administrador. El programa te guiará en la instalación y tú le vas dando a aceptar... aceptar... aceptar... hasta que lo instalas.
  • La versión portable es un archivo comprimido (un zip) que puedes descargarte y descomprimir en cualquier parte. Lo bueno que tiene es que NO necesita permisos de administrador. Además, podremos tener varias instalaciones en el mismo equipo (si es que fuese necesario).

Esta segunda versión, la portable, es la que voy a explicar. ¿Por qué? Porque muchas veces los de sistemas no se fían de nosotros y nos dan portátiles sin permisos de administrador ni nada, ¡como si nos los fuésemos a cargar... por tercera vez... en lo que llevamos de año... :O!

Así que descargamos y nos ponemos manos a la obra. De momento, en este post, vamos a instalar y arrancar SAP Cloud Connector portable en nuestro equipo (Windows) y en el siguiente lo configuraremos para poder dar vía libre a SAP HCP para consumir nuestros servicios oData.

Instalando SAP CC portable y configurando Windows

Bueno, bueno, instalación, lo que se dice instalación... en mi caso, más bien extracción.

Elegimos la aplicación, aceptamos las condiciones (pulsa aquí si vendes tu alma al diablo y todo eso), nos descargamos un archivo zip y lo descomprimimos donde nos plazca. ¡Ya está la aplicación instalada! La tendremos en una carpeta, que es desde donde la vamos a ejecutar.

¿Cuál es el archivo para iniciar el SAP CC? En Windows es el go.bat, en Linux es go.sh. Si ejecutamos este fichero, debería funcionarnos a la de ya... a no ser que aún nos falten algunas cosicas por configurar en el sistema operativo.

La carpeta donde hemos descomprimido el paquete

Java

Lo primero de todo es tener instalado en nuestro ordenador a nuestro amigo "el Java". Pero no una versión cualquiera, no. Necesitamos la versión 6 (o superior) de 64 bits.

Nos vale el Java Runtime (JRE), aunque en alguna documentación leí que se necesitaba el JDK... pero a mí con el JRE me ha servido.

Si no lo tienes instalado, te lo puedes descargar de la página de Java de Oracle. Recuerda elegir siempre la versión de 64 bits. Eso sí, para instalártelo sí que necesitarás permisos de administrador en tu sistema operativo.

Si ya tienes Java y no sabes qué versión tienes, puedes averiguarlo de varias (¡suponiendo que tienes un sistema operativo de 64 bits!)

  • En un símbolo del sistema (botón de windows - ejecutar - cmd) pones "java -version". Ahí te dirá tu versión y si es de 64 bits.
  • En el panel de control de Windows, aparecerá una entrada que pone Java. Si pone Java (32 bits)... pues eso, que es de 32 bits, mala suerte.
  • Otro truco es ver dónde está instalado. Si has usado la ubicación por defecto, se te habrá instalado en C:/Archivos de programa/Java si es de 64 bits o C:/Archivos de programa (x86)/Java si es de 32 bits.
Si lo que tienes es de 32 bits, no te vale, así que no te queda otra que instalarte de nuevo la de 64 bits.

Cómo cambiar variables de entorno

Una vez instalado SAPCC y Java, tenemos que indicar algunas variables de entorno que necesitamos. Eso se consigue en las Propiedades del sistema (llegar ahí depende de la versión de Windows, pero puedes probar suerte pulsando con el botón derecho sobre el icono de Mi PC -> Propiedades y luego Configuración avanzada del sistema. Ahí es donde tenemos el botón de Variables de entorno.




Pero imagínate que no tienes permisos de administrador... caray, que contrariedad. Entonces a lo mejor no puedes cambiar las variables de entorno. Bueno, hay una solución, que es cambiar las variables de entorno de tu usuario. Eso lo puedes hacer desde Panel de control - Cuentas de usuario y luego Cambiar las variables de entorno (mira este enlace para más ayuda, aunque esté en inglés).


So melón, tú eres administrador, esto no te hace falta


Variables de entorno a definir

En las variables de entorno tienes que definir la ruta de Java. Esto lo puedes hacer de dos formas (en principio con con una debería valer, pero si quieres puedes hacer las dos):

  • Crea una variable de entorno JAVA_HOME donde indicas la ubicación de la carpeta donde está Java. Por ejemplo, C:\Program Files\Java\jre7. Si ya existe esta variable, comprueba que apunta a tu Java de 64 bits (no sea que se trate de una versión antigua).
  • Añade a la variable de entorno PATH la ubicación de dónde está instalado el ejecutable de java. Este suele estar en la carpeta bin del lugar donde se haya instalado Java. En el ejemplo anterior sería C:\Program Files\Java\jre7\bin. Cada nueva ruta que añades a PATH tienes que separarla con punto y coma (;).


Y nos falta una última variable de entorno, que no se suele indicar y por cuya culpa no permite que iniciemos el SAPCC, y es indicar dónde está una librería que utiliza SAPCC. En la versión autoinstalable supongo que te la crea por defecto, pero no en la portable. Se trata de la librería sapscc20jni.dll, que está en la carpeta donde hemos instalado SAPCC\auditor.

Es esa carpeta la que tenemos que añadir a la variable de entorno PATH.

A modificar otra vez el PATH... ya me lo podías haber dicho antes

Una vez hemos configurado las variables de entorno, tenemos que reiniciar la sesión (o el equipo)... aunque hay otra posibilidad, un pequeño truquito por si no queremos esperar tanto. Abre el Administrador de Tareas y mata al proceso explorer.exe (el explorador de windows). Eso hace que se te cierren todas las ventanas y desaparezca la barra de inicio. Sin salir del administrador, escoge Archivo - Ejecutar nueva tarea y ejecuta explorer.exe (es decir, lo estás reiniciando). Te volverá a aparecer la barra de inicio (las carpetas no se vuelven a abrir) y encima habrás actualizado las variables de entorno.

Arrancar SAP Cloud Connector

Pues si todo ha ido bien, ya podemos arrancar SAP CC. Lo podemos hacer ejecutando el archivo go.bat, que nos abrirá un símbolo de sistema. Cuando queramos finalizar SAP CC, valdrá con cerrar dicho símbolo de sistema.

Esperamos uno poco a que arranque bien y entonces abrimos un navegador web y vamos a la url https://localhost:8443. Si todo está correcto y nos sale una página invitándonos a autenticarnos, es que lo hemos hecho bien.

Pongo la contraseña manage con asteriscos para que no sepais cual es
Como acceso inicial, usaremos usuario Administrator y contraseña manage (luego te pedirá cambiar la contraseña).

Puede que, en lugar de aparecernos esa pantalla, nos aparezca un error de certificado. No hay peligro, los piratas informáticos no intentan hacerse con nuestro equipo, podemos continuar adelante.

¡No me asustes de esa manera!

Y entonces ya estaremos en la configuración de SAP CC. Pero eso lo vamos a dejar para el siguiente tutorial.

Y si no nos funciona la página (y ya hemos esperado un buen rato)... podemos consultar posibles errores en la carpeta log, donde se generan los ficheros de traza. Puede que a nosotros no nos digan gran cosa, pero siempre podemos buscarlo en google ;).

Resumiendo


  • Descargar SAP Cloud Connector.
  • Comprobar si tenemos Java 6+ de 64 bits. Si no, nos lo instalamos.
  • Crear en la variable de entorno JAVA_HOME (o modificarla si procede) para que apunte a la carpeta de instalación de Java (por ejemplo, C:\Archivos de programa\Java\jre8.x.x).
  • O modificar la variable PATH para que apunte a la carpeta bin de Java (por ejemplo, C:\Archivos de programa\Java\jre8.x.x\bin).
  • Modificar la variable PATH para apuntar a la carpeta de instalación de sapcc\auditor, donde está la librería sapscc20jni.dll.
  • Ejecutar el archivo go.bat (en Windows) o go.sh (en Linux).
  • Arrancar un navegador web y abrir la url https://localhost:8443, con usuario Administrador y contraseña manage.
  • Configurar SAP Cloud Connector y SAP HCP... en el siguiente tutorial.




10 comentarios:

  1. Gracias por el aporte! Ha sido de gran ayuda

    ResponderEliminar
  2. Hola, gran aporte, podrian hacer mas de SAPUI5 con este enlace?
    https://sapui5.hana.ondemand.com/#docs/guide/8b49fc198bf04b2d9800fc37fecbb218.html

    ResponderEliminar
  3. Hola! Primero felicitar! otro excelente aporte! Les hago una consulta, ¿cuales son los puertos que se deben abrir en el servidor? Pasa lo siguiente, que solicite permiso para instalar SAP CC en mi ambiente DEV pero me dijeron que querian saber que puertos deben estar disponibles para garantizar que es eso lo que está impidiendo mi conexión desde afuera.

    Muchas gracias

    ResponderEliminar
    Respuestas
    1. Espero no pecar de desconomiento con la respuesta completa (que me corrija alguien si me equivoco en algo de lo que digo, ya que yo no soy de sistemas, pero el puerto debería ser el que tengas configurado para la salida http o https. Vamos, el mismo que se usa para las web dynpro. Eso quiere decir que si puedes acceder a una web dynpro del servidor desde fuera (o al NWBC, o al SAP GUI for HTML, por ejemplo), deberías poder acceder también a un servicio oData. Podrías verlo por la SMICM, o simplemente en la SE80 ejecutando una web dynpro, o en el SAP Gateway Client ejecutando un servicio oData.

      A no ser que para acceder al servidor tengáis algo entre medias (como un SAP Web Dispatcher), que pueda estar filtrando o redirigiendo el tráfico.

      Además, el dominio debería estar publicado, una ip privada no valdría porque sí o sí tendrías que acceder por VPN.

      Te comento nociones, no estoy seguro al 100% pero seguro que tus compañeros de sistemas pueden corroborrarlo o al menos guiarse.

      De todas maneras, la conexión que tú abres es una conexión segura entre tu máquina y tu cuenta de SAP CP, así que lo mismo es más seguro trabajar con el SAP CC que dar acceso a la máquina de desarrollo.

      Eliminar
  4. Eres un crack. Gracias por el tuto muy bien explicado y de gran ayuda :)

    ResponderEliminar
  5. Hola, ¿hay forma de conectarse a un sistema SAP remoto? ¿fuera de la intranet?, estoy usando cloud connector pero no lo logra conectarse al sistema backend.
    La solución fue instalar cloud connector en el cliente, pero se puede hacer en forma remota así como se conecta a un sistema sap por medio del SAPGUI?

    ResponderEliminar
    Respuestas
    1. En principio, si puedes conectarte al front-end (porque está publicadob fuera de la intranet o porque estés usando una vpn, por ejemplo), tu sap cc local debería permitirte acceder. Es decir, si tú tienes acceso al front-end, tu sap cc local también.

      Eliminar

Nota: solo los miembros de este blog pueden publicar comentarios.