- 概要
- Python の関数
- スタート アップ ガイド
- Python 関数の構築
- プラットフォーム サービスへのアクセス
- リソースのバインド
- リソース バインディングを宣言する
- Integration Service アクティビティを呼び出す
- トレースとオブザーバビリティ
- テストおよびデバッグする
- デプロイして実行する
invoke_activity を使用して Python 関数からコネクタ操作を呼び出し、UiPath CLI を使用して Studio アクティビティ名の背後にあるオブジェクト パスを解決します。
[ メールを ID で取得 ] などの Studio アクティビティ名は、コネクタ オブジェクトと操作のラベルです。Python にはアクティビティ名による同等のルックアップがないため、関数は connections.invoke_activityを介して基になる操作を直接呼び出し、要求を ActivityMetadataで記述します。
前提条件
- バインドとして宣言されたコネクタ用の Integration Service のコネクション。「 リソース バインディングを宣言する」をご覧ください。
- 認証済みの UiPath CLI (
uip) セッション。
sdk.connections.retrieve() は、ID、ベース URI、フォルダーなどのコネクションのメタデータのみを返します。コネクタは呼び出しません。invoke_activity 呼び出しは内部で retrieve されるため、両方は必要ありません。
アクティビティのオブジェクト パスを解決する
-
コネクタのアクティビティと、各アクティビティのマッピング先のオブジェクトを一覧表示します。
uip is activities list uipath-microsoft-outlook365 --output tableuip is activities list uipath-microsoft-outlook365 --output table -
オブジェクトを記述し、その各操作の具体的なパスを取得します。
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 で取得 | Message | GETBYID | /hubs/productivity/messages/{id} |
| メールのリストを取得 | Message | GET | /messages |
同じ 2 つのコマンドがどのコネクタでも機能するので、これはアクティビティ名を ActivityMetadata 定義に変換するための一般的なレシピです。
GETBYID はコネクタの操作の種類であり、HTTP 動詞ではありません。method_name="GET" を ActivityMetadataに渡します。
関数から操作を呼び出します
-
ActivityMetadataと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, ) -
要求を記述し、各入力をその場所にルーティングします。
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}, ) -
コネクタの応答を
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_params | object_pathのプレースホルダー (例: {id} |
query_params | クエリ文字列 |
header_params | 要求ヘッダー |
body_fields | 要求本文 |
multipart_params | マルチパート フォーム フィールド |
parameter_location_info のリストにない入力は、エラーなしに削除されます。キーのスペルが間違っていると、失敗した呼び出しとしてではなく、コネクタの応答に見つからないパラメーターとして表示されます。
コネクタの応答はバージョンによって異なります。同じレコードをベア オブジェクトとして、リストでラップするか、 items エンベロープ内に到着でき、フィールド名はプロバイダーの形状またはフラット化されたコネクタの形状に従うことができます。必要なフィールドを 1 つの形状を想定するのではなく、防御的に読み取ります。
次のステップ
- プラットフォーム サービスへのアクセス — 実行時に利用可能なその他のプラットフォーム リソース。
- テストとデバッグ — 関数を実行してデバッグします。