RFID, Websocket et SAP S/4HANA by VISEO

Tribune d'expert

RFID, Websocket et SAP S/4HANA

L'association des différents services et outils mis à disposition par SAP permettent de produire des solutions innovantes. Emmanuel, Directeur Technique et Innovation SAP VISEO, vous en donne un exemple. Découvrez son article.

En cette période de confinement, j’ai eu envie de ressortir mon vieux Raspberry PI et de rejouer avec quelques capteurs. Après un premier projet de remontée de température et humidité d’un capteur DHT22 vers les services SAP Leonardo IOT, j’ai décidé de me lancer dans un nouveau projet qui utiliserait les Websocket au travers des ABAP Push Channels.

 

Les ABAP Push Channels permettent une communication « full-duplex » avec le serveur ABAP. L’avantage est de pouvoir pousser des messages au client sans que le client n’ait émis de requête.

 

RFID, Websocket et SAP S/4HANA by VISEO

 

En réfléchissant à des business scénarios qui pourraient s’appuyer sur des websocket et un Raspberry PI j’ai pensé qu’un capteur RFID pourrait être intéressant. On scanne un badge RFID qui envoie une info à la socket qui la diffuse au client.

 

J’ai donc pensé à un scénario où un client scanne son badge devant un lecteur RFID pour afficher dans une page Fiori le détail de ses commandes et autres livraisons.

 

RFID, Websocket et SAP S/4HANA

 

SAP S/4HANA, Websocket et ABAP Push Channel

Première étape, mettre en place un serveur websocket sur S/4HANA via les ABAP Push Channel. La mise en place se fait au travers de la transaction SAPC qui va générer une classe ABAP dans laquelle nous devons implémenter les méthodes ON_START et ON_MESSAGE.

Raspberry PI et RFID

Seconde étape, parcourir le web pour voir ce qui existe en termes de capteur RFID exploitable avec un Raspberry PI. Mes recherches m’ont conduit au capteur RC522 qui est celui utilisé dans la plupart des projet Raspeberry PI ou Arduino et que plusieurs sites vendent avec carte et puce.

 

RFID, Websocket et SAP S/4HANA

 

Après quelques soudures et un montage sur breadboard on arrive à quelque chose comme suit :

 

Breadboard by VISEO

 

Quelques lignes de Python plus tard, je peux alors écrire et lire des badges RFID. J’ai fait le choix d’écrire le code du business partner SAP sur le badge et ce sera ce code qui sera transmis à la socket.

SAP Cloud Foundry et serveur NodeJS

Etape suivante, transmettre le code du business partner à la socket. J’aurais pu directement transmettre ce code à la socket via le script Python mais j’ai préféré passer par un serveur Nodejs intermédiaire stocké sur la SAP Cloud Foundry. Le serveur Node s’occupe de la connexion à la web socket et permet de simplifier le script Python qui réalise uniquement la lecture de la carte et un POST sur le serveur Node. Ce dernier envoie le code client reçu dans la socket.

 

RFID by VISEO

SAP S/4HANA et SAPUI5

La partie serveur étant terminée, il ne me reste plus qu’à afficher les informations clients disponibles sur le serveur S/4HANA.

 

Une page web développée avec la librairie SAPUI5 se connecte à la socket lors de son chargement.

 

Lorsque le lecteur RFID lit la carte, il en extrait le code du business partner, le transmet au serveur Node qui le poste dans la socket.

 

A la réception du message dans la socket, la page web extrait le code du business partner et effectue une requête au serveur S/4HANA via un service ODATA spécifique construit sur des CDS views.

 

RFID, Websocket et SAP S/4HANA by VISEO

De nouvelles réponses aux besoins clients

Cet exemple simple montre qu’en associant les différents services et outils mis à disposition par SAP nous sommes en mesure de produire des solutions innovantes. Un autre exemple pourrait être de scanner des tags RFID d’articles de prêt à porter pour obtenir la liste des couleurs et tailles disponibles sur des bornes en self-service.

 

SAP Cloud Foundry et les nouvelles fonctionnalités de l’ERP S/4HANA ouvrent la voie vers une multitude de nouvelles solutions à apporter aux besoins clients.