UiPath Documentation
functions
latest
false
Functions ユーザー ガイド
  • 概要
    • Functions について
  • Python の関数
  • デプロイして実行する
重要 :
このコンテンツは機械翻訳によって処理されています。 新しいコンテンツの翻訳は、およそ 1 ~ 2 週間で公開されます。

Integration Service アクティビティを呼び出す

invoke_activity を使用して Python 関数からコネクタ操作を呼び出し、UiPath CLI を使用して Studio アクティビティ名の背後にあるオブジェクト パスを解決します。

[ メールを ID で取得 ] などの Studio アクティビティ名は、コネクタ オブジェクトと操作のラベルです。Python にはアクティビティ名による同等のルックアップがないため、関数は connections.invoke_activityを介して基になる操作を直接呼び出し、要求を ActivityMetadataで記述します。

前提条件

注:

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>
    

結果の

この 2 つのコマンドは、アクティビティ名をパスに解決します。[ メールを ID で取得] の場合:

アクティビティ名オブジェクト操作パス
メールを ID で取得MessageGETBYID/hubs/productivity/messages/{id}
メールのリストを取得MessageGET/messages

同じ 2 つのコマンドがどのコネクタでも機能するので、これはアクティビティ名を 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ではありません。

parameter_location_info を使用して入力をルーティングする

ActivityParameterLocationInfoの各フィールドには、要求の一部に属するactivity_inputのキーに名前を付けます。

フィールド入力を以下にルーティングします。
path_paramsobject_pathのプレースホルダー (例: {id}
query_paramsクエリ文字列
header_params要求ヘッダー
body_fields要求本文
multipart_paramsマルチパート フォーム フィールド
警告:

parameter_location_info のリストにない入力は、エラーなしに削除されます。キーのスペルが間違っていると、失敗した呼び出しとしてではなく、コネクタの応答に見つからないパラメーターとして表示されます。

コネクタの応答はバージョンによって異なります。同じレコードをベア オブジェクトとして、リストでラップするか、 items エンベロープ内に到着でき、フィールド名はプロバイダーの形状またはフラット化されたコネクタの形状に従うことができます。必要なフィールドを 1 つの形状を想定するのではなく、防御的に読み取ります。

次のステップ

このページは役に立ちましたか?

接続

ヘルプ リソース サポート

学習する UiPath アカデミー

質問する UiPath フォーラム

最新情報を取得