- Überblick
- Python-Funktionen
- Erste Schritte
- Erstellen von Python-Funktionen
- Zugriff auf Plattformdienste
- Ressourcenbindungen
- Deklarieren Sie eine Ressourcenbindung
- Rufen Sie eine Integration Service-Aktivität auf
- Nachverfolgung und Überwachung
- Testen und Fehlerbehebung
- Bereitstellen und ausführen
Rufen Sie einen Connector-Vorgang aus einer Python-Funktion mit invoke_activity auf und lösen Sie den Objektpfad hinter einem Studio-Aktivitätsnamen mithilfe der UiPath CLI auf.
Studio-Aktivitätsnamen wie Get Email By ID sind Beschriftungen für ein Connector-Objekt und einen Vorgang. Python hat keine gleichwertige Suche nach Aktivitätsname, daher ruft eine Funktion den zugrunde liegenden Vorgang direkt über connections.invoke_activity auf und beschreibt die Anforderung mit ActivityMetadata.
Voraussetzungen
- Eine Integration Service-Verbindung für den Connector, die als Bindung deklariert wurde. Siehe Deklarieren einer Ressourcenbindung.
- Eine authentifizierte UiPath-CLI-Sitzung (
uip).
sdk.connections.retrieve() gibt nur Verbindungsmetadaten zurück, wie die ID, den Basis-URI und den Ordner. Der Connector wird nicht aufgerufen. invoke_activity ruft retrieve intern auf, sodass beide nicht benötigt werden.
Lösen Sie den Objektpfad für eine Aktivität auf
-
Listen Sie die Aktivitäten des Connectors und das Objekt auf, dem jeder zugeordnet ist:
uip is activities list uipath-microsoft-outlook365 --output tableuip is activities list uipath-microsoft-outlook365 --output table -
Beschreiben Sie das Objekt, um den konkreten Pfad für jeden seiner Vorgänge zu erhalten:
uip is resources describe uipath-microsoft-outlook365 Message \ --connection-id <connection-id>uip is resources describe uipath-microsoft-outlook365 Message \ --connection-id <connection-id>
Ergebnis
Die beiden Befehle lösen einen Aktivitätsnamen in einen Pfad auf. Für „Get Email By ID“:
| Aktivitätsname | Objekt | Betrieb | Pfad |
|---|---|---|---|
| Get Email By Id | Message | GETBYID | /hubs/productivity/messages/{id} |
| Get Email List | Message | GET | /messages |
Dieselben beiden Befehle funktionieren für jeden Connector. Dies ist also das allgemeine Schema, um einen Aktivitätsnamen in eine ActivityMetadata -Definition umzuwandeln.
GETBYID ist die Vorgangsart des Connectors, kein HTTP-Verb. Übergeben Sie method_name="GET" an ActivityMetadata.
Rufen Sie den Vorgang über Ihre Funktion auf
-
Importieren Sie
ActivityMetadataundActivityParameterLocationInfo:from uipath.platform import UiPath from uipath.platform.connections.connections import ( ActivityMetadata, ActivityParameterLocationInfo, )from uipath.platform import UiPath from uipath.platform.connections.connections import ( ActivityMetadata, ActivityParameterLocationInfo, ) -
Beschreiben Sie die Anforderung und leiten Sie jede Eingabe an ihren Speicherort weiter:
sdk = UiPath() payload = sdk.connections.invoke_activity( activity_metadata=ActivityMetadata( object_path="/hubs/productivity/messages/{id}", method_name="GET", content_type="application/json", parameter_location_info=ActivityParameterLocationInfo( path_params=["id"], ), ), connection_id=OUTLOOK_CONNECTION_KEY, activity_input={"id": message_id}, )sdk = UiPath() payload = sdk.connections.invoke_activity( activity_metadata=ActivityMetadata( object_path="/hubs/productivity/messages/{id}", method_name="GET", content_type="application/json", parameter_location_info=ActivityParameterLocationInfo( path_params=["id"], ), ), connection_id=OUTLOOK_CONNECTION_KEY, activity_input={"id": message_id}, ) -
Ordnen Sie die Connector-Antwort Ihrem Modell
Outputzu.
Ergebnis
Das SDK ersetzt id in den Pfad und gibt die Anforderung aus:
GET /elements_/v3/element/instances/{connectionId}/hubs/productivity/messages/{id}
GET /elements_/v3/element/instances/{connectionId}/hubs/productivity/messages/{id}
Das Segment instances enthält die Verbindungs-ID, nicht elementInstanceId aus den Verbindungsmetadaten.
Weiterleitung von Eingaben mit parameter_location_info
Jedes Feld von ActivityParameterLocationInfo benennt die Schlüssel von activity_input, die zu einem Teil der Anforderung gehören.
| Feld | Leitet die Eingabe weiter an |
|---|---|
path_params | Platzhalter in object_path, z. B. {id} |
query_params | Die Abfragezeichenfolge |
header_params | Anforderungsheader |
body_fields | Der Anforderungstext |
multipart_params | Mehrteilige Formularfelder |
Eine Eingabe, die nicht in parameter_location_info aufgeführt ist, wird ohne Fehler verworfen. Ein falsch geschriebener Schlüssel wird als fehlender Parameter in der Connector-Antwort angezeigt, nicht als fehlgeschlagener Aufruf.
Connector-Antworten variieren je nach Version. Derselbe Datensatz kann als leeres Objekt, in eine Liste eingebettet oder in einem items -Umschlag eintreffen, und Feldnamen können entweder der Form des Anbieters oder einer vereinfachten Connector-Form folgen. Lesen Sie die Felder, die Sie benötigen, defensiv, anstatt eine einzige Form annehmen.
Nächste Schritte
- Zugriff auf Plattformdienste – andere Plattformressourcen, die zur Laufzeit verfügbar sind.
- Testen und Debuggen – Führen Sie die Funktion aus und debuggen Sie sie.