【UiPath】「コレクションを活用したデータ操作の使用法」を理解する【初心者】
UiPathの学習追体験記事です。
※あくまで学習中の脳内を記事にしたものなので、この記事で書かれてあることが”正しい”とは限りません。
参考:学習効率本5巻 「知識の自作」
0.動機

「UiPath RPA アソシエイト資格試験」を受けたい!
と思い、練習問題のプラクティステストを受けてみたが、正答率は半分にも満たなかった。徹底的にプラクティステストの復習をするしかない!
ということで、本記事では、プラクティステストで間違えた問題の復習の様子を書きつらねていきます。
まずは、間違えた問題の紹介。
毎月レポートをダウンロードする必要があります。[繰り返し(コレクションの各要素)(For Each)]アクティビティを使用して1年間の月を反復処理することにしました。月の名前を格納するのに適したデータタイプはどれですか。
引用元:https://www.pearsonvue.co.jp/uipath
UiPath RPA アソシエイト資格試験 プラクティステスト
解説部分には、この問題で求めている知識が紹介されていた。内容は以下。※答えは明示されてない
トピック:コレクションを活用したデータ操作の使用法を説明する。
引用元:https://www.pearsonvue.co.jp/uipath
UiPath RPA アソシエイト資格試験 プラクティステスト

ん、「コレクション」ってなんだ??
データ操作については、前回一通り学習した。今回は、「コレクション」の学習がメインになりそうだ。
よって、今回は「コレクション」に着目して復習する。
1.座学
書籍やネットの情報をもとに学習
検索
理解する対象に関する情報を書籍やネットで調べる。
今回の理解の対象である「コレクション」については、以下の記事がとても参考になった。

まずは、「コレクション」の説明文を見てみる。
コレクション
コレクションは逆に要素数が不定の集まりに向いていて、
要素の追加、削除が行いやすいデータ型です。
引用元:https://blog-tips.sekenkodqx.jp/2020/02/12/uipath-array-collection/

コレクションは、データ型なんだね。これ大事!
「要素数が不定の集まり…」という記載を見る限り、単一のデータ型ではなく、複数のデータ型みたいだ。
吟味
「コレクション」の説明文を軸に考えを膨らませる。


上記記事を調べたところ、
コレクションと配列を同記事内で紹介していた。そのため、2つのデータ型は類似関係にあると予想できる。
上記のコースを調べたところ、
配列は、「複数のデータ」にカテゴライズされていた。他に、キュー・リスト・ディクショナリがあった。つまり、コレクションは、「複数のデータ」にカテゴライズされ、これらの型と類似していると予想できる。

ふむふむ、コレクションは「複数のデータ」にカテゴライズされるデータ型なんだね。
これまで、「表形式のデータ」のDataTable型は使用したことあるけど、「複数のデータ」の型は使用したことないな。
まずは、「複数のデータ」のコレクション型を実際に使用してみた方がよさそう。
2.実践
実際に手を動かすことで理解を深める。
コレクション型を使用してみる
UiPath Studioのアクティビティ検索で「コレクション」と検索すると、以下のアクティビティがあった。
この中で一番シンプルそうな「コレクションに追加」アクティビティを使用してみる。
・参考記事
自力で「コレクションに追加」アクティビティの実行を試みたが、一歩も動けなかった。そのため、下記の記事を参考に進める。

・「コレクションに追加」アクティビティを試す
変数を作成。
変数の型を上記画像のように設定
既定値を上記画像(new list(of String))のように設定
プロパティを上記画像のように設定。

とりあえず、記事のマネをしている。
理解は、後からやってくるはず。
この段階で、変数Testをメッセージボックスで表示してみる。
実行。

プロパティ>項目
上記の欄に記入の「コレクション」という文字列が表示されるのかな。
は???
「コレクションに追加」アクティビティを無効化して、再度実行してみる。

変数になにも値が格納されていないから、空欄が表示されるのかな。
Why???
・「繰り返し(コレクションの各要素)」アクティビティを試す
参考記事通り、「繰り返し(コレクションの各要素)」アクティビティを使って、メッセージボックスで表示させてみる。
「繰り返し(コレクションの各要素)」アクティビティでは、思ったように表示された。

「繰り返し(コレクションの各要素)」アクティビティでは、表示する変数が「item」になってる。そもそも、変数パネルに「item」という変数はない。もしかすると、「繰り返し(コレクションの各要素)」アクティビティが自動で作成する変数なのかも。
確かめてみよう!
実行中のワークフローのローカルパネルを確認する。
「繰り返し(コレクションの各要素)」アクティビティに実行ポイントが移った段階では、変数は「Test」のみ。その変数に格納されている値を確認すると、、ごちゃごちゃしてた。もしかすると、このごちゃごちゃした値が、メッセージボックスで表示されたため、よく分からない値が表示されたのかもしれない。

ふむふむ、ってことは、コレクションの型に格納されている値をなにかしらの変数に代入して、その変数を表示する必要があるのかもしれない。
さらに、実行を進めてみる。
「繰り返し(コレクションの各要素)」アクティビティの中のシーケンスに実行ポイントが移った段階でローカルパネルの変数の欄を見ると、新しく「item」という変数が登場していた。この変数の値を確認すると、文字列の「コレクション①」が格納されていた。

つまり、コレクションの型Testに格納されている値が、変数itemに代入されたってことだね。
さらに、実行を進める。
変数itemに格納されている「コレクション①」が表示された。

コレクションの型を「複数のデータ」の1つと考えると、「複数のデータ」にカテゴライズされている型は、今回の現象と同じふるまいをするかもしれない。次回試してみよう。
・「繰り返し(コレクションの各要素)」アクティビティをさらに試す
「繰り返し」という名称のアクティビティなので、繰り返してみた。
ワークフローは以下画像。「コレクションの追加」アクティビティを増やしただけ。
ローカルパネルの変数の様子を見ながら実行。
コレクションに追加する前の変数Testは、上記画像。
すべての「コレクションに追加」アクティビティを実行し終えた状態で、変数Testの中身を見ると、上記画像のように、値が格納されていた。
実行を進めて、メッセージボックスで「コレクション①」が表示される前の変数itemを確認すると、文字列のコレクション①が表示されていた。

変数Testに格納されている次の値「コレクション②」を表示する場合、変数itemには、どのように表示されるのだろう。
変数itemに格納されている値が「コレクション①」から「コレクション②」に変わった。

表示される値が、上書きされる感じだね。
同様。
3.まとめ
「コレクション」に着目して、学習を行ってみた。今回の学習で理解したことを自分の言葉でまとめてみる。
・コレクションの型の変数を表示させる場合は、単一のデータ型の変数にデータを渡す必要がある

コメント