SAP Lumira 2.x : nouveautés et impact sur les clients

Lumira 2.x est la nouvelle version dont la sortie est prévue en juillet 2017. La grande nouveauté, c’est bien entendu la fusion de Lumira et de Design Studio dans un seul produit côté serveur. Le but étant de combiner la facilité et l’intuitivité d’utilisation de Lumira qui est destiné aux utilisateurs finaux, la richesse des fonctionnalités et la robustesse que permet Design Studio et qui, à son tour, est destiné aux utilisateurs experts et développeurs d’applications.

Il y aura désormais un seul Add-On sur le serveur qui permettra l’installation et l’exécution des deux outils.

Capture1

La navigation entre les interfaces Discovery et Designer se fait de façon très simple. L’interopérabilité entre les deux outils est garantie. Ainsi, nous pouvons facilement ouvrir une story créée dans Discovery au niveau de Designer et l’enrichir pour devenir davantage interactive. Inversement, il est aussi possible d’ouvrir un tableau de bord développé dans Designer et le visualiser dans Discovery.

Dans la suite de cet article, nous allons présenter la nouvelle architecture de Lumira 2.x et les nouveautés et améliorations sur les différentes fonctionnalités. Nous parlerons également de l’impact sur les clients du point de vue migration et licences.

Architecture globale

Comme le montre le schéma ci-dessous, nous avons un seul Add-On pour Lumira et Design Studio, ce qui simplifie la gestion et la maintenance des deux outils et par conséquent réduit les coûts d’installation et de mise à niveau.

L’interopérabilité entre Discovery et Designer permet aux utilisateurs métiers et aux développeurs d’applications de travailler ensemble dans la réalisation des tableaux de bords. Il est intéressant d’importer, de préparer et de visualiser les données avec Discovery. Et ensuite, d’étendre et enrichir les tableaux de bord en utilisant Designer.

Capture2

Discovery, quoi de neuf ?

Comme évoqué plus haut, Discovery est l’évolution de Lumira avec davantage d’interactivité, d’ergonomie et de fonctionnalités. La page d’accueil permet d’accéder rapidement à plusieurs modules, à savoir : les connexions, les derniers documents utilisés…

Discovery nous offre la possibilité de nous connecter à un large spectre de source de données, à savoir : fichiers (plats, Excel, csv…), bases de données (Oracle, SQL Server, HANA…), HDFS d’hadoop… Il est désormais possible de nous connecter à BW (en utilisant les requêtes Bex), ce qui représente une nouveauté très intéressante pour les entreprises ayant des applications SAP. D’autres nouveautés riches et puissantes ont marqué cette nouvelle version de Discovery, en voici quelques-unes :

  • Amélioration des filtres : il est possible d’appliquer des filtres multiples au niveau des stories, des pages ou directement au niveau des visualisations (graphiques).
  • Contrôles d’entrées : un simple cliquer glisser d’un filtre sur la page permet d’obtenir des contrôles d’entrée que les utilisateurs pourront facilement sélectionner ou désélectionner.
  • Possibilité de Zoom/Dézoom sur les hiérarchies personnelles.
  • Amélioration du formatage conditionnel.
  • Des menus contextuels riches sur tous types de graphiques.
  • Plus d’options au niveau des graphiques : étiquettes avec ou sans données, fonctions cliquer / déposer…
  • Positionnement au pixel près de tout type d’objets.

Designer, l’interopérabilité avec Discovery

Contrairement à Discovery, l’interface de la nouvelle version de Designer (basée sur Eclipse) est semblable aux anciennes. Un nouvel onglet Documents y est ajouté, il permet notamment d’ouvrir des stories développées avec Discovery pour y ajouter des fonctionnalités poussées pour plus d’interaction.

En résumé, voici la liste des principales améliorations de fonctionnalités de Designer qui sont fournies dans Lumira 2.x :

  • Réutilisation des composants : Cette fonctionnalité permet de développer des modules et de les réutiliser de façon très simple et efficace. Ceci réduira de façon importante les temps de développement. La mise à jour d’un composant s’applique automatiquement à tous les tableaux de bord qui l’utilise.
  • Facilité d’adaptation des applications mobiles par rapport au support de sortie (iPad, iPhone…).
  • Introduction de la mise en forme conditionnelle.
  • Amélioration de certaines fonctionnalités : exports pdf, invites et boîtes de dialogues, les signets, l’utilisation et la mise à jour des cartes géographiques…
  • Possibilité d’exporter les données vers SAP BusinessObjects Analysis.
  • Application de planification : elle permet de modifier des données et de voir directement l’impact dans les tableaux de bord. Elle permet aussi d’enregistrer ces modifications dans le système en amont dans BW.

