En mi
publicación anterior
, pude conectar mi Amazon Echo Dot a un sistema SAP local a través de la Plataforma SAP Cloud y realizar solicitudes simples para obtener una respuesta.
Después de interactuar con Alexa en algunas ocasiones más, me encuentro perdido o olvidé qué información solicité a Alexa/SAP. En mi búsqueda de más demostraciones de tipo Alexa + SAP, encontré dos videos de YouTube en los que Alexa no solo proporciona una respuesta verbal al usuario, sino que también interactúa al mismo tiempo con la pantalla que el usuario está viendo. Aquí están los enlaces a esos videos y definitivamente vale la pena echarles un vistazo.
También hay un breve video de SAP CoPilot
http://events.sap.com/teched/en/session/29456
que también generó mucho interés, ideas e inspiración para mis publicaciones en el blog.
Entonces, aquí está mi intento de lograr un resultado similar con la misma configuración de la publicación anterior, utilizando herramientas/plataformas gratuitas de SAP y desarrollando la solución tanto como sea posible en ABAP.
Aquí está el video del resultado final.
https://youtu.be/FXeFpnmO3UA
Como de costumbre, si estás interesado en cómo se hizo esto, ¡sigue leyendo!
Para mantener las cosas simples, especialmente si has leído la publicación anterior, interactuaré con los mismos datos + intención. Por lo tanto, no habrá cambios en nuestros datos, respuesta e intención enviada a Alexa.
Lo que necesito es mostrar la respuesta de Alexa de una manera visual que tenga sentido para el usuario, así que, dado que estamos solicitando el Gasto Total de Proveedores por país, creé una aplicación SAPUI5 simple que muestra un gráfico de barras con los valores y el nombre del país.
¡Comencemos!
La velocidad importa
Antes de comenzar a pensar en los aspectos visuales de la aplicación UI5, primero debo decidir cómo guardar los datos que se devuelven a Alexa de una manera rápida y fácil para poder accederlos nuevamente desde la aplicación de gráfico de barras SAPUI5.
Escribirlo en una tabla de base de datos personalizada parece ser un poco excesivo, especialmente dada la naturaleza temporal de los datos y el costo adicional de confirmar/seleccionar los datos de la base de datos podría llevarme unos segundos más. Necesitaba que los datos se guardaran en diferentes sesiones de usuario, de naturaleza temporal y guardados en el servidor de aplicaciones (no en la base de datos).
¡Los Objetos Compartidos al rescate!
Los Objetos Compartidos parecen ser la respuesta perfecta a mis requisitos anteriores. - Puedes leer más sobre Objetos Compartidos aquí si no estás familiarizado con ellos
https://help.sap.com/saphelp_nw70/helpdata/en/c5/85634e53d422409f0975aa9a551297/frameset.htm
La función de la Clase Raíz ZCL_SHMA_ALEXA_TSS sería guardar los detalles de la respuesta enviada de vuelta a Alexa y también proporcionar un método para recuperar esos mismos datos; para hacer eso, escribí dos métodos simples llamados SET_COUNTRY y GET_COUNTRY.
Luego, en los métodos anteriores que manejan la intención de Alexa seleccionando datos de la base de datos para estructurar una respuesta de vuelta a Alexa, agregaré la llamada para guardar los datos de respuesta en el Área de Memoria Compartida. Aquí está el ejemplo del método TOP_THREE a continuación.
Realiza una prueba rápida para asegurarte de que esto funcione como se espera.
(1) Utiliza el Simulador de Servicio ASK (Alexa Skills Kit) para enviar una solicitud al servidor SAP
Pedro Pascal
Se unió el 07/03/2018