通知を受け取る

UiPath Studio

UiPath Studio ガイド

ライブラリに Web サービスを読み込む

Studio では、[サービス エディター] ウィンドウを通じて SOAP あるいは REST Web サービス、または Postman コレクションからアクティビティを直接生成できます。

SOAP および REST Web サービス

指定されたリンクにサービスの定義 (Swagger または WSDL) が含まれている限り、このウィンドウを使用すると、特定の Web サービスのすべてのメソッドまたはエンドポイント (REST または SOAP) を自動的にロードできます。

読み込まれたら、アクティビティを自動的に作成するエンドポイントまたはメソッドを選択します。選択されたすべての項目は、[アクティビティ] パネルの [サービス エディター] ウィンドウで指定した [名前空間] の下に表示されます。

これらのライブラリを .nupkg ファイルとしてパッケージ化し、Orchestrator またはカスタムの場所にパブリッシュできます。その結果、新しく定義したアクティビティを協力する他の開発者と簡単に共有できます。

サービスを追加する

Web サービスからアクティビティを生成するには、次の手順を行います。

  1. Studio でライブラリを作成します (手順については、「ライブラリについて」ページを参照)。
  2. [デザイナー] タブで [新しいサービス] をクリックするか、[プロジェクト] パネルで [サービス] を右クリックしてから [新しいサービス] をクリックします。[サービス エディター] ウィンドウが表示されます。
750
  1. Swagger または WSDL リソースへのファイル パスまたはリンクを追加します。[読み込み] をクリックします。Web サービスから定義されたすべてのエンドポイントが [サービス エディター] ウィンドウに読み込まれます。
750
  1. [操作を検索します] 検索ボックスに必要なメソッドまたは操作を入力します。以下のような結果が表示されます。Swagger の場合、各エンドポイントにおいて、メソッドが色付きで表示されます。[すべて解除] チェックボックスを使用して、すべてのエンドポイントの選択を解除し、読み込みたいエンドポイントを選択します。名前空間は自動生成されます。これは、新しい名前を入力すれば変更できます。
  2. [保存] をクリックします。これで、サービスがプロジェクト ツリーと連携するようになります。
387
  1. デザイナー パネルで生成したアクティビティを使用するには、[アクティビティ] パネルに移動します。[使用可能] のアクティビティのセクションでサービスの名前空間を検索し、それぞれのアクティビティをパネルにドラッグします。

📘

注:

SOAP サービスについては、SOAP クライアントのみを読み込むことを推奨します (HttpGet または HttpPost クライアントは読み込みません)。
Swagger サービスについては、サービスがサーバーからの応答を逆シリアル化できない場合、Swagger スキーマを調べ、モデル定義に必須のプロパティがあるかどうかを検索することを推奨します。

サービスを編集するには、[プロジェクト] パネルの [サービス] で該当するサービスを右クリックして、[サービスを編集] を選択します。

プロジェクトがソース管理下にある場合、ライブラリの project.json ファイルのみをチェックアウトすると、SOAP や REST Web サービスがロードされた .xaml ファイルで編集サービスオプションが有効化されます。

サービスを追加したり編集したりすると、ライブラリの定義を含む project.json ファイルとサービスドキュメントに反映されます。project.json ファイルに webServices ノードが追加されます。それぞれのサービスは次の要素によって特定されます。

895
ParameterDescription
namespaceThe name of the service provided in the Service Editor window.
serviceDocumentThe path to the .json file containing metadata for the SOAP or Swagger service. The file is used when the service is repaired, and should be versioned as part of the project.
webDocumentUriThe file path or link to the Swagger or SOAP resource (provided when the service is created in the Service Editor window).
uniqueReferenceA reference needed for versioning the service.

サービスを修復する

SOAP または REST Web サービスから生成された dll ファイルは、ソース管理リポジトリにプッシュされません。このため、プロジェクトは、サービスを含むライブラリをチェックアウトした際にデザイナー パネルでアクティビティを解決していません。

これらのアクティビティを修復してサービスの .dll ファイルを再生成するには、[プロジェクト] パネルでサービス ノードを右クリックし、コンテキスト メニューで [サービスを修復] を選択します。

393

SOAP または REST サービスのメタデータと追加情報は、Studio に読み込まれる各サービスの .json ファイルに格納されます。読み込まれたサービスに関連する .json ファイルがない場合は、サービス ノードに関する [修復サービス] コンテキスト メニューのオプションによって、サービス作成時に入力されたドキュメント記述子へのリンクを使用して欠損している .json ファイルが生成されます。その結果、サービスが最初に生成された際に適用されていたフィルターは、それ以降適用されなくなり、前述のパスまたはリンクにより提供されるすべてのリソースがインポートされます。

一括更新コマンド ライン パラメーター」ページに記載されている UiPath.Studio.CommandLine.exe コマンド ライン ユーザー インターフェイスを使用したライブラリのパブリッシュでは、Web サービスは考慮されていません。

📘

注:

SOAP または REST サービスから生成されたアクティビティは、Studio ではローカライズできません。

Web サービスで生成されるアクティビティをループ内で複数回呼び出すには、メイン ライブラリ ファイルから別のワークフローを作成し、その中でサービス メソッドを呼び出します。さらに、メイン ワークフローの[繰り返し (コレクションの各要素)] アクティビティ内で[ワークフロー ファイルを呼び出し] アクティビティを使用して、先ほど作成したワークフローを呼び出します。

Web サービスから生成されたアクティビティの詳細については、このページをご覧ください。

名前空間をインポートする

