miércoles, 8 de febrero de 2017

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

Como habíamos tenido un problema de conectividad a la hora de consumir un servicio oData desde nuestro Web IDE, nos habíamos instalado el SAP Cloud Connector. Habíamos elegido la versión portable porque los de sistemas no se fían de nosotros y no nos habían dado permisos de administrador en el equipo.

Ahora sólo nos falta configurar la conexión, la cuenta SAP HCP y ponernos a trabajar. Así dicho suena rápido, pero tenéis un buen post por delante ;)

Qué vamos a hacer


En capítulos anteriores... habíamos instalado SAP Cloud Connector portable.

En éste, indicaremos en SAP Cloud Connector la cuenta SAP HCP que vamos a utilizar para nuestras maquinaciones (programar, conquistar el mundo y cosas de esas). 

Después, definiremos un mapeo que va a relacionar un servidor (host) real con uno virtual. El real es el del servidor SAP donde tenemos el servicio oData a consumir o la aplicación estándar a ampliar. El virtual es un servidor ficticio (no tiene por qué existir) que configuraremos en SAP HCP por si no queremos publicar el nombre real. Ojo, que el virtual podría ser el mismo que el real.

Luego, en nuestra cuenta SAP HCP crearemos un destination de tipo onPremise usando el servidor virtual y probaremos que todo funciona correctamente.

Y a programar se ha dicho.

Configurar la conexión desde SAP CC


Lo primero que necesitamos para poder configurar el SAP CC, es tenerlo en marcha, por supuesto. Así que vamos a la carpeta del SAP CC y ejecutamos el archivo go.bat o el go.sh. Puede tardar un minutejo o dos en arrancar del todo.

Para configurarlo accedemos a una página web local, https://localhost:8443, donde se nos pide identificación. Si todavía no hemos cambiado la contraseña, accederemos con usuario Administrator y contraseña manage.


Una vez dentro, si es la primera vez que accedemos, nos pedirá cambiar la contraseña de Administrador y elegir el tipo de instalación, donde indicamos que será Master y le damos una descripción.



Conectarnos con la cuenta

Después, definimos la cuenta SAP HCP que vamos a utilizar. Esto se hace en Define Account y hay que indicar:
  • Landscape Host: El host de HCP con el que nos vamos a conectar. Si estás usando una cuenta trial, será hanatrial.ondemand.com
  • Account Name: El nombre de tu cuenta HCP, no el de tu usuario. Si tu cuenta es una trial, el nombre será tu usuario seguido por trial. Por ejemplo, s12345678trial. Eso sí, las letras en minúscula.
  • Account User: Tu cuenta de usuario del SAP HCP. En el ejemplo de antes, sería S12345678. Aquí ya da igual la mayúscula y minúscula.
  • Password: Pues esto, la contraseña con la que accedes al HCP.
Si para conectarte a internet usas, además, un servidor proxy, lo debes indicar en esta página. Eso lo puedes ver en la configuración de conectividad de tu navegador web.


Siempre puedes crear cuentas nuevas (o editar/borrar las existentes) yendo a Connector.

Crear el mapeo con el host


Para crear el mapeo de la nube con nuestro servidor SAP nos vamos a Define Account - Cloud To On-Premise y pulsamos el botón +.




Y empezamos a rellenar datos a lo loco. Lo primero, el tipo de Back-End. En mi caso es un ABAP.


Especificamos si el protoloco es HTTP o HTTPS.


Después indicamos el host y puerto donde está nuestro servidor SAP. Estos datos tienen que ser los datos reales de la máquina (que se pueden obtener a través de la transacción SMICM o con algunos truquitos como ejecutando la transacción NWBC para que nos cargue el NetWeaver Business Client). No es necesario indicar el protocolo porque lo hicimos en el paso anterior.



Lo siguiente es indicar el host virtual. ¿Qué es esto? Pues es el servidor al que creerá conectarse nuestra cuenta SAP HCP. Nos puede servir para enmascarar el nombre del servidor real sin tener que publicarlo. Podemos indicar el mismo que el servidor real (por facilidad, si sólo lo vamos a usar nosotros) o poner el servidor y puerto que nos dé la gana (y que será un nombre que nos inventemos si no queremos publicar el nombre real).

En cualquier caso, el destination que utilicemos en el SAP HCP tendrá que apuntar a ESTE host virtual, no al host real.

Otro detalle a tener en cuenta es que, una vez creado el mapeo, el virtual host no se puede modificar. Si quisiésemos cambiar algo (el host o el puerto), tendríamos que volver a crear el mapeo.

Como es sólo para mí, lo dejo tal cual

El siguiente paso es indicar el tipo de seguridad utilizado para autenticarse, si es que lo hay.




