UiPath Documentation
process-mining
2021.10
true
Wichtig :
Bitte beachten Sie, dass dieser Inhalt teilweise mithilfe von maschineller Übersetzung lokalisiert wurde. Es kann 1–2 Wochen dauern, bis die Lokalisierung neu veröffentlichter Inhalte verfügbar ist.

Process Mining-Benutzerhandbuch

Example: Creating a Python Script

Einleitung

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

Hinweis:

Die Beispiele in diesem Abschnitt basieren auf der 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 Betragswert 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.

SchrittAktion
1Gehen Sie zur Registerkarte Superadministrator-Einstellungen.
2Fügen Sie ein Feld GenericScriptHandlers mit einem Objekt als Wert mit einem Schlüssel „py“ hinzu, der als Wert den Pfad zu Ihrer ausführbaren Python-Datei hat. Beispiel: "GenericScriptHandlers": { "py": "P:/Python/bin/python.exe" }
3Klicken 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("Hallo Welt!")(1)beenden

Hinweis: Der Befehl debug(“Hello world!”) ist ein Beispiel für die Verwendung des Standardfehlerkanals zur Ausgabe von Meldungen und zur Debugausgabe.

3

Speichern Sie die Textdatei als script.py .

4

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

Dieses Skript gibt nur ein „Hallo Welt!“ 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 Standardfehler schreiben.

Hinweis:

Das Beispielskript wird mit Statuscode 1 beendet. Jeder Statuscode außer 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 Tabelle Verbindungszeichenfolge.

3

Benennen Sie New_table in PythonExample .

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 Tabellen-Scope auf Arbeitsbereich fest.

6

Doppelklicken Sie auf die Tabelle PythonExample , um das Fenster Verbindungszeichenfolgetabelle 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 Tabellen-Scope bestimmt. Dies kann entweder auf Server oder Workspace oder None festgelegt werden. Wenn auf Keiner festgelegt, ist der Pfad zur Skriptdatei absolut. Wenn er auf Server oder Workspace festgelegt ist, wird der Speicherort des Skripts als relativer Pfad interpretiert.

Wichtig:

Sie müssen die „Hello World!“- Begrüßung erhalten. Beispiel für ein funktionierendes Beispiel, um die verbleibenden Schritte zum Einrichten einer Schnittstelle mit einem externen Python-Skript erfolgreich abschließen zu können.

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 Fälle- Tabelle und einer Ereignistabelle . Siehe Abbildung unten.

Führen Sie die folgenden Schritte aus.

SchrittAktion
1Erstellen Sie eine neue globale Tabelle, PythonInputData.
2Fügen Sie ein neues Ausdrucksattribut hinzu, PythonInputData_Amount .
3Legen Sie den Typ auf Lookup fest.
4Legen Sie die Eingabetabelle auf Cases_base fest.
5Legen Sie den Ausdruck auf listtojson(text(double(records.Amount))) .
6Legen Sie die Ausdrucksebene auf Stamm fest.
7Klicken Sie auf OK.
8Fügen Sie ein weiteres Suchausdrucksattribut für die Case_ID hinzu. Legen Sie den Ausdruck auf listtojson(text(double(records.Case_ID))) fest.
Hinweis:

Das Format des Suchausdrucksattributs muss eine Liste von Zeichenfolgen sein. Dies liegt daran, dass die Funktion csvtable() verwendet wird, um die Daten in das Format .CSV umzuwandeln, das eine Liste von (Text-)Datensätzen erwartet. Da die Funktion listtojson() 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 ist Betrag vom Typ Währung) und der aktuell aktiven Anzeige ab Format. Hier wird der Währungstyp in Double konvertiert, um das spätere Analysieren der Datensätze im Python-Skript zu erleichtern.

Schreiben des Skripts

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

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

Führen Sie die folgenden Schritte aus.

SchrittAktion
1Laden Sie das neue Skript in den Arbeitsbereich hoch, überschreiben Sie die vorhandene Datei und gehen Sie zurück zur Anwendung.
2Klicken Sie mit der rechten Maustaste auf die Tabelle PythonExample und wählen Sie Bearbeiten… aus.
3Ändern Sie den inputData -Parameter der Abfragezeichenfolge für die PythonExample -Tabelle: + '&inputData=' + urlencode(csvtable( "Case_ID", jsontolist(PythonInputData.Case_ID), "Amount" , jsontolist(PythonInputData.Amount), )) Siehe Abbildung unten.
4Klicken Sie auf OK.
5Klicken Sie auf JA (2x).
6Klicken Sie auf OK.

Die PythonExample -Tabelle verfügt jetzt über zwei Datenquellenattribute, Amount und Case_ID. Siehe Abbildung unten.

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

War diese Seite hilfreich?

Verbinden

Benötigen Sie Hilfe? Support

Möchten Sie lernen? UiPath Academy

Haben Sie Fragen? UiPath-Forum

Auf dem neuesten Stand bleiben