Impacts sur les clients ayant déjà Lumira ou Design Studio

Pas de panique, SAP a pensé à tout. L’upgrade vers Lumira 2.x n’est pas synonyme d’investissement financier supplémentaire, et il sera toujours possible de récupérer l’existant via des outils de migration/conversion ou travailler sur le même format en mode compatibilité.

Montée de version de l’existant vers Lumira 2.x

  • Discovery

Il n’existe pas de mode compatibilité pour ouvrir les stories, l’upgrade fait automatiquement la conversion vers le format lumx. Quant aux signets, ils ne sont malheureusement pas convertibles. Comme illustré par le schéma suivant, si la conversion génère des erreurs, il faut utiliser le client Lumira 1.x pour corriger le problème et refaire la conversion vers le nouveau format.

Capture3

  • Designer

Le mode compatibilité existe et permet de continuer à travailler sur l’ancien format biapp. Cependant, les nouvelles fonctionnalités de Lumira 2.x et l’interactivité avec Discovery ne sont pas accessibles. Il sera toujours possible de faire la conversion vers le nouveau format .lumx pour bénéficier de l’évolution de la solution Lumira 2.x.

Capture4

Qu’en est-il pour les licences ?

Les anciennes licences Lumira 1.x ou Design Studio 1.x peuvent être gardées ou converties. Le support et la maintenance pour Lumira 1.31 ou Design Studio 1.6 sont garantis jusqu’à mi 2018.

Et si les clients n’ont pas forcément les deux outils Lumira 1.x ou Design Studio 1.x ?

Les fonctionnalités accessibles après passage à Lumira 2.x dépendent des licences détenues par les clients, trois cas de figures se présentent :

  • Clients ayant Design Studio 1.x et Lumira 1.x : le passage à Lumira 2.x donnera accès à Discovery, Designer et l’Add-On serveur. Toutes les nouvelles fonctionnalités seront accessibles.
  • Clients ayant Design Studio 1.x seulement : sous Lumira 2.x, seuls Designer et l’Add-On Serveur seront accessibles. Les fonctionnalités de préparation des données ne seront pas accessibles vu qu’elles sont issues de Discovery à la base.
  • Clients ayant Lumira 1.x seulement : Discovery sera fourni avec les outils de préparation des données et l’accès à BW et HANA.

 

En conclusion, Lumira 2.x s’annonce prometteur, il permettra aux clients un gain sur le coût d’exploitation et un large choix d’options dans le développement des tableaux de bords. Ces derniers pourront bien entendu être accessibles à travers les stories de Discovery. Il reste à savoir si la conversion de l’existant vers la nouvelle version se fait de façon simple et sans trop de problèmes. Nous testerons pour vous cette fonctionnalité dès que l’outil sera disponible. Et bien sûr, nous partagerons notre expérience avec vous dans un futur article.

Références :

https://sap.na.pgiconnect.com/p1qek0smbq5/?proto=true

https://support.sap.com/content/dam/library/ssp/infopages/pam-essentials/TIP/SAP%20Lumira/SAP%20Lumira%202.0/SAPLUMIRA_PAM.pdf

 

Démarrer avec Dataiku 4.0 : réaliser votre premier modèle d’analyse prédictive (la suite)

Dans l’article précédent, nous avons préparé et nettoyé nos données clients. Voyons maintenant comment, à partir de celles-ci, nous pouvons prévoir quels clients deviendront de bons clients.

3ème étape : Visualisation des données

  • Cliquer sur Charts

image_14

  • Par exemple, pour commencer à chercher des corrélations que les modèles établiront de manière plus précise, nous allons visualiser la répartition des clients en fonction de la valeur de leur 1er achat et de leur statut de bon client au bout d’un an (ce statut est stocké dans la variable high_revenue).

image_15

De manière assez intuitive, nous voyons que la proportion de clients ayant acheté un premier article d’une valeur élevée (en vert : entre 96 et 117 euros) est significativement plus forte chez les clients étant devenus de bons clients au bout d’un an.

Est-ce qu’il ne serait pas possible de prévoir de manière plus précise et fiable quels clients deviendront de bons clients ?

L’analyse prédictive analyse des faits présents et passés pour faire des hypothèses prédictives sur les événements futurs et identifier les risques et les opportunités.

