UiPath Documentation
functions
latest
false
Guia do usuário de funções
  • Visão geral
    • Sobre funções
  • Funções do Python
  • Implantar e executar
Importante :
Este conteúdo foi traduzido com auxílio de tradução automática. A localização de um conteúdo recém-publicado pode levar de 1 a 2 semanas para ficar disponível.

Chamar uma atividade do Integration Service

Chame uma operação de conector de uma função do Python com invoke_activity e resolva o caminho do objeto por trás de um nome de atividade do Studio usando a UiPath CLI.

Nomes de atividades do Studio, como Get Email By ID são rótulos em um objeto de conector e operação. Python não tem pesquisa equivalente por nome de atividade, então uma função chama a operação subjacente diretamente por meio de connections.invoke_activity, descrevendo a solicitação com ActivityMetadata.

Pré-requisitos

Observação:

sdk.connections.retrieve() retorna apenas metadados de conexão, como o id, URI base e pasta. Ele não chama o conector. invoke_activity chama retrieve internamente, portanto, ambas não são necessárias.

Resolver o caminho do objeto para uma atividade

  1. Liste as atividades do conector e o objeto para o qual cada uma mapeia:

    uip is activities list uipath-microsoft-outlook365 --output table
    uip is activities list uipath-microsoft-outlook365 --output table
    
  2. Descreva o objeto para obter o caminho concreto para cada uma de suas operações:

    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

Os dois comandos resolvem um nome de atividade como um caminho. Para Get Email By ID:

Nome da AtividadeObjectOperaçãoPath
Get Email By IdMessageGETBYID/hubs/productivity/messages/{id}
Get Email ListMessageGET/messages

Os mesmos dois comandos funcionam para qualquer conector, portanto, essa é a receita geral para transformar um nome de atividade em uma ActivityMetadata definição.

Importante:

GETBYID é o tipo de operação do conector, não um verbo HTTP. Passe method_name="GET" para ActivityMetadata.

Chame a operação da sua função

  1. Importe ActivityMetadata e 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. Descreva a solicitação e encaminhe cada entrada para o local dela:

    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. Mapeie a resposta do conector para seu Output modelo.

Resultado

O SDK substitui id no caminho e emite a solicitação:

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

O segmento instances carrega o ID da conexão, não o elementInstanceId dos metadados de conexão.

Como rotear entradas com parameter_location_ Info

Cada campo de ActivityParameterLocationInfo nomeia as chaves de activity_input que pertencem a uma parte da solicitação.

CampoRoteia a entrada para
path_paramsEspaços reservados em object_path, como {id}
query_paramsA string de consulta
header_paramsCabeçalhos de solicitação.
body_fieldsO corpo da solicitação
multipart_paramsCampos de formulário com várias partes
AVISO:

Uma entrada que não está listada em parameter_location_info é descartada sem um erro. Uma chave com erro ortográfico aparece como um parâmetro ausente na resposta do conector, não como uma chamada com falha.

As respostas do conector variam de acordo com a versão. O mesmo registro pode chegar como um objeto simples, envolto em uma lista ou dentro de um items envelope, e os nomes de campos podem seguir a forma do provedor ou uma forma de conector mesclado. Leia os campos de que você precisa defensivamente em vez de supor uma forma.

Próximas Etapas

Esta página foi útil?

Conectar

Precisa de ajuda? Suporte

Quer aprender? Academia UiPath

Tem perguntas? Fórum do UiPath

Fique por dentro das novidades