1. Livres & vidéos
  2. UiPath et Robotic Process Automation
  3. Interactions avec une BDD MySQL locale
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 locale

Introduction

Le système de gestion de base de données MySQL est certainement l’un des plus utilisés au monde pour plusieurs raisons : le fait qu’il s’agisse d’un logiciel open source, qu’il soit employé pour le stockage de données dans les intranets et qu’il soit omniprésent dans les sites web « dynamiques », c’est-à-dire couplés avec une base de données en back-office.

L’acteur principal du monde des SGBD est indiscutablement Oracle avec son produit Oracle Database, mais il faut aussi savoir que cette même société a acquis les droits sur MySQL en rachetant la société Sun Microsystems en 2009.

Sur le podium dans le marché des SGBD nous trouvons Microsoft SQL Server. Nous aurons l’occasion de voir comment interagir avec cet outil dans le cadre du chapitre Interactions avec une BDD Microsoft SQL Server. 

Ce qui fait de MySQL une solution majeure, ce sont aussi sa robustesse notamment en situation d’accès concurrents, sa capacité à gérer de très grosses volumétries, son couplage avec un langage de programmation très performant, PHP, et enfin le fait qu’il soit utilisable indifféremment dans des architectures intranet, extranet et internet.

Dans le présent chapitre, nous débuterons par des applications...

Application « MySQL local - Comptage des enregistrements »

1. Présentation de l’application

Dans cette première application du chapitre, nous allons nous contenter de lister les enregistrements de la table personnes d’une base de données uipath qui va être gérée par un serveur de base de données (SGBD) installé localement.

La table personnes aura la structure suivante :

  • personne_id : type entier, clé primaire avec auto-incrémentation ;

  • nom : type caractère sur vingt positions ;

  • prenom : type caractère sur vingt positions ;

  • age : type entier ;

  • genre : type caractère sur une position.

Les données initiales (quatre enregistrements seront saisis) :

images/VIII_1_1_01.png

Si vous souhaitez mettre en œuvre les exemples du présent chapitre, il vous faudra déployer sur une machine Windows une suite logicielle open source de type WAMP (Windows, Apache, MySQL, PHP).

Il existe de nombreuses suites de ce type, téléchargeables gratuitement. Nous avons porté notre choix sur la suite EasyPHP en version 14.1 VC11 qui est très stable et facilement installable.

Évidemment, si vous utilisez une version plus récente de cette suite sur votre poste de travail (en 2025 la dernière version disponible est EasyPHP Devserver 17.0), vous pouvez tout naturellement l’utiliser. Sous Windows, il existe aussi des versions alternatives de la suite EasyPHP, nous pensons notamment à XAMPP 8.2.12 ou à encore WampServer 3.3.7. Ces deux suites pourraient également parfaitement servir comme support aux processus UiPath que nous allons étudier.

La particularité de la suite EasyPHP 14.1 VC11 est qu’elle n’intègre qu’une version 5 du système de gestion de bases de données (SGBD) MySQL et du langage de programmation PHP en version 5.6. Le fait que ce langage soit dans cette version et non pas en 7.x ne sera pas un obstacle, car UiPath sera l’outil utilisé pour manipuler les données. Il en est de même en ce qui concerne le SGBD MySQL désormais en version 9.

EasyPHP intègre les quatre composants classiques d’une telle suite, à savoir :

  • un serveur Apache pour animer les pages web ;...

Application « MySQL local - Listage des enregistrements »

1. Présentation de l’application

Dans cette seconde application du chapitre, nous allons nous contenter de lister les enregistrements de la table personnes de la base de données uipath que nous avons déjà vue dans la section précédente.

Dans la mesure où le traitement est normalement assez semblable au comptage des enregistrements, le niveau de description du processus sera moindre.

2. Application UiPath

Nous ne reviendrons donc pas sur le détail des activités étudiées dans la section Application « MySQL local - Comptage des enregistrements ».

