miércoles, 14 de junio de 2017

OData Provisioning: Configurar el Gateway en la nube

Hace un tiempo vimos las distintas ubicaciones en las que podíamos tener el Gateway. Una de las posibilidades era tener el Gateway en la nube, y eso lo conseguimos gracias a un servicio que nos proporciona el Cloud Platform: OData Provisioning (a partir de ahora, ODP, para no escribir tanto).

Venga, vamos a pelearnos un poco para ver cómo activamos este servicio. Lo básico, sólo conseguir que nos funcione.

Los pasos que vamos a tener que seguir son:
  • Activar el servicio oData Provisioning en Cloud Platform.
  • Crear las autorizaciones necesarias para poder administrarlo y usarlo.
  • Activar el servicio IWBEP en el back-end.
  • Crear un destination que apunte al componente IWBEP del back-end.
  • Registrar los servicios oData que queramos utilizar en el ODP.
  • Crear un destination que apunte al ODP.
  • Crea la aplicación que usará dicho destination.
  • Tomarnos unas cervezas para celebrarlo.

A meternos en faena. Lo primero es activar el servicio en Cloud Platform. El servicio se llama oData Provisioning (evidentemente). Desde ahí podemos acceder:

  • Al servicio, donde vamos a registrar los servicios oData que queremos tener flotando en la nube.
  • A la configuración del servicio, donde podemos configurar destination y roles específicos para el ODP.
  • A la documentación, siempre útil (y en la que me he basado) para poder montar bien el servicio.


Como ya hemos activado el servicio, vamos todo valientes y accedemos al mismo para ver cómo funciona, y nos encontramos con un error de autorización:

Empezamos bien

Vale, pues me parece que nos vamos a tener que dar las autorizaciones necesarias para acceder al servicio.

Nos vamos a encontrar con dos tipos de roles disponibles para este servicio: GW_Admin para administrador y GW_User para usuarios.

Para nuestras pruebas, nos crearemos un grupo (en Security - Authorizations del cockpit de CP) y le asignaremos ambos roles, con los siguientes datos:

  • Subaccount: gwaas
  • Application: gwaas
  • Role: Primero GW_Admin y luego otro con GW_User


¡Que no se nos olvide asignar nuestro usuario al grupo!


Pues con estos pasos, ya deberíamos poder acceder al servicio, vamos a probar suerte otra vez:

Ya nos funciona, aunque poca cosa vemos, oye.

Vale, vamos a registrar un servicio. Pulsamos el botón "Register" y nos aparece una pantalla donde elegimos el destination que apunta a nuestro back-end. Pero no nos sale nada.

Otra vez a descubrir que pasa

Espera, quizá nos hace falta crear un destination específico para esto, ¿no? Pues va a ser que sí.

Tenemos que indicarle al CP dónde está ese pequeño componente del back-end que nos va a devolver los servicios. Se trata del IWBEP, que es el componente del Gateway que siempre tiene que instalarse en el back-end para permitirnos crear servicios oData y comunicarse con el front-end.

Si tenemos un NetWeaver 7.40 o superior, ya lo tendremos instalado de serie con el propio Gateway. En cualquier caso, tenemos que comprobar que está activo en la SICF.

Servicio activado

Una vez activo, nos creamos el destination para que apunte a este componente, con la url http://<servidor>:<puerto>/sap/iwbep?sap-client=<mandante>.

El destination lo tenemos que crear dentro de la configuración del servicio ODP, no en el Destinations del cockpit de Cloud Platform. Al menos yo he probado a crearlo desde el destination global pero después no me aparece en el servicio del ODP (incluso indicando el parámetro WebIDEUsage = odata_hcp_odp).

El tipo de destination puede cambiar respecto a la imagen, dependiendo de si nuestro back-end no está expuesto a internet (en tal caso es de tipo onPremise y tenemos que usar el SAP Cloud Connector) o si sí que está expuesto a internet (en tal caso, será de tipo Internet).

He metido el usuario a piñón porque es para hacer pruebas...

Con este nuevo cambio, ya podemos escoger el destination correspondiente en el ODP y ver los servicios oData disponibles.


Hala, ahora buscamos y escogemos el servicio que nos interesa y lo registramos:


Una vez registrado, ya nos aparece en la pantalla de administración de ODP:


Pulsando sobre el nombre del servicio, podemos ver sus propiedades. De aquí nos interesa la URL para poder usarlo, ya que la necesitaremos para crear un nuevo destination (sí, otro más) y para invocar el servicio al crear la aplicación en el Web IDE.


Ahora que ya tenemos el servicio oData disponible, ¿cómo podemos usarlo?

Lo primero es crear el destination que va a apuntar a nuestro Gateway en la nube. Sólo nos hace falta crearlo una vez para todos los servicios oData que vayamos a usar.

Nos dirigimos al cockpit de SAP CP para crearlo ahí. Tiene que apuntar al dominio y subdominio del Gateway (lo obtenemos a partir de la URL que obtuvimos al principio).

Tenemos que añadir las propiedades WebIDEEnabled = true para que esté disponible en el Web IDE y WebIDEUsage = odata_gen para tenerlo disponible en el listado de destination de tipo Service URL.

Cuando use el destination, por el tipo de autenticación que he elegido para las pruebas, me pedirá un usuario y contraseña.
Le indico el de mi cuenta trial y tirando millas.

Ya sólo nos hace falta crear una aplicación SAP UI5 y ver que podemos consultar nuestro Gateway en la nube, a través de la opción Service URL. Así que nos vamos ahora al Web IDE y nos creamos una aplicación eligiendo una plantilla que nos permita usar servicios oData.

Para obtener el servicio oData que queremos usar, indicamos como url adicional el resto de la URL que teníamos del servicio, algo como odata/sap/nombre_del_servicio.



Genial, ya tenemos nuestra aplicación que apunta a nuestro Gateway en la nube.



No hay comentarios:

Publicar un comentario