UiPath Documentation
functions
latest
false
Guía del usuario de funciones
  • Información general
    • Acerca de las funciones
  • Funciones de Python
  • Implementar y ejecutar
Importante :
Este contenido se ha traducido mediante traducción automática. La localización de contenidos recién publicados puede tardar entre una y dos semanas en estar disponible.

Llamar a una actividad de Integration Service

Llama a una operación de conector desde una función de Python con invocar_actividad y resuelve la ruta del objeto detrás de un nombre de actividad de Studio utilizando la UiPath CLI.

Los nombres de actividad de Studio como Obtener correo electrónico por ID son etiquetas en un objeto y operación de conector. Python no tiene una búsqueda equivalente por nombre de actividad, por lo que una función llama a la operación subyacente directamente a través de connections.invoke_activity, describiendo la solicitud con ActivityMetadata.

Requisitos previos

Nota:

sdk.connections.retrieve() devuelve solo metadatos de conexión, como el ID, el URI base y la carpeta. No llama al conector. invoke_activity llama a retrieve internamente, por lo que ambos no son necesarios.

Resolver la ruta del objeto para una actividad

  1. Enumera las actividades del conector y el objeto al que cada una se asigna:

    uip is activities list uipath-microsoft-outlook365 --output table
    uip is activities list uipath-microsoft-outlook365 --output table
    
  2. Describe el objeto para obtener la ruta concreta para cada una de sus operaciones:

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

Resultado

Los dos comandos resuelven un nombre de actividad en una ruta. Para Obtener correo electrónico por ID:

Nombre de actividadObjetoOperaciónRuta
Obtener correo electrónico por IDMessageGETBYID/hubs/productivity/messages/{id}
Obtener lista de correo electrónicoMessageGET/messages

Los mismos dos comandos funcionan para cualquier conector, por lo que esta es la receta general para convertir un nombre de actividad en una definición ActivityMetadata.

Importante:

GETBYID es el tipo de operación del conector, no un verbo HTTP. Pasa method_name="GET" a ActivityMetadata.

Llama a la operación desde tu función

  1. Importar ActivityMetadata y 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. Describe la solicitud y enruta cada entrada a su ubicación:

    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. Asigna la respuesta del conector a tu modelo Output.

Resultado

El SDK sustituye id en la ruta y emite la solicitud:

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

El segmento instances lleva el ID de la conexión, no los elementInstanceId de los metadatos de la conexión.

Entradas de enrutamiento con parámetro_ubicación_info

Cada campo de ActivityParameterLocationInfo nombra las claves de activity_input que pertenecen a una parte de la solicitud.

CampoEnruta la entrada a
path_paramsMarcadores de posición en object_path, como {id}
query_paramsLa cadena de consulta
header_paramsSolicitar encabezados.
body_fieldsEl cuerpo de la solicitud
multipart_paramsCampos de formulario de varias partes
ADVERTENCIA:

Una entrada que no aparece en parameter_location_info se descarta sin error. Una clave mal escrita aparece como un parámetro faltante en la respuesta del conector, no como una llamada fallida.

Las respuestas del conector varían según la versión. El mismo registro puede llegar como un objeto simple, envuelto en una lista o dentro de un sobre items, y los nombres de campo pueden seguir la forma del proveedor o una forma de conector aplanado. Lee los campos que necesitas de forma defensiva en lugar de asumir una forma.

Próximos pasos

¿Te ha resultado útil esta página?

Conectar

¿Necesita ayuda? Soporte

¿Quiere aprender? UiPath Academy

¿Tiene alguna pregunta? Foro de UiPath

Manténgase actualizado