UiPath Documentation
functions
latest
false
Guide de l'utilisateur des fonctions
  • Vue d'ensemble (Overview)
    • À propos des fonctions
  • Fonctions Python
  • Déployer et exécuter
Important :
Ce contenu a été traduit à l'aide d'une traduction automatique. La localisation du contenu nouvellement publié peut prendre 1 à 2 semaines avant d’être disponible.

Appeler une activité Integration Service

Appelez une opération de connecteur à partir d'une fonction Python avec invoquer_activité et résolvez le chemin d'objet derrière un nom d'activité Studio à l'aide de la UiPath CLI.

Les noms d’activité Studio tels que Obtenir l’e-mail par ID sont des libellés appliqués à un objet et à une opération de connecteur. Python n'a pas de recherche équivalente par nom d'activité, de sorte qu'une fonction appelle l'opération sous-jacente directement via connections.invoke_activity, décrivant la requête avec ActivityMetadata.

Prérequis

  • Une connexion Integration Service pour le connecteur, déclarée comme une liaison. Voir Déclarer une liaison de ressource.
  • Une session de UiPath CLI (uip) authentifiée.
Remarque :

sdk.connections.retrieve() renvoie uniquement les métadonnées de connexion, telles que l’identifiant, l’URI de base et le dossier. Il n'appelle pas le connecteur. invoke_activity appelle retrieve en interne, donc les deux ne sont pas nécessaires.

Résoudre le chemin de l'objet pour une activité

  1. Dressez la liste des activités du connecteur et de l'objet auquel chacune correspond:

    uip is activities list uipath-microsoft-outlook365 --output table
    uip is activities list uipath-microsoft-outlook365 --output table
    
  2. Décrivez l’objet pour obtenir le chemin concret de chacune de ses opérations:

    uip is resources describe uipath-microsoft-outlook365 Message \
        --connection-id <connection-id>
    uip is resources describe uipath-microsoft-outlook365 Message \
        --connection-id <connection-id>
    

Résultat

Les deux commandes résolvent un nom d'activité en chemin. Pour Obtenir l’e-mail par ID:

Nom de l'activitéObjetOpération (Operation)Chemin d'accès
Get Email By IdMessageGETBYID/hubs/productivity/messages/{id}
Get Email ListMessageGET/messages

Les deux mêmes commandes fonctionnent pour n'importe quel connecteur, il s'agit donc de la méthode générale pour transformer un nom d'activité en définition ActivityMetadata.

Important :

GETBYID est le type d'opération du connecteur, et non un verbe HTTP. Transmettez method_name="GET" à ActivityMetadata.

Appelez l'opération à partir de votre fonction

  1. Importer ActivityMetadata et ActivityParameterLocationInfo:

    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,
    )
    
  2. Décrivez la requête et acheminez chaque entrée vers son emplacement:

    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},
    )
    
  3. Associez la réponse du connecteur à votre modèle Output.

Résultat

Le SDK remplace id dans le chemin et envoie la requête:

GET /elements_/v3/element/instances/{connectionId}/hubs/productivity/messages/{id}
GET /elements_/v3/element/instances/{connectionId}/hubs/productivity/messages/{id}

Le segment instances comporte l’ID de connexion, et non le elementInstanceId des métadonnées de connexion.

Routage des entrées avec parameter_location_info

Chaque champ de ActivityParameterLocationInfo nomme les clés de activity_input qui appartiennent à une partie de la requête.

ChampAchemine l'entrée vers
path_paramsEspaces réservés dans object_path, par exemple {id}
query_paramsLa chaîne de requête
header_paramsEn-têtes de requête.
body_fieldsCorps de la demande
multipart_paramsChamps de formulaire multipart
Avertissement :

Une entrée qui n'est pas répertoriée dans parameter_location_info est supprimée sans erreur. Une clé mal orthographiée apparaît comme un paramètre manquant dans la réponse du connecteur, et non comme un échec d'appel.

Les réponses du connecteur varient par version. Le même enregistrement peut arriver sous forme d'objet barré, encapsulé dans une liste ou à l'intérieur d'une enveloppe items, et les noms de champ peuvent suivre la forme du fournisseur ou une forme de connecteur aplati. Lisez les champs dont vous avez besoin de manière défensive plutôt que de supposer une seule forme.

Prochaines étapes

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