Studio v2020.4 では、インポートされた Swagger サービスを伴うライブラリという観点で、重大な変更が加えられました。Studio が Swagger サービスからの .json ファイルを解釈する方法が変更されたため、既存のサービスを [サービスを編集] ウィンドウから編集する場合にかぎり、後方互換性の問題が発生します。

以下の例では、Petstore デモ Web サービスを例に、この変更について説明します。

Studio v2020.4 より前では、ライブラリ プロジェクトにサービスを追加した後、コンテキスト メニューの [型の参照…] を使用すると、SwaggerPetstore アセンブリ名に次の名前空間が表示されます。

973

UiPath.WebClient._ClientNamespace をドリルダウンすると、次の型が表示されます。

966

つまり、[AddPet] アクティビティを Studio ライブラリの xaml ファイルで使用した場合、それはUiPath.WebClient._ClientNamespace に含まれていたということです。次の抜粋のように、要求の生成には _ClientAddPetRequest 型を使用していました。

xmlns:uw_="clr-namespace:UiPath.WebClient._ClientNamespace;assembly=SwaggerPetstore" 
...
<uw_:AddPetActivity BearerToken="{x:Null}" ClientCertificate="{x:Null}" ClientCertificatePassword="{x:Null}" Headers="{x:Null}" OAuth2Token="{x:Null}" Password="{x:Null}" Username="{x:Null}" DisplayName="AddPet" Endpoint="[&quot;https://petstore.swagger.io/v2&quot;]" sap:VirtualizedContainerService.HintSize="200,22.4" sap2010:WorkflowViewState.IdRef="AddPetActivity_1" TimeoutMS="30000">
      <uw_:AddPetActivity.Request>
        <uw_:_ClientAddPetRequest Body="{x:Null}" />
      </uw_:AddPetActivity.Request>
    </uw_:AddPetActivity>
  </Sequence>
</Activity>

Studio v2020.4 を使用する場合、同じ Web サービスをインポートすると、次の名前空間が表示されます。

1048

UiPath.WebClient.PetClientNamespace を展開すると、次の型が表示されます。

1046

つまり、[AddPet] アクティビティを v2020.4 で作成した Studio ライブラリの xaml ファイルで使用すると、それは UiPath.WebClient.PetClientNamespace に含まれ、要求の生成には PetClientAddPetRequest 型を使用するということです。これらは、v2020.4 より前のバージョンで作成されたライブラリのものとは異なる名前空間と型です。

以下に、v2020.4 で作成した、そのようなライブラリの抜粋を示します。

xmlns:uwp="clr-namespace:UiPath.WebClient.PetClientNamespace;assembly=SwaggerPetstore"
...
<uwp:AddPetActivity BearerToken="{x:Null}" ClientCertificate="{x:Null}" ClientCertificatePassword="{x:Null}" Headers="{x:Null}" OAuth2Token="{x:Null}" Password="{x:Null}" Username="{x:Null}" DisplayName="AddPet" Endpoint="[&quot;https://petstore.swagger.io/v2&quot;]" sap:VirtualizedContainerService.HintSize="200,22.4" sap2010:WorkflowViewState.IdRef="AddPetActivity_1" TimeoutMS="30000">
      <uwp:AddPetActivity.Request>
        <uwp:PetClientAddPetRequest Body="{x:Null}" />
      </uwp:AddPetActivity.Request>
    </uwp:AddPetActivity>
  </Sequence>
</Activity>

Postman コレクション

API 定義の作成や、それら定義のコレクションへのグループ化に、Postman アプリケーションを使用できます。これによって、要求をまとめて整理し、連鎖させることができます。Postman は API 要求間でデータを渡すスクリプトをサポートします。コレクション作成の詳細については、Postman のオンライン ドキュメントをご覧ください。

Postman のコレクションが既に存在する場合は、その要求を Studio に読み込んでアクティビティを生成できます。このコレクションのメンテナンスは Postman で行い、変更はすべてワークフローにも反映されます。

Studio は Postman コレクションへのアクセス権限を API キーによって受け取ります。このキーは、[サービス エディター] ウィンドウの [ファイルまたはリンク] フィールドに追加する必要があります。したがって、要求への変更も Postman のみで行い、Studio では行いません。

Studio はコレクションに定義されたすべての要求を読み込み、リクエストは個別には実行できません。Studio 内のコレクションの編集と修復は、SOAP または REST Web サービスと同じ方法で行います。

Postman コレクションを使用する前提条件

Newman のインストール後は、マシンを再起動することを推奨します。

Postman コレクションを使用する例

下記の例では、ある通貨の価値を get して Studio の [出力] パネルに表示するために、Postman コレクションを使用しています。

この例では、受信したデータを繰り返し処理するテスト スクリプトを作成しました。グローバル変数をスクリプト内で直接宣言していますが、Postman のグローバル変数の設定スニペットも使用できます。詳細は、こちらをご覧ください。

1311

入力引数で通貨 EUR の価値を出力引数に渡しています。これはライブラリの [プロパティ] パネル > [入力] > [コレクション] で確認できます。出力引数も、同じパネルの [出力] セクションに表示されています。

1492

アクティビティの出力引数は、変数にマッピングされ、その値が [出力] パネルに書き込まれます。

変数の戻り値を検証するために、[条件分岐 (if)] アクティビティを使用できます。この例では、値が返されることを検証し、それを [出力] パネルに書き込みました。

2 年前に更新


ライブラリに Web サービスを読み込む


改善の提案は、API リファレンスのページでは制限されています

改善を提案できるのは Markdown の本文コンテンツのみであり、API 仕様に行うことはできません。