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 :
Le jeu de données est constitué de 21 voitures de sport. La liste des enregistrements est limitée aux 10 premières voitures :
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 :
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 :
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) :
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) :
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 :
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...