Em meu
post anterior
, consegui conectar meu Amazon Echo Dot a um sistema SAP local através da Plataforma SAP Cloud e fazer solicitações simples para obter uma resposta.
Depois de interagir com a Alexa em algumas ocasiões, me vi perdido ou esqueci qual informação solicitei à Alexa/SAP. Em minha busca por mais demonstrações do tipo Alexa + SAP, encontrei dois vídeos no YouTube nos quais a Alexa não apenas fornece uma resposta verbal ao usuário, mas também interage ao mesmo tempo com a tela que o usuário está visualizando. Aqui estão os links para esses vídeos e definitivamente vale a pena conferi-los.
Também há um breve vídeo do SAP CoPilot
http://events.sap.com/teched/en/session/29456
que também gerou muito interesse, ideias e inspiração para minhas postagens no blog.
Então, aqui está minha tentativa de obter um resultado semelhante com a mesma configuração do post anterior, usando ferramentas/plataformas gratuitas da SAP e desenvolvendo a solução o máximo possível em ABAP.
Aqui está o vídeo do resultado final.
https://youtu.be/FXeFpnmO3UA
Como de costume, se estiver interessado em como isso foi feito, continue lendo!
Para manter as coisas simples, especialmente se você leu o post anterior, interagirei com os mesmos dados + intenção. Portanto, não haverá mudanças em nossos dados, resposta e intenção enviada à Alexa.
O que preciso é mostrar a resposta da Alexa de uma maneira visual que faça sentido para o usuário, então, como estamos solicitando o Total de Gastos de Fornecedores por país, criei um aplicativo SAPUI5 simples que exibe um gráfico de barras com os valores e o nome do país.
Vamos começar!
A velocidade importa
Antes de começar a pensar nos aspectos visuais do aplicativo UI5, devo primeiro decidir como salvar os dados que são retornados à Alexa de forma rápida e fácil para poder acessá-los novamente a partir do aplicativo de gráfico de barras SAPUI5.
Escrevê-los em uma tabela de banco de dados personalizada parece ser um pouco excessivo, especialmente dada a natureza temporária dos dados e o custo adicional de confirmar/selecionar os dados do banco de dados poderia levar alguns segundos a mais. Eu precisava que os dados fossem salvos em diferentes sessões de usuário, de natureza temporária e armazenados no servidor de aplicativos (não no banco de dados).
Os Objetos Compartilhados ao resgate!
Os Objetos Compartilhados parecem ser a resposta perfeita para meus requisitos anteriores. - Você pode ler mais sobre Objetos Compartilhados aqui se não estiver familiarizado com eles
https://help.sap.com/saphelp_nw70/helpdata/en/c5/85634e53d422409f0975aa9a551297/frameset.htm
A função da Classe Raiz ZCL_SHMA_ALEXA_TSS seria salvar os detalhes da resposta enviada de volta à Alexa e também fornecer um método para recuperar esses mesmos dados; para fazer isso, escrevi dois métodos simples chamados SET_COUNTRY e GET_COUNTRY.
Em seguida, nos métodos anteriores que lidam com a intenção da Alexa selecionando dados do banco de dados para estruturar uma resposta de volta à Alexa, adicionarei a chamada para salvar os dados da resposta na Área de Memória Compartilhada. Aqui está o exemplo do método TOP_THREE abaixo.
Faça um teste rápido para garantir que isso funcione conforme o esperado.
(1) Use o Simulador de Serviço ASK (Alexa Skills Kit) para enviar uma solicitação ao servidor SAP
Pedro Pascal
Se unió el 07/03/2018