1. irohamaru

    Posted

    irohamaru
Changes in title
+【BluePrism】Collectionでよく使うアクション
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,92 @@
+Collections, Collection Manipulationは非常によく使うオブジェクトの一つです。
+多数のアクションがありますが、よく使うものは限られます。
+
+↓Collection Manipulationのアクション一覧です。
+![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186221/7f7594c0-3dd7-78a8-67ab-96a228dd3425.png)
+
+見るからにいろいろできそうですが、個人的によく使うのは**4つだけ**です(笑)
+
+- Collectionsオブジェクト
+ - Add Row
+ - Remove All Rows
+
+- Collection Manipulationオブジェクト
+ - Filter Collection
+ - Append Rows to Collection
+
+※**Append Rows to Collection**については、混同しやすい**Marge Collecton**と合わせて解説します。
+
+##行追加
+####Collectionsオブジェクト:Add Row
+空行を追加する場合はこれです。
+Collection Manipulationオブジェクトでないことに注意です。
+Collection Manipulationとは違い、コレクション名を**文字列で**指定する必要があります。
+![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186221/d0036394-c68c-36c2-c368-c5c26d657d12.png)
+
+##一括削除
+####Collectionsオブジェクト:Remove All Rows
+例えば、ループ内で同じコレクション変数を使いまわしたい場合、
+ループ冒頭でコレクションを初期化するときに使います。
+![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186221/b749e34f-8b05-28d0-8d66-ab0894e4019e.png)
+
+
+##絞り込み
+####Collection Manipulationオブジェクト:Filter Collection
+絞り込み以外にコレクションデータの削除にも使えるので非常に便利。
+
+**絞り込んだ結果のコレクションを別のコレクションに保持できる**のがミソです。
+
+下図の例では、絞り込み対象は**経路一覧コレクション**ですが、結果は**明細データ一覧**となっており、元のコレクションには影響を与えず、新規のコレクションに結果を格納しています。
+![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186221/7015e326-3b86-7eb7-fc8f-24d35a7c8934.png)
+![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186221/12f0addb-22da-bfb4-48b7-1a442c29c73f.png)
+
+入力・出力とも同じコレクションにすれば、データ削除としても活用できます。
+
+##列結合
+####Collection Manipulationオブジェクト:Marge Collection
+列結合は**Marge Collection**です。
+下図は「経路一覧1」「経路一覧1-1」コレクションを列結合する例です。
+![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186221/4fbd9d3c-0ad1-fb12-2c30-59df8aba497d.png)
+![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186221/a11cbf8c-6e32-b3f3-4970-355ddf18f929.png)
+![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186221/436b29a9-00aa-213a-6822-d7fc2a79dca4.png)
+列結合結果はJoin結果というコレクションに格納するとします。
+![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186221/46d6dfc2-c1cf-69fc-78b1-89c37ee9a814.png)
+
+結果↓
+![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186221/6c698e41-a4ec-8f88-e443-cd9f4035c079.png)
+
+結合する2つのコレクションで、重複する列名があった場合はエラーになってしまいます。
+![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186221/a83b9dff-7b27-7160-e416-ac1b36440bf6.png)
+
+
+##行結合
+####Collection Manipulationオブジェクト:Append Rows to Collection
+行結合は**Append Rows to Collection**です。
+**Marge Collection**と混同しやすいので注意しましょう。
+
+下図は「経路一覧1」「経路一覧2」コレクションを列結合する例です。
+![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186221/4fbd9d3c-0ad1-fb12-2c30-59df8aba497d.png)
+![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186221/7ef4fbea-8db7-1dd2-22e5-a7f2c9cfa6e5.png)
+![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186221/6367c4b1-1c49-dd50-3596-3cc3ad364b9a.png)
+行結合結果はUnion結果というコレクションに格納するとします。
+![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186221/0f66cf4f-6ad0-e866-b99e-39e9feb0c50d.png)
+
+結果↓
+![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186221/dde14ed7-98ba-b977-ade3-fbba6e3af821.png)
+
+結合する2つのコレクションで、列数・列名が異なる場合はエラーになってしまいます。
+
+列数が異なる場合
+![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186221/772eadf3-7422-0639-4ae4-e3efea2727db.png)
+列名が異なる場合
+![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186221/79ca04f6-c733-1f7b-008e-e04be429bb7b.png)
+
+行追加(Append Rows to Collection)は、ベースとなるコレクションに1行ずつ追加していく処理などでよく使います。
+
+##値代入
+####Collection Manipulationオブジェクト:Set Collection Field
+指定した行・列に対してパラメータを代入したい場合に使います。
+行インデックスを別途変数に持たせる必要がある点に注意です。
+![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186221/efcc58e5-6ea7-2cdb-6bc7-92b7ec9654ad.png)
+
+