UiPath Documentation
process-mining
2021.10
true
Important :
Veuillez noter que ce contenu a été localisé en partie à l’aide de la traduction automatique. La localisation du contenu nouvellement publié peut prendre 1 à 2 semaines avant d’être disponible.

Guide de l'utilisateur de Process Mining

Example: Creating a Python Script

Introduction

Cet exemple explique comment interfacer la plate-forme UiPath Process Mining avec des scripts Python externes pour implémenter le traitement des données externes.

Remarque :

Les exemples de cette section sont basés sur python version 3.

Présentation générale

Un script Python est créé qui :

  • prend en entrée un fichier .CSV , à spécifier sur sa ligne de commande comme seul argument requis,
  • multiplie la valeur Montant par deux,
  • écrit le résultat sur son canal de sortie standard.

Étapes

  1. Configuration des paramètres du serveur ;
  2. Configuration de l'espace de travail ;
  3. Configuration d'une source de données de script ;
  4. Configuration de la source de données ;
  5. Écriture du script.

Configuration des paramètres du serveur

La source de données de script générique nécessite des gestionnaires pour tous les processus externes que vous souhaitez exécuter.

Suivez ces étapes pour ajouter un gestionnaire de script générique.

ÉtapeAction
1Accédez à l'onglet Paramètres du Superadmin (Superadmin Settings).
2Ajoutez un champ GenericScriptHandlers avec comme valeur un objet avec une clé, « python », qui a pour valeur le chemin d’accès à votre exécutable python. Par exemple : "GenericScriptHandlers": { "py": "P:/Python/bin/python.exe" }
3Cliquez sur ENREGISTRER (SAVE).

Configuration de l'espace de travail

Commencez par créer un script minimal qui n'effectue encore aucun traitement de données. Ce script sera utilisé pour vérifier que votre configuration python fonctionne et que votre script est appelé à partir de la plate-forme UiPath Process Mining .

Cet exemple de script montre comment générer la sortie qui apparaîtra dans le journal d'exécution du script et comment le code de sortie d'un script influence le comportement de la plate-forme UiPath Process Mining .

Étape

Action

1

Dans votre éditeur préféré, démarrez un fichier texte vierge.

2

Saisissez le texte suivant :

#!/usr/bin/python import sys def débogage(message) : sys.stderr.write(message) déboguez ("Bonjour le monde ! ») quittez(1)

Remarque : la commande debug(“Hello world!”) est un exemple d'utilisation du canal d'erreur standard pour générer des messages et déboguer la sortie.

3

Enregistrez le fichier texte sous script.py .

4

Téléchargez le fichier script.py dans votre espace de travail.

Ce script imprime uniquement une activité « Bonjour le monde ! » .exe. L'interface du script utilise la sortie standard pour la communication de données entre le script et la plate-forme UiPath Process Mining . Si vous souhaitez inclure des messages de statut dans votre script, vous devez plutôt les écrire dans le message d'erreur standard .

Remarque :

L’exemple de script se termine avec le code de statut 1. Tout code de statut autre que 0 sera interprété par la plateforme UiPath Process Mining comme une condition d'erreur.

Configuration d'une source de données de script

Ensuite, configurez une table de source de données dans l'application qui appellera le script. Commencez avec des données factices, car votre script ne traitera pas encore les données. À ce stade, il sera vérifié que le script est exécuté comme prévu, c'est-à-dire que vous pouvez voir le message « Hello world! message.

Étape

Action

1

Ouvrez l'application dans votre environnement de développement.

2

Accédez à l'onglet Données et créez une nouvelle table de chaîne de connexion.

3

Renommez le New_table en PythonExample .

4

Cliquez avec le bouton droit sur la table PythonExample et sélectionnez Avancé > Options… .

5

Dans la boîte de dialogue Options de table , définissez l' Étendue de la table sur Espace de travail .

6

Double-cliquez sur la table PythonExample pour ouvrir la fenêtre Modifier la table de chaînes de connexion .

7

Saisissez les éléments suivants en tant que Chaîne de connexion :

``'driver={mvscript

8

Saisissez les éléments suivants en tant que requête :

