Notificaciones en SAP BTP Launchpad
La idea principal del launchpad siempre ha sido la misma, provisionar al usuario de un punto de acceso único des del que poder acceder de manera rápida y còmoda a todas las funcionalidades de la empresa.

Hace ya tiempo, hablé de la posibilidad de añadir al launchpad plugins para poder añadir más funcionalidades al launchpad y ahora con las nuevas actualizaciones és más fácil que nunca añadir notificaciones.
Pero antes, si te perdiste lo fácil que es añadir un plugin en el launchpad té dejo con esta entrada:

Sin mas, os paso a explicar mediante la API como funciona este servicio. En este paso a paso veremos como configurar nuestro launchpad, añadir un tipo de notificación y finalmente generar una notificación.
Esta entrada esta inspirada en los siguientes blogs:
- https://blogs.sap.com/2021/09/02/building-a-central-launchpad-using-sap-launchpad-service-enabling-notifications/
- https://blogs.sap.com/2021/07/06/sending-notifications-from-sap-btp-applications-to-the-sap-fiori-launchpad/
Pero en este blog lo simplificaré para que tengáis una idea más clara.
Configuración inicial
Generando el servicio de notificaciones en SAP BTP
Lo primero será acceder a la página de configuración del launchpad para generar y activar el servicio de notificaciones en el lauchpad.

En la página de notificaciones os aparecerá la opción para generar el servicio, pues como podéis imaginar, le vamos a dar al botón «generar».

Una vez generado el servicio nos aparecerán los detalles en la página de notificaciones:

Guardar estos datos para tenerlos a mano cuando ejecutemos las llamadas para mostrar la notificacion.
Activando las notificaciones
Lo siguiente es activar la opción de notificaciones en la configuración del launchpad.

En la página de configuración activamos la opción para mostrar a usuario las notificaciones:

Con estos sencillos pasos ya estamos en disposición de mandar notificaciones al usuario.
Obteniendo autorización para realizar el post
Lo primero antes de realizar cualquier operación es obtener los dos tokens que utilizaremos para enviar datos. El primero es el Bearer token, que nos proporciona la autorización para utilizar la API y un segundo token llamado x-csrf-token que lo utilizaremos para hacer peticiones POST. Este tipo de token se utiliza por seguridad, para que un atacante no nos copie la petición POST.
Obteniendo el token Bearer
Para obtener los datos utilizaremos la url que nos muestra la configuración del launchpad

A la URL le añadiremos en la parte final este parámetro para indicar que utilizáremos el mecanismo de client credentials.
?grant_type=client_credentials
Lo siguiente serán las credenciales, que también tendremos en la configuración del launchpad.

Con estos datos ya podemos generar el token. Este es el ejemplo de los datos que utilizaríamos en postman:

Y esto es un pequeño truco para leer la respuesta y añadirla en una variable de entorno.

Obteniendo el x-csrf-token
Este token nos sirve para poder hacer POST, por lo que para operaciones get no es necesario, y es por esa razón que realizaremos una petición GET para obtenerlo.
En este caso utilizaremos la siguiente URL: https://notifications.cfapps.eu10.hana.ondemand.com/v2/Notification.svc/Notifications
Como autorización añadiremos el bearer token obtenido en la llamada anterior. Podemos añadir la variable.

Como header añadiremos la solicitud del token: x-csrf-token = fetch

Aunque la respuesta nos devuelve un error, lo interesante es extraer de las headers de respuesta el token:

Este token lo tendremos que solicitar para cada petición Post que queramos hacer y no podemos perder mucho tiempo en utilizarlo, sino deberemos generar otro.
Enviando notificaciones
Después de las preparaciones anteriores, llegamos a la preparación del mensaje para la notificación y la notificación.
Antes de realizar el envió un poco de teoría básica. Las notificaciones se envían al servicio SaaS de nuestro launchpad utilizando tipos de notificación. Por esta razón lo primero que deberemos hacer es crear estos tipos de notificación.
Los tipos de notificación básicamente se puede resumir en la definición de un mensaje, es decir el contenido que verá el usuario, y las acciones que podrá realizar.
Esto permitirá generar una plantilla de texto para distintos idiomas y las possible respuestas (si aplica) y así distintitas aplicaciones podrán enviar notificaciones solo pasando variables, sin tener que generar ellas el mensaje, de esta manera, centralizamos la definición de las notificaciones.
Para seguir con el ejemplo, crearemos un tipo de notificación para avisar a los usuarios que hay una nueva aplicación disponible en su launchpad.
Creando en tipo de notificacion
Ahora crearemos una notificación bastante sencilla, es decir, con un mensaje sin datos variables.
Utilizaremos la siguiente URL: https://notifications.cfapps.eu10.hana.ondemand.com/v2/NotificationType.svc/NotificationTypes
Y añadiremos el bearer y el x-csrf-token obtenidos en el paso anterior:


Y este sera el body que le pasaremos. Donde generamos un ID, una versión y los descriptivos de la notificación push. Los que veremos nosotros en el launchpad al pulsar a campanilla són TemplateSensitive y Subtitle, si accedemos por type veremos templategrouped y como texto emergente veremos el valor de public template.
{
"NotificationTypeKey": "NewApp",
"NotificationTypeVersion": "0.1",
"Templates": [
{
"Language": "en",
"TemplatePublic": "New application is ready",
"TemplateSensitive": "New application!",
"TemplateGrouped": "The new application is ready",
"TemplateLanguage": "Applications",
"Subtitle": "Application notification"
}
]
}
Ahora si, ya tenemos todo listo. Vamos a enviar una notificación.
Enviando una notificación
Para el envío de notificaciones necesitaremos añadir el token bearer y el x-csrf-token como en el caso anterior.
Para el envío de la notificación utilizaremos esta URL: https://notifications.cfapps.eu10.hana.ondemand.com/v2/Notification.svc/Notifications
Y este es el Body que mandaremos:
{
"OriginId": "test",
"NotificationTypeKey": "NewApp",
"NotificationTypeVersion": "0.1",
"Priority": "Low",
"Recipients": [
{
"RecipientId": "ecastella@ecastella.com"
}
]
}
Como podemos ver, deberemos añadir el mail de los usuarios a los que queremos notificar, para mi esto es un fallo ya que como en el tema workflows, el campo debería poder aceptar mails o grupos.
Y este es el resultado:

Como veis, aunque esta es una introducción bastante genérica, podemos mandar notificaciones a los usuarios de manera fácil. Tambien podemos utilizar palabras comodín para permitir el paso de valores en con el atributo «Properties».
Pero a partir de aquí os dejo a vosotros para que juguéis 😉
Como siempre suscribete, dale a la campanita de notificaciones y comparte en redes para estar a la última. Vota Like / Dislike para aportar feedback.