Process Mining
2021.10
False
Bannerhintergrundbild
Process Mining
Letzte Aktualisierung 2. Apr. 2024

Example: Creating a Python Script

Einleitung

In diesem Beispiel wird erläutert, wie die UiPath Process Mining- Plattform mit externen Python-Skripten verbunden wird, um die externe Datenverarbeitung zu implementieren.

Hinweis: Die Beispiele in diesem Abschnitt basieren auf Python Version 3.

Allgemeine Übersicht

Ein Python-Skript wird erstellt, das:

  • nimmt als Eingabe eine .CSV -Datei, die in der Befehlszeile als einziges erforderliches Argument angegeben werden muss.
  • multipliziert den Wert „Amount “ mit zwei,
  • schreibt das Ergebnis in den Standardausgabekanal.

Schritte

  1. Einrichten der Servereinstellungen;
  2. Einrichten des Arbeitsbereichs;
  3. Einrichten einer Skriptdatenquelle;
  4. Einrichten der Datenquelle;
  5. Schreiben des Skripts.

Einrichten der Servereinstellungen

Die generische Skriptdatenquelle erfordert Handler für alle externen Prozesse, die Sie ausführen möchten.

Führen Sie diese Schritte aus, um einen generischen Skripthandler hinzuzufügen.

Schritt

Aktion

1

Gehen Sie zur Registerkarte Superadministrator-Einstellungen.

2

Fügen Sie ein Feld GenericScriptHandlers mit als Wert ein Objekt mit einem Schlüssel hinzu, „py“, das als Wert den Pfad zu Ihrer ausführbaren Python-Datei hat. Zum Beispiel:

"GenericScriptHandlers": { "py": "P:/Python/bin/python.exe" }

3

Klicken Sie auf SPEICHERN.

Einrichten des Arbeitsbereichs

Beginnen Sie mit der Erstellung eines minimalen Skripts, das noch keine Datenverarbeitung durchführt. Dieses Skript wird verwendet, um zu überprüfen, ob Ihr Python-Setup funktioniert und dass Ihr Skript von der UiPath Process Mining- Plattform aufgerufen wird.

Dieses Beispielskript zeigt, wie eine Ausgabe generiert wird, die im Skriptausführungsprotokoll angezeigt wird, und wie der Exitcode eines Skripts das Verhalten der UiPath Process Mining- Plattform beeinflusst.

Schritt

Aktion

1

Starten Sie in Ihrem bevorzugten Editor eine leere Textdatei.

2

Geben Sie den folgenden Text ein:

#!/usr/bin/python import sys def debug(message): sys.stderr.write(message) debug("Hello world!") exit(1)#!/usr/bin/python import sys def debug(message): sys.stderr.write(message) debug("Hello world!") exit(1)
Hinweis: Der Befehl debug(“Hello world!”) ist ein Beispiel dafür, wie der Standardfehlerkanal verwendet wird, um Meldungen auszugeben und die Ausgabe zu debuggen.

3

Speichern Sie die Textdatei als script.py .

4

Laden Sie die script.py -Datei in Ihren Arbeitsbereich hoch.

Dieses Skript gibt nur „Hello world!“ aus. Nachricht. Die Skriptschnittstelle verwendet die Standardausgabe für die Datenkommunikation vom Skript zur UiPath Process Mining- Plattform. Wenn Sie Statusmeldungen in Ihr Skript aufnehmen möchten, sollten Sie sie stattdessen in den Standardfehler schreiben.

Hinweis: Das Beispielskript wird mit Statuscode 1 beendet. Jeder andere Statuscode als 0 wird von der UiPath Process Mining -Plattform als Fehlerbedingung interpretiert.

Einrichten einer Skriptdatenquelle

Als Nächstes richten Sie eine Datenquellentabelle in der App ein, die das Skript aufruft. Beginnen Sie mit einigen Dummy-Daten, da Ihr Skript die Daten noch nicht verarbeitet. Zu diesem Zeitpunkt wird überprüft, ob das Skript wie erwartet ausgeführt wird, dh dass Sie die Meldung „Hello world!“ sehen können. Nachricht.

Schritt

Aktion

1

Öffnen Sie die App in Ihrer Entwicklungsumgebung.

2

Wechseln Sie zur Registerkarte Daten und erstellen Sie eine neue Verbindungszeichenfolgentabelle.

3

Benennen Sie New_table in PythonExample um.

4

Klicken Sie mit der rechten Maustaste auf die Tabelle PythonExample und wählen Sie Erweitert > Optionen…aus.

5

Legen Sie im Dialogfeld Tabellenoptionen den Tabellenbereich auf Arbeitsbereichfest.

6

Doppelklicken Sie auf die Tabelle PythonExample , um das Fenster Verbindungszeichenfolgentabelle bearbeiten zu öffnen.

7

Geben Sie Folgendes als Verbindungszeichenfolge ein:

