1. Livres & vidéos
  2. UiPath et Robotic Process Automation
  3. Interactions avec une BDD MySQL distante
Extrait - UiPath et Robotic Process Automation Automatisez vos processus métier avec la RPA (2e édition)
Extraits du livre
UiPath et Robotic Process Automation Automatisez vos processus métier avec la RPA (2e édition) Revenir à la page d'achat du livre

Interactions avec une BDD MySQL distante

Introduction

Certains hébergeurs autorisent que les bases de données distantes, gérées par MySQL, soient accessibles au travers d’un lien ODBC. Dans ce cas particulier, nous nous retrouvons dans une configuration logicielle assez proche de celle vue dans le chapitre précédent, la seule modification à effectuer se situant au niveau de la source de données ODBC (DSN).

Dans les applications UiPath, que nous allons étudier dans ce chapitre, l’architecture logicielle sera différente. Une application dite « serveur » écrite en PHP sera sollicitée pour manipuler les données stockées dans une base de données MySQL distante.

Dans ce cas, les développements envisagés peuvent être fonctionnellement très riches, car en réalité les traitements les plus complexes sont délégués à l’application distante écrite en PHP. UiPath se contentant de lancer l’application, de lui fournir des données ou des paramètres et de récupérer des informations en retour (flux texte au format CSV, JSON, XML…).

Il aurait bien entendu été possible de substituer au langage PHP un autre langage de programmation, mais l’hébergeur que nous allons utiliser offre uniquement une architecture de type « Unix/Apache/MySQL/PHP »....

Application « MySQL distant - Listage des enregistrements V1 »

1. Présentation de l’application

Dans cette première application du chapitre, nous allons lister les enregistrements d’une table voitures d’une base de données MySQL distante hébergée sur un serveur web personnel.

Notre hébergeur met à notre disposition un serveur Apache, un système de gestion de bases de données MySQL, une interface phpMyAdmin pour assurer l’administration des tables MySQL et bien entendu un espace de publication web où le script « serveur » écrit en PHP sera installé. 

Ces composants logiciels sont donc à peu près les mêmes que ceux installés en local (suite logicielle EasyPHP) dans le chapitre précédent.

Au travers du logiciel phpMyAdmin, nous pouvons avoir accès à la base de données distante (nous n’en donnerons pas le nom dans l’exposé) à une table voitures. Pour cela, une authentification reposant sur un compte utilisateur MySQL et le mot de passe associé sont requis.

Nous aurions tout aussi bien pu déployer la table personnes vue lors du chapitre précédent sur ce serveur MySQL distant pour le développement des applications de ce chapitre.

La structure de la table voitures est la suivante :

images/IX_1_1_01.png

Le jeu de données est constitué de 21 voitures de sport. La liste des enregistrements est limitée aux 10 premières voitures ci-après :

images/IX_1_1_02.png

2. Script « serveur » PHP

Pour que notre application UiPath puisse interagir avec la base de données MySQL distante, il est indispensable qu’un script « serveur », écrit en langage PHP, soit sollicité.

Le script PHP liste les données de la table voitures et restitue le résultat dans un format que pourra comprendre l’application UiPath, le format JSON.

Vous trouverez un article Wikipédia expliquant le format JSON à l’adresse https://fr.wikipedia.org/wiki/JavaScript_Object_Notation.

Étudions dans le détail ce script nommé liste_voitures_json.php :

1. <?php 
2. 
3.   // 
4.   // NOM DU SCRIPT : liste_voitures_json.php 
5.   //...

Application « MySQL distant - Listage des enregistrements V2 »

1. Présentation de l’application

La seconde version de notre application de listage des enregistrements de la table voitures hébergée sur un SGBD MySQL distant est une extension de la première.

La plus-value va être la désérialisation de notre flux JSON afin que les données soient stockées dans un tableau mémoire facilement exploitable dans l’application UiPath.

2. Script « serveur » PHP

Le script « serveur » écrit en PHP sera identique à celui utilisé dans notre première application (liste_voitures_json.php).

3. Application UiPath

Le workflow de notre processus UiPath est assez proche de celui de la première version.

images/IX_2_3_01.png