Voici le processus complet :

images/VIII_2_2_01.png

Un compteur d’enregistrements est tout d’abord initialisé à zéro (numeroEnregistrement) avec une activité Assign. Ce compteur servira ensuite dans la boucle de traitement des enregistrements. Bien évidemment, ce compteur est aussi déclaré dans le gestionnaire de données et ceci en type entier.

images/VIII_2_2_02.png

La suite du traitement est gérée dans une structure itérative (activité ForEach) :

images/VIII_2_2_03.png

Nous avons fait le choix de retenir l’activité For Each Row in Data Table, mais l’activité For Each aurait aussi pu être sélectionnée.

L’affichage des valeurs des champs est obtenu...

Application « MySQL local - Export CSV »

1. Présentation de l’application

Notre troisième application axée sur MySQL (installé en version locale) va une fois de plus utiliser la base de données MySQL uipath. Nous nous y connecterons comme cela a été le cas dans les deux applications précédentes, c’est-à-dire avec recours à un DSN.

Les quatre enregistrements de la table personnes seront exportés en format CSV.

2. Application UiPath

Visualisons le workflow de ce processus UiPath en réduisant la séquence Boucle de traitement des enregistrements :

images/VIII_3_2_01.png

Il n’est pas nécessaire de revenir en détail sur le paramétrage des deux premières activités Connexion à la BDD et exécution requête SQL et Affichage du nombre de personnes.

L’activité suivante est nouvelle, elle consiste à supprimer le fichier personnes.csv dans lequel l’export en format CSV va être réalisé :

images/VIII_3_2_02.png

Les propriétés de cette activité (UiPath.Core.Activities.Delete) que vous trouverez dans l’arborescence des activités (Système/Fichier/Delete File) sont simples à interpréter :

images/VIII_3_2_03.png

La propriété Fichier/Path précise le nom du fichier texte que l’on veut générer. Dans notre...

Application « MySQL local - Recherche enregistrement »

1. Présentation de l’application

Nous allons étudier comment rechercher un enregistrement dans une table, en l’occurrence la table MySQL personnes que nous connaissons déjà, contenant quatre enregistrements.

La recherche dans la table personnes se fera sur la base des champs nom et prenom.

2. Application UiPath

Le workflow du processus UiPath comprend plusieurs séquences dont certaines sont non développées (dépliées) dans le schéma suivant :

images/VIII_4_2_01.png

La première séquence nommée Connexion à la BDD et exécution requête SQL n’est pas une nouveauté. Elle consiste en la connexion à la base de données MySQL uipath au travers d’un lien ODBC de nom UIPATH_MYSQL. Une structure matricielle de type DataTable de nom dataTablePersonnes est alimentée par l’exécution de la requête SQL select * from personnes.

Regardons tout de suite la liste des variables déclarées pour ce processus UiPath, cela facilitera la compréhension de la suite du traitement :

images/VIII_4_2_02.png

La seconde activité (MessageBox) réalise un affichage de contrôle du nombre d’enregistrements présents dans la table personnes. Cette activité a déjà été étudiée dans les précédents processus.

Déployons ensuite...

Pour aller plus loin

Il vous faudra déployer la base de données locale uipath et la table de données personnes sous un environnement WAMP (Windows-Apache-MySQL-PHP) comme EasyPHP pour que vous puissiez tester les quatre processus Uipath du chapitre.

Reconstruire des processus similaires sur la base d’une structure de tables de données différente serait aussi un challenge intéressant.

Vous pouvez aussi modifier le processus ENI_UiPath_MySQL_Listage_des_enregistrements et vous pourrez vous contenter de calculer la moyenne des âges pour l’ensemble des enregistrements.

Pour le processus ENI_UiPath_MySQL_Export_CSV un export uniquement des personnes de genre masculin (ou féminin) pourrait constituer un bon exercice.