SAP S4 HANA & Recast.AI by VISEO
LinkedIn Google Plus Twitter Email

SAP S/4HANA et Recast.AI, comment déclarer une panne depuis un simple bot?

Une tribune d’Emmanuel Cerisier, Responsable Pôle Technique SAP VISEO
13 Février 2018

Création d'un bot via la plateforme Recast.AI connectée à SAP S/4HANA

Suite au rachat de Recast.AI par SAP, Emmanuel Cerisier, Responsable Pôle Technique SAP VISEO, a eu envie de tester la plateforme en la connectant à SAP S/4HANA.

L’idée est de créer un simple bot pour signaler une panne. La solution EAM dans SAP S/4 HANA permet cette création via l’application Fiori ‘Report Malfunction’.

Après analyse du fonctionnement de l’application standard et du service ODATA sous-jacent, Emmanuel a décidé d’utiliser la fonctionnalité du service qui permet de récupérer la liste des équipements sur la base d’un mot clé et de créer son propre service ODATA pour la création finale de l’avis.

Développement du bot

Lors du développement d’un bot, le principe est de définir des intents qui vont permettre d’entretenir le dialogue avec l’utilisateur du bot. Un intent est un ensemble de phrase ayant la même signification mais construites de manières différentes.

Par défaut Recast.AI propose des intents pour gérer le ‘bavardage’ en réponse à des questions du type ‘Bonjour’, ‘Comment vas-tu ?’, etc.

Dans mon exemple, pour engager la conversation, il a défini un intent qui détecte une déclaration de panne avec des expressions comme ‘Mon PC est en panne’.

Pour chaque expression on définit une entité qui servira plus tard à déterminer l’équipement lors de la requête faite à "S/4HANA":

Construire la conversation

Une fois les différents intents créés pour entretenir la conversation, il est possible de construire cette conversation.

Pour le premier intent, Emmanuel souhaite que le BOT retourne la liste des équipements qui comportent le nom de l’appareil en panne.

Ce sont les skills dans l’onglet build de la plate-forme Recast.AI qui permettent ces comportements.

Il a donc créé un skill qui se déclenche lorsque l’intent ‘Mon ordinateur est en panne’ est détecté et qu’un nom d’équipement est défini:

Ce skill est paramétré pour pointer vers un webhook particulier.

Un webhook correspond à un appel de service, d’api, qui va permettre d’utiliser une application tierce pour répondre à la demande faite au bot. Dans ce cas, Emmanuel souhaite connaître tous les équipements définis dans SAP S/4HANA qui comportent le mot clé identifié dans l’intent.

Afin de pouvoir interpréter la requête envoyée au webhook et de pouvoir construire la requête ODATA, il a créé un serveur node.js. L’objectif étant d’héberger ce serveur sur un environnement Cloud Foundry sur SAP Cloud Platform ​pour obtenir un BOT opérationnel à tout moment.

Le serveur node.js

Pour répondre à son bot, Emmanuel a besoin de deux services, un pour lister les équipements et un pour créer l’avis de panne. Il a donc créé deux routes dans un serveur node.js avec le framework express.js.

Une première route prend en entrée la conversation qui déclare l’équipement en panne et une seconde crée la panne.

Recast.AI propose deux outils qui permettent de tester soit un intent en particulier soit le bot dans son intégralité.

En testant l’intent ‘Mon ordinateur est en panne’, on note que l’EQUIPMENTNAME ‘ordinateur’ a bien été identifié. La documentation de la plateforme décrit, quand à elle, le corps de la requête faite au webhook.

La route du serveur node.js correspondant au webhook de récupération des équipements extrait l’entité EQUIPMENTNAME et construit la requête au service ODATA : EAM_MALFUNCTION_MANAGE.

Sur la base de la réponse le serveur node contruit un carousel avec les équipements et demande à l’utilisateur de choisir le sien.

Le reste de l’échange comporte des intents pour confirmer la création de la panne via un second webhook qui retourne le numéro de l’avis créé dans S/4HANA.

Le déploiement sur Cloud Foundry

Suite à l’intégration de Cloud Foundry dans SAP Cloud Platform, il est maintenant possible de déployer des serveurs node.js dans la PaaS de SAP.

Recast.AI propose la possibilité de connecter son bot avec différentes plateformes de communication du marché:

Ayant un serveur node à disposition pour répondre au bot d'Emmanuel, il en a profité pour intégrer le bot directement dans le serveur via le script Webchat fourni.

Une fois le serveur node.js terminé et testé localement, le déploiement sur SAP Cloud Foundry est assez simple et ne nécessite qu’un compte SAP Cloud Platform et l’activation du Trial SAP Cloud Foundry.

Après déploiement, le serveur node.js est disponible et peut être testé via l’url fournie par SAP Cloud Platform.

SAP et les BOT

Emmanuel, novice dans la création de bot mais les plateformes telles que Recast.AI, Dialogflow chez Google ou VISEO BOT Maker ouvrent de nouvelles perspectives. Ces plateformes de bot combinées à SAP Cloud Platform et Cloud foundry, rendent possible la présentation rapide de solutions innovantes à nos clients.

Reste maintenant à suivre l’intégration de Recast.AI dans l’écosystème SAP et en particulier suivre l’évolution de SAP Copilot, l’assistant numérique de SAP suite à ce rachat.