``'driver={mvscript

8

Geben Sie Folgendes als Abfrage ein:

``''

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

„#10“ im inputData-Beispiel gibt New-Line-Zeichen an. Ie Wir definieren die folgenden Dummy-CSV-Daten:

"a";"b";"c"

"1";"2";"3"

"4";"5";"6

9

Klicken Sie auf OK.

10

Klicken Sie auf JA.

Die Tabellenaktualisierung schlägt fehl, und im Fehlerprotokoll sollten Sie „Hello World!“ sehen. Nachricht

Der Speicherort der Skriptdatei wird durch den Tabellenbereich bestimmt. Dies kann entweder auf Server oder Arbeitsbereichoder auf Keinefestgelegt werden. Wenn auf Nonefestgelegt, ist der Pfad zur Skriptdatei absolut. Wenn es auf Server oder Arbeitsbereichfestgelegt ist, wird der Speicherort des Skripts als relativer Pfad interpretiert.

Wichtig: Sie müssen die Meldung „Hello World!“ abrufen. Beispiel, um die verbleibenden Schritte zum Einrichten einer Schnittstelle mit einem externen Python-Skript erfolgreich abzuschließen.

Einrichten der Datenquelle

Um die Daten zu exportieren, die Sie in einem externen Skript verarbeiten möchten, müssen Sie im ersten Schritt die Felder auswählen, die Sie in Ihrem Python-Skript benötigen. Dazu erstellen Sie eine neue Tabelle, die alle Felder enthält, die das Python-Skript benötigt. Diese Tabelle wird später im .CSV -Format exportiert, damit das Python-Skript sie einlesen kann.

In diesem Beispiel haben wir eine Anwendung mit einer Cases -Tabelle und einer Events -Tabelle. Siehe Abbildung unten.



Führen Sie die folgenden Schritte aus.

Schritt

Aktion

1

Erstellen Sie eine neue globale Tabelle, PythonInputData .

2

Fügen Sie ein neues Ausdrucksattribut hinzu, PythonInputData_Amount .

3

Legen Sie den Typ auf Lookup fest.

4

Legen Sie die Eingabetabelle auf Cases_base fest .

5

Legen Sie den Ausdruck auf listtojson(text(double(records.Amount))) .

6

Legen Sie die Ausdrucksebene auf root fest.

7

Klicken Sie auf OK.

8

Fügen Sie ein weiteres Lookup-Ausdrucksattribut für die Case_ID hinzu.

Legen Sie den Ausdruck auf listtojson(text(double(records.Case_ID))) .
Hinweis:
Das Format des Suchausdrucksattributs sollte eine Liste von Zeichenfolgen sein. Dies liegt daran, dass die csvtable() -Funktion verwendet wird, um die Daten in das .CSV -Format umzuwandeln, das eine Liste von (Text-)Datensätzen erwartet.
Da die listtojson() -Funktion erfordert, dass ihre Eingabe vom Typ Text ist, hängt das Format der Datensätze in der resultierenden CSV-Datei vom Typ des ausgewählten Attributs (in diesem Fall hat Betrag vom Typ Währung) und der derzeit aktiven Anzeige ab. formatieren. Hier wird der Währungstyp in „double“ konvertiert, um das Analysieren der Datensätze später im Python-Skript zu erleichtern.

Schreiben des Skripts

Aktualisieren Sie in Ihrem Texteditor die Datei script.py mit dem folgenden Code.

#!/usr/bin/python
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/python
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)

Führen Sie die folgenden Schritte aus.

Schritt

Aktion

1

Laden Sie das neue Skript in den Arbeitsbereich hoch, überschreiben Sie die vorhandene Datei und kehren Sie zur Anwendung zurück.

2

Klicken Sie mit der rechten Maustaste auf die Tabelle PythonExample und wählen Sie Bearbeiten…aus.

3

Ändern Sie den Parameter inputData der Abfragezeichenfolge für die Tabelle PythonExample :

+ '&inputData=' + urlencode(csvtable( "Case_ID", jsontolist(PythonInputData.Case_ID), "Amount" , jsontolist(PythonInputData.Amount), ))

Siehe Abbildung unten.

4

Klicken Sie auf OK.

5

Klicken Sie auf JA (2x).

6

Klicken Sie auf OK.



Die Tabelle PythonExample hat jetzt zwei Datenquellenattribute, Amount und Case_ID. Siehe Abbildung unten.


Die Überprüfung des Attributs Betrag zeigt, dass alle Beträge mit zwei multipliziert wurden. In der Abbildung unten sehen Sie ein Beispiel für die Ausgabe, die vom Python-Skript generiert wird.



War diese Seite hilfreich?

Hilfe erhalten
RPA lernen – Automatisierungskurse
UiPath Community-Forum
UiPath Logo weiß
Vertrauen und Sicherheit
© 2005-2024 UiPath. All rights reserved.