Voyons, sur cet exemple concret d’analyse prédictive appliquée au domaine du marketing, comment procéder.

4ème étape : Analyse prédictive

4.1 Définition de la variable d’intérêt

  • Nous choisissons la variable « high revenue » comme variable d’intérêt : c’est cette variable que les modèles vont s’entraîner à prédire en fonction des autres variables sur des données existantes (phase d’apprentissage dans le processus de machine learning), de façon à être capables à l’avenir de la prédire à partir d’un fichier de nouveaux clients dont on ne sait pas encore si ce seront de bons clients.

image_16

4.2 Exécution et performance des algorithmes d’analyse prédictive

En standard, DSS déroule les deux algorithmes suivants : régression logistique (logistic regression) et forêt d’arbres décisionnels (random forest).

L’indicateur ROC AUC indique l’efficacité de l’algorithme à prédire la variable d’intérêt sur le jeu d’essai (plus la valeur de l’indicateur est élevée, plus l’algorithme est performant).

image_17

Nous voyons que c’est l’algorithme de régression logistique qui est le plus performant.

4.3 Compréhension des résultats et de la qualité de la prédiction

En cliquant sur le nom des algorithmes, nous obtenons des informations supplémentaires pour comprendre les résultats et la qualité de la prédiction :

  • La liste des variables utilisées par l’algorithme : toutes ont été utilisées sauf l’identifiant du client.

image_18

  • L’importance des variables : comme nous l’avions deviné, la valeur du 1er article acheté a une importance significative mais les autres variables ont également été utilisées pour affiner la prédiction.

image_19

  • Le graphe de densité :  plus les courbes sont éloignées, plus l’algorithme est robuste car il y a peu ou pas de chevauchement entre les lignes prédites avec une valeur 1 et les lignes prédites avec une valeur 0.

image_20

La graphe de densité est meilleur pour l’algorithme random forest.

4.4 Optimisation des algorithmes d’analyse prédictive

Nous allons maintenant tenter d’optimiser la performance des modèles en ajoutant dans le scoring l’âge de chaque client.

Utilisation de la fonction « Compute time since » …

image_21

image_22

… et ajout de la colonne « âge » :

image_23

  • Les deux algorithmes ont amélioré leur performance et c’est maintenant l’algorithme « random forest » qui est le plus performant.

image_24

4.5 Déploiement du modèle choisi

Nous allons maintenant déployer ce modèle …

image_25

… pour pouvoir l’appliquer sur un jeu de données qui ne contient pas encore la variable d’intérêt à prédire.

image_26

  • Nous obtenons comme résultat pour chaque ligne (client) 3 variables supplémentaires :

– la prédiction : selon le modèle sélectionné, le client sera-t-il un bon client dans un an ?

– la probabilité que le client soit un bon client (l’outil choisit cette option à partir d’une probabilité de 0.65),

– la probabilité qu’il ne le soit pas.

image_27

Félicitations…. Vous êtes maintenant capables de réaliser votre première analyse prédictive avec Dataiku !

Facilité d’installation et de prise en main… l’objectif de Dataiku de rendre la data science plus accessible a bien l’air d’être en passe d’être réussi !

Démarrer avec Dataiku 4.0 : réaliser votre premier modèle d’analyse prédictive

Vous voulez découvrir l’analyse prédictive et les algorithmes de machine learning avec Dataiku ? C’est par ici… nous vous guidons pas à pas.

A quoi ça sert ?

Dataiku est un outil qui permet de :

  • préparer les données (nettoyage, enrichissement),
  • les analyser et les visualiser,
  • faire de l’analyse prédictive (par exemple, dans le domaine du marketing, être capable dès la première interaction avec un client de prédire si celui-ci sera un bon client),
  • automatiser ces analyses et modèles.

1ère étape : installation et lancement de DSS (Data Science Studio)

Dataiku est un outil qui fonctionne exclusivement sous Linux ; Il est possible de le faire fonctionner sous Windows en installant une machine virtuelle comme décrit ci-dessous :

  • Depuis le gestionnaire de programmes, lancer Oracle VM Virtual Box

image_1

  • Importer la machine virtuelle DSS que vous venez de télécharger (dataiku-dss-4.0.1.ova)

image_2

  • Démarrer la machine virtuelle

image_3

Note : l’URL à utiliser est affichée au moment du démarrage de la machine virtuelle (en standard, c’est celle qui est donnée ici).

