UiPath Documentation
functions
latest
false
函数用户指南
  • 概述
    • 关于函数
  • JavaScript functions
  • Python 函数
    • 入门指南
    • 构建 Python 函数
    • 访问平台服务
    • 资源绑定
    • 声明资源绑定
    • 调用 Integration Service 活动
    • 追踪和可观察性
    • 测试和调试
  • 部署并运行
重要 :
请注意,此内容已使用机器翻译进行了本地化。 新发布内容的本地化可能需要 1-2 周的时间才能完成。

调用 Integration Service 活动

使用调用活动从 Python 函数调用连接器操作,并使用 UiPath CLI 解析 Studio 活动名称后面的对象路径。

Studio 活动名称(如按 ID 获取电子邮件)是连接器对象和操作上的标签。Python 没有按活动名称进行的等效查找,因此函数直接通过 connections.invoke_activity 调用基础操作,并使用 ActivityMetadata 描述请求。

先决条件

  • 连接器的 Integration Service 连接,声明为绑定。请参阅声明资源绑定
  • 经过身份验证的 UiPath CLI (uip) 会话。
备注:

sdk.connections.retrieve() 仅返回连接元数据,例如 ID、基本 URI 和文件夹。它不会调用连接器。invoke_activity 会在内部调用 retrieve,因此两者都不需要。

解析活动的对象路径

  1. 列出连接器的活动以及每个活动映射到的对象:

    uip is activities list uipath-microsoft-outlook365 --output table
    uip is activities list uipath-microsoft-outlook365 --output table
    
  2. 描述对象以获取其每项操作的具体路径:

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

结果

这两个命令将活动名称解析为路径。对于按 ID 获取电子邮件

活动名称对象操作路径
按 ID 获取电子邮件MessageGETBYID/hubs/productivity/messages/{id}
获取电子邮件列表MessageGET/messages

两个命令相同,适用于任何连接器,因此,这是将活动名称转换为 ActivityMetadata 定义的一般方法。

重要提示:

GETBYID 是连接器的操作类型,而不是 HTTP 动词。将 method_name="GET" 传递给 ActivityMetadata

从您的函数中调用运算

  1. 导入 ActivityMetadataActivityParameterLocationInfo

    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. 描述请求,并将每个输入路由到其位置:

    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. 将连接器响应映射到您的 Output 模型。

结果

SDK 将 id 替换到路径中并发出请求:

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

instances 段携带连接 ID,而不是连接元数据中的 elementInstanceId

带参数位置信息的路由输入

ActivityParameterLocationInfo 的每个字段都命名属于请求一部分的 activity_input 的键。

字段将输入路由到
path_paramsobject_path 中的占位符,例如 {id}
query_params查询字符串
header_params请求标头
body_fields请求正文
multipart_params多部分表单字段
警告:

将删除 parameter_location_info 中未列出的输入,不会出现错误。拼写错误的按键在连接器响应中显示为缺失参数,而不是显示为失败的调用。

连接器响应因版本而异。同一记录可以作为裸对象、列表或 items 信封到达,字段名称可以遵循提供程序的形状或展平连接器的形状。防御性地阅读您需要的字段,而不是想当然。

后续步骤

  • 先决条件
  • 解析活动的对象路径
  • 结果
  • 从您的函数中调用运算
  • 结果
  • 带参数位置信息的路由输入
  • 后续步骤

此页面有帮助吗?

连接

需要帮助? 支持

想要了解详细内容? UiPath Academy

有问题? UiPath 论坛

保持更新