- Visão geral
- Funções do Python
- Implantar e executar
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
- Uma conexão do Integration Service para o conector, declarada como uma associação. Consulte Declarar uma associação de recurso.
- Uma sessão autenticada do UiPath CLI (
uip).
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
-
Liste as atividades do conector e o objeto para o qual cada uma mapeia:
uip is activities list uipath-microsoft-outlook365 --output tableuip is activities list uipath-microsoft-outlook365 --output table -
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 Atividade | Object | Operação | Path |
|---|---|---|---|
| Get Email By Id | Message | GETBYID | /hubs/productivity/messages/{id} |
| Get Email List | Message | GET | /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.
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
-
Importe
ActivityMetadataeActivityParameterLocationInfo: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, ) -
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}, ) -
Mapeie a resposta do conector para seu
Outputmodelo.
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.
| Campo | Roteia a entrada para |
|---|---|
path_params | Espaços reservados em object_path, como {id} |
query_params | A string de consulta |
header_params | Cabeçalhos de solicitação. |
body_fields | O corpo da solicitação |
multipart_params | Campos de formulário com várias partes |
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
- Acessando serviços de plataforma — outros recursos de plataforma disponíveis no runtime.
- Teste e depuração — execute e depure a função.