Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Les 22 & 23 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !

Interactions avec MySQL (accès distant)

Introduction

Dans les applications UiPath que nous allons étudier dans ce chapitre, une application dite serveur écrite en PHP est 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…).

Certains hébergeurs autorisent aussi que les bases de données distantes, gérées par MySQL, soient accessibles au travers d’un lien ODBC.

Application MySQL distant - Listage des enregistrements (version 1)

1. Présentation de l’application

Cette première application du chapitre se contente de lister les enregistrements de la table voitures d’une base de données distante hébergée sur un serveur web personnel.

L’hébergeur met à disposition un serveur Apache, un système de gestion de bases de données MySQL (en version 5), 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 sont donc à peu près les mêmes que ceux installés en local (suite logicielle EasypPHP) dans le chapitre Interactions avec MySQL (accès local).

Le logiciel phpMyAdmin permet d’accéder à la base de données distante (nous n’en donnerons pas le nom dans l’exposé) contenant la table voitures. Pour cela, un compte utilisateur de base de données MySQL est requis. Une authentification fondée sur le mot de passe associé au compte est nécessaire.

La structure de la table voitures est la suivante :

images/X-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 :

images/X-1-1_02.png

2. Script « serveur » PHP

Pour que l’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.    // REALISATION INFORMATIQUE : Christian VIGOUROUX 
6.    // DATE DE CREATION : 04/08/2019 
7.    // DATE DE MODIFICATION : 04/08/2019 
8.    //...

Application MySQL distant - Listage des enregistrements (version 2)

1. Présentation de l’application

La deuxième version de l’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 est la désérialisation du 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 est identique à celui utilisé dans la première application (liste_voitures_json.php).

3. Application UiPath

L’ordinogramme du processus UiPath est assez proche de celui de la première version :

images/X-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 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/X-2-3_02.png

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

La propriété JsonArray...

Application MySQL distant - Listage des enregistrements (version 3)

1. Présentation de l’application

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

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

2. Script « serveur » PHP

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

3. Application UiPath

L’ordinogramme du processus UiPath est présenté ci-après (avec la séquence d’affichage des valeurs des champs non déployée) :

images/X-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 dans...

Application MySQL distant - Listage des enregistrements (version 4)

1. Présentation de l’application

Le dernier processus UiPath lit une fois de plus 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 loin dans le traitement en intégrant les enregistrements (voitures de sport) dans un classeur Microsoft Excel nommé voitures_sport.xlsx. 

2. Script « serveur » PHP

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

3. Application UiPath

L’ordinogramme du processus UiPath est présenté ci-après (avec la séquence Excel Application Scope non déployée) :

images/X-4-3_01.png

Ne nous attardons pas sur les deux premières activités, déjà vues précédemment.

L’activité Suppression du classeur Microsoft Excel ‘voitures_sport.xlsx’ de type UiPath.Core.Activities.Delete sert à supprimer le classeur Microsoft Excel voitures_sport.xlsx s’il existe. Voyons ses propriétés :

images/X-4-3_02.png

La propriété ContinueOnError positionnée à True permet d’éviter un cas d’erreur si le classeur Microsoft Excel n’existe pas et que l’on demande sa suppression. Il...