Nous allons traiter comme exemple l’analyse d’un fichier de données, mais il est possible également avec dataiku d’analyser des données provenant de bases SQL, no SQL, de clouds, de clusters Hadoop…

Nous procéderons dans un premier temps à l’import des données, puis à leur nettoyage. Dans un deuxième temps, nous les analyserons grâce à la data visualisation et à l’analyse prédictive.

2ème étape : préparation des données

2.1 Importer le fichier de données à analyser

image_4

image_5

image_6

  • Ouvrir le LAB

image_7

2.2 Exemples d’actions de nettoyage de données

  • Supprimer les lignes pour lesquelles le pays n’est pas renseigné

image_8

  • Nous voyons que l’outil a automatiquement analysé les colonnes et positionné le type correspondant. Pour la colonne « campaign », qui indique si le client a été ciblé par une campagne de marketing, nous voyons ci-dessous que le type positionné par dataiku est « entier » et que des valeurs incorrectes ont été détectées.

image_9

Nous voyons que les valeurs incorrectes correspondent à des saisies non cohérentes (booléen 0/1 de manière générale mais quelques valeurs saisies en mode true/false).

Passons en mode analyse pour pouvoir corriger ces saisies incohérentes.

image_10

image_11

Il est possible de merger les saisies incohérentes avec celles qui sont correctes…

image_12

… de façon à avoir des données propres et analysables.

image_13

Les données sont prêtes à être analysées !

Nous verrons dans un prochain article comment les exploiter de manière simple dans un exemple concret d’analyse prédictive appliquée au domaine du marketing.

Utilisation de données JSON dans un tableau de bord BiBOARD

La solution BiBOARD permet la création de tableaux de bord dynamiques web à partir de données stockées en base.

De par son architecture, BiBOARD est capable d’intégrer des composants JavaScript permettant l’affichage de composants de data vizualisation avancés tels que ceux de D3JS, AmCharts, HighCharts, MetricsGraphics

Dans le cas de l’utilisation avec BiBOARD, le souci est que ces composants s’alimentent en données par des structures de type JSON et non des requêtes SQL.

Pour répondre à ce besoin, BiBOARD met à disposition depuis la V16 un WebService capable de transformer le résultat d’un hub en chaîne de caractères JSON.

Cet article vous présente comment utiliser ce WebService dans vos développements et comment l’intégrer dans un composant JS du marché, en l’occurrence, OpenStreetMap.

Le WebService JSON

Pour tester ce WebService, dans votre navigateur, tapez l’adresse suivante : http://<serveur BiBOARD:port>/resources/BiBOARDJSONServices.asmx

La liste des services apparaît :

Dans cet article nous allons utiliser : ExportHub

Pour cet exemple nous utilisons le hub REF_liste_categorie_produits créé à partir de la requête suivante sur la base ‘Demonstration’ fournie par l’éditeur :

Select

Demonstration.dbo.Categories.CodeCategorie,

Demonstration.dbo.Categories.NomCategorie

From

Demonstration.dbo.Categories

Order By

1

Saisissez ici vos 4 paramètres :

  • HubId : id du hub fournissant le flux de données (-1 si vous préférez préciser son nom)
  • HubName : Nom du hub fournissant le flux de données (mettre alors -1 dans HubId)
  • MaxRecords : Nombre de lignes à rapatrier (-1 pour toutes)
  • Params : paramètres éventuels séparés par des ;

Nb : Le hub doit être préalablement copié en raccourci dans une catégorie visible par votre compte BiBOARD.

En cliquant sur ‘Appeler’ la chaine JSON s’affiche :

Intégration dans un script JavaScript

Le code suivant permet de solliciter le service ExportHub en JavaScript :

var ExportHub = ‘./resources/BiBOARDJSONServices.asmx/ExportHub?HubId=-1&HubName=REF_liste_categorie_produits&MaxRecords=-1&params=’;

