通知を受け取る

UiPath Data Service

UiPath Data Service ガイド

エンティティをプロジェクトで使用する

Data Service で作成したエンティティを使用すれば、単一のオブジェクトにデータを集約して管理・操作することができ、煩雑な作業が不要になります。そのためには、Studio の v2020.8 以降が必要です。

以下のサンプルでは、オリンピック大会とメダルに関するデータのうち、競技の各カテゴリにおける上位 10 か国と、それらの国々が獲得したメダルのデータを収集します。

 

Data Service 内のエンティティ


Following the steps detailed in the Creating an Entity page, we created an entity for storing information about participating nations, the opening and closing dates, and the medals they won.

Olympics」(オリンピック) エンティティには、名前 (Name)、参加国 (Nations)、開幕日 (Opening Date)、閉幕日 (Closing Date) といったフィールドがあります。「Medals」(メダル) エンティティには、国 (Country)、金 (Gold)、銀 (Silver)、銅 (Bronze)、総メダル数 (Total) といったフィールドがあります。これら 2 つのエンティティは、Relationship タグによって互いにリンクされています。

14631463

 

Studio にインポートされるエンティティ


Import the entity inside your workflow in Studio, as explained in the Importing Entities page.

次のワークフローは、特定のオリンピック大会に関する情報をスクレイピングし、データを引数にマッピングして、それらをメイン ワークフローに渡します。

477477

そのために、収集する情報の種類ごとに引数を定義しました。その結果、インポートされる引数は 5 つになりました。

11231123

エンティティを使用することで、データの収集に必要な作業は 2 つの引数のインポートと処理だけになりました。

📘

注:

エンティティは、使用前に New 演算子を使用して初期化されるか、Data Service から読み取られるか、ワークフロー内の入力引数を介して渡される必要があります。そうしないと、エンティティの値を代入したり読み出したりしたときにエラーが発生する可能性があります。

11501150

The collected data is mapped to the two arguments inOlympics Year and outOlympics and their respective properties, the same as the fields defined in the entity. By using entities we're reduced the number of arguments needed for passing along information by properly mapping data to their respective entity fields.

 

データ レコードを作成する


データの収集が完了したら [エンティティ レコードを作成] アクティビティを使用して、情報を Data Service に追加できます。

この例では、収集した情報を Data Service に渡すために、インポートした引数を使用しました。[入力] レコードおよび [出力] レコードは、データを渡すために使用される Olympics 型の変数の値です。

857857

プロジェクトの実行後、以下のレコードが Data Service 内に作成されました。

18141814

構造化データでレコードを作成する

データ テーブルに構造化されたレコードは、[繰り返し (各行)] アクティビティを使用して Data Service に渡すことができます。この例では、各国が獲得したメダル数に関する構造化データを収集し、それらのレコードを Data Service に渡す、ワークフローを呼び出しています。

410410

ワークフローの実行後、以下のデータが Data Service に保存されます。

12101210

Olympics」エンティティと「Medals」エンティティ間に設定されたリレーションシップによって、一方のデータ レコードを他方で使用することができます。たとえば、「Medals」エンティティ内の「Olympics」フィールドの値は、関連エンティティ内の値と同じになります。

 

クエリ関連のレコード


[エンティティ レコードにクエリを実行] アクティビティを使用して Data Service からレコードのリストを抽出できます。次の例で使用しているアクティビティでは、「Olympics」エンティティのデータ レコードに対してクエリを実行し、ユーザーがオリンピックの特定の大会を選択して、「Medals」エンティティから各参加国が獲得したメダル数を書き出せるようにしています。

18901890

For querying the Olympics table, we've used the Name != NULL condition from the Query Builder. This goes through all records from the Name column and outputs them in the listOlympics variable to be used in the Input Dialog activity.

To show the list of records as options, we've used the following Lambda expression listOlympics.Select(Function (o as Olympics) o.Name).ToArray in the Input Dialog activity. Alternatively, the For Each activity can be used.

The selection is mapped to the selectedOlympics variable and used in another Query Entity Records activity for going through the list of medals won at that specific edition. This condition was set by using the equals option in the Query Builder.

12011201

クエリは選択したエンティティと、その関連エンティティのレコードに対して実行できます。

ページネーション

Data Service には多数のレコードが格納されている可能性があります。特定の数のレコードに対してのみクエリを実行するには、[エンティティ レコードに対してクエリを実行] アクティビティの [ページネーション] プロパティを使用します。[上限] プロパティの値は最大 1,000 まで対応しています。つまり、一度に 1,000 件のレコードに対してクエリを実行できるということです。

この例では、最初の 5 件のレコードに対してクエリを実行してから、次の 5 件に対して実行するという方法を、リストの最後のレコードが取得されるまで繰り返します。

974974

To perform this, the skip Int64 variable was assigned the initial value of 0, and then its value is incremented after each loop until the last record is grabbed.

848848

最初の 5 つのメダルを取得した後、[繰り返し (コレクションの各要素)] アクティビティを使用して、参加国およびそれらの国々が獲得したメダル数をメモ帳ファイルに書き出します。

 

エンティティ レコードを更新 (Update Entity Record)


以下のシナリオでは、Data Service 内のエンティティ レコードを更新してから、そのデータを Studio と同期させる方法を説明します。

Data Service 内の「Medals」エンティティに移動してから、[新しいフィールドを作成] をクリックし、新しい列として [Yes/No] 型の「HostCountry」(開催国) を追加します。[保存] をクリックします。

12671267

Studio の [エンティティを管理] をクリックしてから、[更新] ボタンをクリックします。「Medals」エンティティの変更が検出されたことが [変更箇所] 列に示されています。[保存] をクリックすると、Studio でエンティティが更新されます。

16151615

 

レコードをクエリおよび更新する


[エンティティ レコードを更新] アクティビティを使用すると、Data Service のレコードをワークフローから直接更新できます。

この例では、「Medals」エンティティの特定のレコードに対してクエリを実行し、上記のアクティビティを使用してそれらを自動的に更新しています。

Medals」エンティティでは、各大会の開催国を、国名の横にアスタリスクを付加して示しています。たとえば、2012 年大会の場合、開催国が「Olympics」列に「Great Britain (GBR)*」(英国) として記録されています。

13821382

Using the Query Entity Records activity, we go through all records that contain the asterisk (*), grab the records in the listMedals variable and use the For Each activity to loop through each item and assign the True value in the HostCountry column next to the country that hosted a particular edition.

[エンティティ レコードを更新] アクティビティは、他のさまざまな状況においても、Data Service にデータを渡したり、レコードを更新したりするために使用できます。

5 か月前に更新

エンティティをプロジェクトで使用する


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

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