``''

  • '&scriptFile=' + urlencode("script.py")
  • '&inputData=' + urlencode("a;b;c"+#10+"1;2;3"+#10+"4;5;6"+#10)``

Le « #10 » dans l’exemple inputData indique des caractères de nouvelle ligne. C'est-à-dire nous définissons les données CSV factices suivantes :

"a";"b";"c"

"1";"2";"3"

"4";"5";"6

9

Cliquez sur OK.

10

Cliquez sur OUI (YES).

L'actualisation de la table échoue et le message « Hello World ! message

L'emplacement du fichier de script est déterminé par l'étendue de la table. Cela peut être défini sur Serveur ou Espace de travail, ou Aucun. S’il est défini sur Aucun, le chemin d’accès vers le fichier de script est absolu. S'il est défini sur Serveur ou Espace de travail, l'emplacement du script est interprété comme un chemin relatif.

Important :

Vous devez obtenir les informations « Bonjour le monde ! » de travail pour pouvoir terminer avec succès les étapes restantes afin de configurer une interface avec un script python externe.

Configuration de la source de données

Pour exporter les données que vous souhaitez traiter dans un script externe, la première étape consiste à sélectionner les champs dont vous avez besoin dans votre script python. Pour ce faire, créez une nouvelle table contenant tous les champs nécessaires au script python. Ce tableau sera exporté au format .CSV ultérieurement afin que le script python puisse le lire.

Pour cet exemple, nous avons une application avec une table Cases et une table Events . Voir illustration ci-dessous.

Suivez ces étapes.

ÉtapeAction
1Créez une nouvelle Table globale , PythonInputData.
2Ajoutez un nouvel attribut d'expression, PythonInputData_Amount .
3Définissez le Type sur Recherche.
4Définissez la Table d'entrée sur Cases_base.
5Définissez l'expression sur listtojson(text(double(records.Amount))) .
6Définissez le niveau d'expression sur racine.
7Cliquez sur OK.
8Ajoutez un autre attribut d'expression de recherche pour l' objet Case_ID. Définissez l'expression sur listtojson(text(double(records.Case_ID))).
Remarque :

Le format de l’attribut de l’expression Look-up doit être une liste de chaînes. En effet, la fonction csvtable() sera utilisée pour transformer les données au format .CSV , qui attend une liste d'enregistrements (texte). Étant donné que la fonction listtojson() nécessite que son entrée soit de type texte, le format des enregistrements dans le fichier CSV obtenu dépend du type d'attribut sélectionné (dans ce cas, le montant est de type Devise), et de l'affichage actuellement actif .pdf. Ici, le type de devise est converti en double, pour faciliter l'analyse des enregistrements ultérieurement dans le script python.

Écriture du script

Dans votre éditeur de texte, mettez à jour le fichier script.py avec le code suivant.

#!/usr/bin/pytho
import csv
import sys
def debug(message):
    sys.stderr.write(message)
# Read the CSV header. This is used so that the script will output the fields
# in the same order that they were read in. This step is optional.
column_order = [];
with open(sys.argv[1]) as csv_file:
    reader = csv.reader(csv_file, delimiter=';')
    column_order = next(reader)
# Process the input file
with open(sys.argv[1]) as csv_file:
    reader = csv.DictReader(csv_file, delimiter=';')
    # Construct the output writer.
    writer = csv.DictWriter(
        sys.stdout,
        column_order,
        delimiter=';',
        restval='',
        quoting=csv.QUOTE_ALL
    )
    writer.writeheader()
    for row in reader:
        # Get data from row
        case_id = row['Case_ID']
        amount = int(row['Amount'])
        # Do computation
        amount = amount * 2
        # Write results
        writer.writerow({'Case_ID': case_id, 'Amount': amount})
# Exit indicating success
exit(0)
#!/usr/bin/pytho
import csv
import sys
def debug(message):
    sys.stderr.write(message)
# Read the CSV header. This is used so that the script will output the fields
# in the same order that they were read in. This step is optional.
column_order = [];
with open(sys.argv[1]) as csv_file:
    reader = csv.reader(csv_file, delimiter=';')
    column_order = next(reader)
# Process the input file
with open(sys.argv[1]) as csv_file:
    reader = csv.DictReader(csv_file, delimiter=';')
    # Construct the output writer.
    writer = csv.DictWriter(
        sys.stdout,
        column_order,
        delimiter=';',
        restval='',
        quoting=csv.QUOTE_ALL
    )
    writer.writeheader()
    for row in reader:
        # Get data from row
        case_id = row['Case_ID']
        amount = int(row['Amount'])
        # Do computation
        amount = amount * 2
        # Write results
        writer.writerow({'Case_ID': case_id, 'Amount': amount})
# Exit indicating success
exit(0)

Suivez les étapes ci-dessous :

ÉtapeAction
1Téléchargez le nouveau script dans l' espace de travail, en écrasant le fichier existant et revenez à l'application.
2Cliquez avec le bouton droit sur la table PythonExample et sélectionnez Modifier….
3Modifiez le paramètre inputData de la chaîne de requête pour la table PythonExample : + '&inputData=' + urlencode(csvtable( "Case_ID", jsontolist(PythonInputData.Case_ID), "Amount" , jsontolist(PythonInputData.Amount), )) Voir illustration ci-dessous.
4Cliquez sur OK.
5Cliquez sur OUI (2x).
6Cliquez sur OK.

La table PythonExample possède désormais deux attributs de source de données, Montant et Case_ID. Voir illustration ci-dessous.

L’inspection de l’attribut Montant révèle que tous les montants ont été multipliés par deux. Voir l'illustration ci-dessous un exemple de la sortie générée par le script python.

Cette page vous a-t-elle été utile ?

Connecter

Besoin d'aide ? Assistance

Vous souhaitez apprendre ? UiPath Academy

Vous avez des questions ? UiPath Forum

Rester à jour