UiPath Documentation
functions
latest
false
Zu den Funktionen im Benutzerhandbuch
  • Überblick
    • Über Funktionen
  • Python-Funktionen
  • Bereitstellen und ausführen

Erstellen von Python-Funktionen

Eine Python-Funktion besteht aus drei Teilen: einer typisierten Eingabe, einer typisierten Ausgabe und einer Einstiegspunktfunktion, die die eine der anderen zuordnet. Diese Seite behandelt jede von ihnen sowie die Fehlerbehandlung und das Bereitstellen mehrerer Funktionen aus einem Projekt.

Eingegebene Eingabe und Ausgabe

Definieren Sie Input und Output als typisierte Pythons. Verwenden Sie pydantic.dataclasses.dataclass – was die SDK-Beispiele verwenden – damit die Laufzeit die eingehende Nutzlast validiert und ein sauberes JSON-Schema exportiert, auch für optionale, geschachtelte und selbstreferenzierende Felder. Ein pythTische BaseModel verhält sich genauso; Eine Stdlib @dataclass wird ebenfalls akzeptiert und ist für einfache, flache Eingaben in Ordnung, führt aber keine Validierung durch und exportiert weniger vollständige Schemas für komplexe Typen. Jede Aufrufoberfläche rendert dieses exportierte Schema, um Variablen zu binden – eine Serviceaufgabe von Maestro, eine Aktivität Run Job in Orchestrator oder eine Aktivität Run Job von Studio. Der Einstiegspunkt kann eine Synchronisierung von def oder async def sein – beide werden unterstützt.

from pydantic.dataclasses import dataclass


@dataclass
class Input:
    document_id: str = ""
    amount: float = 0.0


@dataclass
class Output:
    result_id: str = ""
    status: str = ""


def main(input: Input) -> Output:
    # business logic
    return Output(result_id="123", status="success")
from pydantic.dataclasses import dataclass


@dataclass
class Input:
    document_id: str = ""
    amount: float = 0.0


@dataclass
class Output:
    result_id: str = ""
    status: str = ""


def main(input: Input) -> Output:
    # business logic
    return Output(result_id="123", status="success")

Unterstützte Typen

  • Primitive: str, int, float, bool
  • Arrays: list[str], list[dict]
  • Geschachtelte Datenklassen oder pylastische Modelle
  • NULL-fähige Felder: Optional[X]

Geben Sie Felder Standardwerte an, damit das Schema sauber generiert wird und die Funktion bei teilweiser Eingabe einfach aufgerufen werden kann.

Einstiegspunkte

Die Datei uipath.json deklariert, welche Funktionen aufrufbar sind:

{
  "functions": {
    "main": "main.py:main"
  }
}
{
  "functions": {
    "main": "main.py:main"
  }
}

Mehrere Einstiegspunkte

Ein einzelnes Projekt kann mehrere Funktionen bereitstellen. Listen Sie jede in uipath.json auf:

{
  "functions": {
    "extract": "main.py:extract_data",
    "validate": "main.py:validate_data",
    "post_erp": "main.py:post_to_erp"
  }
}
{
  "functions": {
    "extract": "main.py:extract_data",
    "validate": "main.py:validate_data",
    "post_erp": "main.py:post_to_erp"
  }
}

Führen Sie uipath init nach dem Hinzufügen von Einstiegspunkten aus, um die Eingabe-/Ausgabeschemas neu zu generieren.

Fehlerbearbeitung

Eine Funktion kann auf zwei Arten einen Geschäftsfehler signalisieren. Beide werden unterstützt – wählen Sie basierend auf der Art und Weise aus, wie der aufrufende Prozess Fehler behandelt:

  • Geben Sie es in der Ausgabe zurück. Fügen Sie Felder wie ein Status-Flag oder ein error_message zu Ihrem Output hinzu. Der Auftrag wird erfolgreich abgeschlossen und der Aufrufer – z. B. ein Maestro-Prozess – verzweigt sich in diesen Feldern.
  • Löst eine Ausnahme aus. Der Auftrag schlägt mit einem Fehler der Kategorie USERfehl und Ihre Ausnahmemeldung wird im Fehler gespeichert, sodass der Aufrufer sie im Vorfeld behandeln kann – z. B. mit einem angehefteten Ereignis in einem Maestro-Prozess.

Um einen Fehler in der Ausgabe zurückzugeben, fügen Sie die benötigten Felder hinzu und füllen Sie sie im Fehlerpfad aus:

from pydantic.dataclasses import dataclass


@dataclass
class Output:
    result_id: str = ""
    status: str = ""
    error_type: str = ""
    error_message: str = ""


def main(input: Input) -> Output:
    try:
        result = process_data(input)
        return Output(result_id=result, status="success")
    except ValidationError as exc:
        return Output(status="error", error_type="VALIDATION_ERROR", error_message=str(exc))
from pydantic.dataclasses import dataclass


@dataclass
class Output:
    result_id: str = ""
    status: str = ""
    error_type: str = ""
    error_message: str = ""


def main(input: Input) -> Output:
    try:
        result = process_data(input)
        return Output(result_id=result, status="success")
    except ValidationError as exc:
        return Output(status="error", error_type="VALIDATION_ERROR", error_message=str(exc))

Erfassen Sie nur die Ausnahmen, die Sie aussagekräftig beschreiben können. Lassen Sie unerwartete Fehler so werden, dass die Auftragsfehler auftreten – dass sie im Orchestrator-Auftragsverlauf mit der ursprünglichen Nachricht angezeigt werden.

Nächste Schritte

  • Eingegebene Eingabe und Ausgabe
  • Unterstützte Typen
  • Einstiegspunkte
  • Mehrere Einstiegspunkte
  • Fehlerbearbeitung
  • Nächste Schritte

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