Il n’est pas nécessaire de revoir la première activité déjà rencontrée dans la version 1.

L’activité de désérialisation nommée Désérialisation dans un tableau JArray est par contre nouvelle.

Le nom technique de cette activité est UiPath.Web.Activities.DeserializeJsonArray.

Consultons ses propriétés :

images/IX_2_3_02.png

La propriété Chaîne JSON a pour valeur listeVoitures, c’est-à-dire la chaîne de caractères contenant l’intégralité du flux JSON....

Application « MySQL distant - Listage des enregistrements V3 »

1. Présentation de l’application

Cette troisième version de notre application de listage des enregistrements de la table voitures hébergée sur un SGBD MySQL distant est une extension de la seconde.

Le flux de données JSON sera désérialisé et par l’intermédiaire d’un traitement itératif les valeurs des champs de chaque enregistrement seront affichées à chaque tour de boucle.

2. Script « serveur » PHP

Le script « serveur » écrit en PHP sera identique à celui utilisé dans les deux premières applications (liste_voitures_json.php).

3. Application UiPath

Le workflow de notre processus UiPath est présenté ci-après (avec la séquence d’affichage des valeurs des champs non déployée/dépliée).

images/IX_3_3_01.png

Les activités Requête HTTP et Désérialisation dans un tableau JArray ont déjà été étudiées dans la version 2 de cette application.

Pour ce qui est de l’affichage du nombre d’enregistrements du flux JSON, la formule est :

"Nombre de voitures : " + tableauVoitures.Count.ToString 

Une variable (nommée numeroEnregistrement) est requise pour repérer la position de l’enregistrement...

Application « MySQL distant - Listage des enregistrements V4 »

1. Présentation de l’application

Notre dernier processus UiPath va une fois de plus lire un flux JSON issu d’une extraction de données faite depuis la table MySQL distante voitures.

L’enjeu est ici d’aller un peu plus loin dans le traitement en intégrant les enregistrements (voitures de sport) dans un classeur Microsoft Excel nommé voitures_sport.xlsx. 

De premières explications concernant la manipulation d’un classeur Microsoft Excel seront fournies dans le cadre de cette application. Vous pouvez aussi vous reporter au chapitre Gestion de classeurs Microsoft Excel pour obtenir des explications plus détaillées sur ce sujet.

2. Script « serveur » PHP

Le script « serveur » écrit en PHP sera identique à celui utilisé dans les trois premières applications (liste_voitures_json.php).

3. Application UiPath

Le workflow de notre processus UiPath est présenté ci-après (avec la séquence Excel Application Scope non déployée) :

images/IX_4_3_01.png

Ne nous attardons pas sur les deux premières activités, déjà vues dans la version 3 de notre application.

L’activité nommée Suppression du classeur Microsoft Excel ‘voitures_sport.xlsx’ de type UiPath.Core.Activities.Delete...

Pour aller plus loin

Pour le présent chapitre, vous pourrez être tributaire du script PHP http://christian-vigouroux.fr/uipath/liste_voitures_json.php.

Si vous disposiez d’un compte d’hébergement web sur lequel vous seriez en mesure de déployer une base de données MySQL et une table de données analogue à celle utilisée dans nos processus (voitures), vous pourriez dans un premier temps adapter les quatre processus.

En réalité, le travail à effectuer porterait plutôt sur la modification du script serveur en langage PHP (liste_voitures_json.php) en intégrant vos propres identifiants de connexion à la base de données MySQL.

Pour augmenter un peu la complexité, vous pourriez aussi travailler sur une structure de table MySQL totalement différente, ce qui impacterait bien sûr plus en profondeur les quatre processus.

Sur la base du processus ENI_UiPath_MySQL_distant_Liste_de_voitures_V4 vous pourriez reporter les données extraites de la table MySQL voitures distante dans une table MySQL locale.

Enfin vous pourriez effectuer un calcul de moyenne sur l’un des champs numériques de la table MySQL voitures, par exemple sur le champ puissance ou le champ vitesse_pointe et ceci par exemple sur une marque filtrée par une saisie réalisée au travers d’une boîte de dialogue (InputDialog).