UiPath_データテーブルを順番に回したい

この記事はUiPath AdventCalender6日目の記事です。みんなで盛り上がりましょう！！！
https://qiita.com/advent-calendar/2021/uipath

## 注意
今回の解説で使用するのはCommunity Licence(コミュニティ版)です。
またUiPathのバージョンは2021.10.3で説明しています。
アクティビティの表記の一部はアクティビティのバージョンにより微妙に表記が異なることもありますのでご承知おきください。

## あらすじ

複数のデータテーブルに情報を格納して、それらを使って次の処理へ...という感じでデータテーブルを使い回してみたい。データテーブルを順番に回す方法ってあるのでしょうか？？？
さおは調べてみた。

### データテーブルを順番に処理する方法
いろいろ探っていたら「これはいいかも」と思ったので、ざっくりでまずはフローを構築。
(今回は実験的な意味なのでフローはざっくりですが、普段はもっと丁寧に定義して作りますよ！)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/3eabe0d1-e2f0-6275-8c71-ede3b601bdea.png)



上記のフロー図から2つのデータテーブル変数「sss」と「ttt」をそれぞれ作って値を突っ込んでみて、sss→tttの順で回してみましょう。(テーブル内の値は適当です)
Datatable変数：sss
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/9d90119e-449c-bd65-5d06-f5a61ea9ed3e.png)

Datatable変数：ttt
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/c9f6bd9b-438f-5e2b-30f7-a347cd6b2deb.png)

この後、2つのデータテーブル変数に格納されているrow(0)にあたるColumn1の値にはそれぞれ「長野県」、「福岡県」と「大分県」、「東京都」という値が格納されています。
順番に「長野県」→「福岡県」→「大分県」→「東京都」と取得できるのか試してみましょう。

### 1.リスト型の変数を定義する
リスト型の変数を以下のように作成します。(変数の名前はわかりやすいものにしましょう)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/84328b66-e76d-bbc1-d9de-a18c34c8185a.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/a0097e61-e6df-3718-c2f9-630556446743.png)
変数はリスト型で設定します。この時の変数の定義はデータテーブル型の変数にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/18ed5e37-cf61-56f8-e99d-8212fb877cf9.png)
※Variable type(変数)にないときは、「Browse for Types...」からリスト型を探してみよう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/dcc78149-4207-7dc8-95af-3f36117f68c9.png)


### 2.コレクションに追加する
次にAddToCollectionアクティビティ(コレクションに追加)を2つ用意し変数を格納します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/c333a705-4947-61e0-15c1-f79e4efac47e.png)

【1つ目のデータテーブル】
Collection：LisAAA(1.で生成した変数)
item　　　：sss
TypeArgument：Datatable
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/333b2764-73ff-1f02-c183-45f135b4249f.png)

【2つ目のデータテーブル】
Collection：LisAAA(1.で生成した変数)
item　　　：ttt
TypeArgument：Datatable
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/82c27933-f80e-7eed-d2b9-f8b235fee619.png)

### 3.リスト型の変数を使って繰り返し回してみよう

【ForEach(繰り返し)アクティビティ】
プロパティは以下のように設定します。
TypeArgument：Datatable
Values：LisAAA
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/00b6f217-54b6-9e75-9a89-945a5a7ba7df.png)

【ForEachRow(繰り返し(データ テーブルの各行))アクティビティ】
For Each側：CurrentRow(デフォルト)
※古めのバージョンでは「row」になっています。
In：item(この時"item"にはデータテーブル変数のsssとtttがリストで入っています。)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/bdcb0b8e-6629-b750-af3e-92da002c05e9.png)

できたので実行してみましょう！
すると、row(0)で指定したColumn1の値がデータテーブル変数sss→tttの順で出てきました！
「長野県」→「福岡県」→「大分県」→「東京都」の順で出ていますね♪
(データテーブル変数sssの処理が終わると、データテーブル変数tttへ処理が進むようになります。)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/39ead8ef-5a75-1d74-e09e-cb91fb579aa4.png)

### ポイント
データテーブルをエクセルのように扱えるようになれば、今後はデータテーブルの活用範囲も広がるかもしれません！
今回はリスト型を使ってデータテーブルの順番を定義して処理してみましたが、今後もこういった疑問に対して調査や検証をしていこうと思います！