Añadimos una descripción.


Y tras aparecernos un resumen...
Resumen de la operación
...¡Tachán! ¡Ya tenemos el mapeo listo!



Crear listado de recursos accesibles


¿Pero ya hemos acabado? Pues no, nos falta por hacer una cosa más en SAP CC: Indicar los recursos (o rutas) disponibles. De esta manera podemos controlar que no todo está accesible, sino sólo lo que nosotros queramos. Básicamente, daremos acceso a aquellos paths del ICF (transacción SICF) que nos sean útiles para el desarrollo web. Si es sólo para nosotros, podemos darnos acceso a todo y punto.

Así que volvemos a la pestaña de Access Control para indicar los paths y pulsamos el botón + de la tabla Resources Accessible On... En el pop-up que nos sale podemos ir indicando los distintos recursos (carpetas, path de url o como quieras llamarlo) accesibles.

La opción Path and all sub-paths nos permite indicar un path y dar acceso a todas las carpetas que cuelguen de ella, que será, en general, la opción que escogeremos.



Si queremos dar acceso a todo (porque, por ejemplo, sólo vamos a acceder nosotros), podemos indicar como url / y marcar la opción Path and all sub-paths.

Pero si lo que queremos es acotarlo más, podríamos indicar los siguientes paths (y siempre con la opción Path and all sub-paths) para permitir exclusivamente crear y ampliar aplicaciones con acceso a servicios oData:
  • /sap/bc/adt si vamos a utilizar el Web IDE para ampliaciones de estándar.
  • /sap/bc/ui5_ui5 si vamos a llamar remotamente aplicaciones web del servidor SAP desde SAP HCP.
  • /sap/opu/odata/sap si vamos a llamar servicios oData. Éste es el primero que nos va a interesar para nuestros nuevos desarrollos, los dos anteriores están más orientados a ampliaciones.
Puedes ver otros accesos en la documentación de SAP.

Básicamente, cada entrada es un recurso accesible en la transacción SICF de SAP

Configurar SAP HCP

Ya estamos en el último paso, ¡por fin! Que esto es más largo que un día sin pan.

En SAP HCP sólo tenemos que configurar una cosa, y es el destination. En un post anterior, contaba cómo crearlo. El proceso es el mismo, pero con un pequeño cambio: El valor de Proxy Type tiene que ser OnPremise.

En este destination, la URL que indicaremos será la del host virtual que habíamos definido en SAP Cloud Connector.


Si tenemos abierto SAP CC y el destination creado en SAP HCP, podemos ir a la sección Connectivity - Cloud Connector. Ahí veremos si la conexión funciona correctamente y podremos gritar aquello de ¡Eureka!, ¡Está vivo, está vivo!, o lo que más nos plazca.



Ya podemos desarrollar la aplicación oportuna y usar ese destination de tipo OnPremise para obtener los datos correctamente.

Eso sí, no tenemos que olvidarnos de iniciar el SAP Cloud Connector cada vez que queramos probarla.

4 comentarios:

  1. Felicidades por el bloc!
    Pero una duda. Esto esta muy bien para hacer pruebas, pero que pasa cuando quiero ejecutar la app desde mi movil?
    Cuando la aplicacion ya se ejecute contra un SAP de productivo, ¿no es inevitable tener que abrir a internet el servidor SAP por narices?

    Muchas gracias por adelentado.

    ResponderEliminar
    Respuestas
    1. Sí,este ejemplo es sólo para solucionar el problema cuando tienes que desarrollar y tu servidor de desarrollo no tiene salida al exterior. Para el caso de productivo, habrá que seguir la misma política que se esté usando, acceder al portal a través de VPN (aquí no cambiaría nada), abrir al exterior los puertos que correspondan o, si usas un SAP CP Portal para las aplicaciones SAP UI5, usar el SAP CC en productivo

      Eliminar
  2. Hola! una consulta, puedo configurar esto en mi pc, y al ser portable al pasarlo al servidor mantendría la configuración?

    Muchas Gracias

    ResponderEliminar
    Respuestas
    1. Pues al ser portable debería, pero no lo he probado entre dos máquinas distintas. Si es en el mismo equipo (lo cambias de ubicación) sí.

      De todas maneras, aunque sea portable, piensa que en la otra máquina debes tener instalado el Java de 64 bits y configurado el path para apuntar a dicho java y a la carpeta auditor del sap cc portable.

      En cualquier caso, si es para usarlo en un servidor (por ejemplo, donde esté instalado SAP), creo que lo suyo no sería usar el portable sino el instalable, para no tener que estar levantando el servicio continuamente. El portable, antes, se llamada "Developer", por algo sería ;)

      Eliminar