var xhttp = (window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject(« Microsoft.XMLHTTP »);

xhttp.open(« GET », ExportHub ,false);

xhttp.send(null);

var json_str = xhttp.responseText;

La chaîne json_str contient alors :

« <?xml version=\ »1.0\ » encoding=\ »utf-8\ »?>\r\n<string xmlns=\ »http://www.product.BiBOARD.fr/\ »>[\r\n  {\r\n    \ »CodeCategorie\ »: 1,\r\n    \ »NomCategorie\ »: \ »Beverages\ »\r\n  },\r\n  {\r\n    \ »CodeCategorie\ »: 2,\r\n    \ »NomCategorie\ »: \ »Condiments\ »\r\n  },\r\n  {\r\n    \ »CodeCategorie\ »: 3,\r\n    \ »NomCategorie\ »: \ »Confections\ »\r\n  },\r\n  {\r\n    \ »CodeCategorie\ »: 4,\r\n    \ »NomCategorie\ »: \ »Dairy Products\ »\r\n  },\r\n  {\r\n    \ »CodeCategorie\ »: 5,\r\n    \ »NomCategorie\ »: \ »Grains/Cereals\ »\r\n  },\r\n  {\r\n    \ »CodeCategorie\ »: 6,\r\n    \ »NomCategorie\ »: \ »Meat/Poultry\ »\r\n  },\r\n  {\r\n    \ »CodeCategorie\ »: 7,\r\n    \ »NomCategorie\ »: \ »Produce\ »\r\n  },\r\n  {\r\n    \ »CodeCategorie\ »: 8,\r\n    \ »NomCategorie\ »: \ »Seafood\ »\r\n  },\r\n  {\r\n    \ »CodeCategorie\ »: 9,\r\n    \ »NomCategorie\ »: \ »CD\ »\r\n  }\r\n]</string> »

Le code suivant permet ensuite de nettoyer la chaîne afin d’enlever les lignes d’entête et de pied :

var json_str = json_str.replace(« <?xml version=\ »1.0\ » encoding=\ »utf-8\ »?> », «  »);

var json_str = json_str.replace(« <string xmlns=\ »http://www.product.BiBOARD.fr/\ »> », « );

var json_str = json_str.replace(« </string> », » »);

Nb : Le caractère \ permet de ne pas interpréter le caractère suivant dans le code JavaScript.

La chaîne peut enfin être parsée par le code suivant :

var dataJson = JSON.parse(json_str);

A ce stade, la variable dataJson peut être utilisée dans les composants JS compatibles JSON.

Exemple d’utilisation dans BiBOARD

Objectif

Afin de mettre cette théorie en pratique, nous allons intégrer une carte OpenStreetMap dans un tableau de bord BiBOARD, affichant des cercles plus ou moins larges selon la quantité d’articles commandés.

Environnement technique

Ce développement est effectué sur la version 16.1.11 de BiBOARD.

Les données sont celles de la base ‘Demonstration’ fournie par l’éditeur et stockée dans SqlServer 2014.

Afin d’associer les codes postaux à la carte, nous avons ajouté à cette base la table Communes_FR contenant la longitude et la latitude de tous les communes françaises.

Ces données sont disponibles sur le lien : http://www.nosdonnees.fr/wiki/index.php/Fichier:EUCircos_Regions_departements_circonscriptions_communes_gps.csv.gz

Préparation des données

2 hubs sont nécessaires à la production de ce tableau de bord :

  • 1-QTE par commune : hub de données

Requête SQL associée :

Select

cfr.nom_commune,

cfr.latitude,

cfr.longitude,

Sum(cd.Quantite) QTE,

year(co.DateCommande) as Annee

From

dbo.Commandes co,

dbo.Commandes_Details cd,

dbo.Communes_FR cfr

Where

co.NumCommande = cd.NumCommande And co.LivraisonCodePostal = cfr.codes_postaux

And year(co.DateCommande) = :p_ANNEE

Group By

cfr.nom_commune,

cfr.latitude,

cfr.longitude,

year(co.DateCommande)

  • 1-QTE par commune (js) : 1 hub mono ligne contenant le code HTML & JS

Requête SQL associée :

Select getdate() as today

Dans le second hub, nous créons un champ calculé nommé map, au format HTML, contenant le code suivant :

Télécharger le code du champ map au format Word

Il suffit enfin de créer un libellé dans le tableau de bord (en cochant HTML) basé sur le champ map de ce hub, la carte s’affiche !

Ajout d’une sélection sur l’année

Pour rendre le tableau de bord plus dynamique, il peut être judicieux de laisser l’utilisateur choisir l’année.

Pour cela, le code est modifié afin :

  • D’ajouter une liste radio sur les années au-dessus de la carte
  • De retrouver l’année sélectionnée dans le code JS
  • D’ajouter l’année en paramètre lors de la création de la chaîne JSON

Code final du champ map :

Télécharger le code final du champ map au format Word

Résultat final

Conclusion

Nous espérons que cet article vous aura été d’une grande utilité.

Bien sûr, le code JS est perfectible mais ce n’est pas le but de cet article.

N’hésitez pas à nous contacter si vous le souhaitez !