RPAツール(UiPath)を使って「大石泉すき」ポップアップを表示してみる

#概要
この記事は「大石泉すき」アドベントカレンダー11日目の記事です。

#大石泉とは？
>ソーシャルゲーム「アイドルマスター シンデレラガールズ」(デレマス)に登場する、
>プログラミングが趣味のアイドル
>参考：[pixiv大百科](https://dic.pixiv.net/a/%E5%A4%A7%E7%9F%B3%E6%B3%89#h3_13)

[「大石泉すき」 Advent Calendar 2019](https://qiita.com/advent-calendar/2019/ohishi-izumi-suki)より引用

765や315プロのPさんに囲まれる中で「アイマス」というコンテンツはほんのり知っていた程度でしたが、
大石泉さんはこのアドベントカレンダーで初めて知りました。
そのまま調べていくうちにめっちゃいい子やん…と気になってしまい、その勢いのまま思い切ってこのカレンダーに参加したため、
本当に新参者ですがよろしくお願いします:bow:

#RPAとは？
**R**obotic **P**rocess **A**utomationの略で、定型作業を自動化させる技術・概念のことを指します。
提携作業を人間の代わりに行うため、一人の労働者としてカウントし**Digital Labor（デジタルレイバー、仮想知的労働者)**とも言われています。
業務としては難しくはないんだけど、毎回同じ処理が続くから大変・・・というような処理を人間の代わりに行う、**業務改善の手段の１つ**です。（とても大事）

言語やフレームワークではないため、「RPA」と一口に言っても、その中に様々なツール(RPAツールと呼んだりしています)が存在しており、有名どころだと

- [WinActor (NTTアドバンステクノロジー社)](https://winactor.com/)
- [BizRobo! (RPAテクノロジーズ株式会社)](https://rpa-technologies.com/products/first/)
- [UiPath (UiPath株式会社)](https://www.uipath.com/ja/) *
- [Automation Anywhere (Automation Anywhere Inc.)](https://www.automationanywhere.com/jp/) *
- [Blue Prism (Blue Prism株式会社)](https://www.blueprism.com/japan/)
- [PowerAutomate (Microsoft)](https://www.publickey1.jp/blog/19/rpapower_automateignite_2019.html)※公式サイトがないためニュースサイトより

などがあります。(他にも様々なRPAツールがありますが、ここでは割愛します。。)
*印がついているRPAツールは「Community Edition」と呼ばれる無償版があり、導入していなくても学習目的で触ることが可能です。

#今回やりたいこと
1. [UiPath Community Edition](https://www.uipath.com/ja/developers/community-edition-download)(無償版)を使用して、大石泉(以下敬称略)が好きかどうかを質問するポップアップを表示します。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/420e75d9-4358-c076-1d42-a51719cbc6ec.png)
2. 大石泉が好きであれば「大石泉すき」と記載されたポップアップを表示します。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/f48f7722-910b-0bb7-7226-75b48a55476b.png)

3. 好きじゃなければ再度質問のポップアップを表示します。ｺﾜｸﾅｲﾖ  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/420e75d9-4358-c076-1d42-a51719cbc6ec.png)

※すしはどうなるのかって？この先は君の目で確かめてくれ！

#作業の流れ

## 1. UiPath Community Editionをインストールし、起動します  
こんな画面が出てくるので、新規プロジェクト→「プロセス」を選択し、新しいプロジェクト(自動化するロボットとなるファイル一式)を作成します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/5abec792-b386-ca7c-42cd-dca047ca2b21.png)

## 2. こんな画面が出てきます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/016bd551-ce5e-b647-1270-2a341e613346.png)
それぞれのパネルの説明は以下の通り

### アクティビティパネル  
業務の自動化に使用する処理を「アクティビティ」と呼ばれる部品にしたものが表示されたパネル
ここから必要なアクティビティを選んで、処理を自動化するロボット(※)を組み立てていきます

※RPAでは自動化してくれるプログラムのことを「ロボット」と呼んだりします
　私はそう呼んでるのですべて「ロボット」として記載します

### デザイナーパネル
アクティビティを組み立てる場所
アクティビティパネルから選んだアクティビティをこの領域にドロップして、ロボットを組み立てます

### 変数パネル
変数を作成、表示、管理します
タブを切り替えることで引数も使えます

### プロパティパネル
アクティビティに「何を操作するのか」「操作の時に使うインプット情報は何か」「操作の結果得たアウトプットは何に出力するか」といった、アクティビティを使用するにあたって必要な設定や情報を編集するパネル

## 3.アクティビティを入れる「ワークフロー」を作成する
アクティビティパネルの検索ボックスに「フローチャート」と入力し、「フローチャート」をデザイナーパネルへドロップします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/0b0119d2-c121-83bb-a9ca-1ea12ddf97b5.png)

Startと記載された箱が入った何かが出現します
このStartの下に処理をくっつけていきます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/3d5b46d3-1140-dff8-4b86-09c8cb5baa39.png)

## 4.入力ダイアログを表示させる
アクティビティパネルから「入力ダイアログ」を検索し、デザイナーパネルにドロップします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/7ac72dd5-43f2-acae-781c-148ac6dc9d37.png)
フローチャート内にアクティビティが表示されるので、ダブルクリックするとアクティビティに入力項目が出てくるので、画面上の指示に従って「タイトル」と「ラベル」を入力します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/7e97f60c-d351-8aac-f671-9e42bd3ed3cb.png)
とりあえずはテストのためこんなかんじで…
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/1b07017a-d09f-8bea-15a4-e67e5b267750.png)
入力が完了したら、デザイナーパネル上部のパンくずリストから「フローチャート」をクリックすると、ダブルクリックする前の画面に戻れます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/0488cc90-dfac-bbd6-7ec8-1a1124a15381.png)
Startの箱の下部分にマウスを近づけるとちっちゃい四角が出てくるので、そこからドラッグして現れる矢印を「入力ダイアログ」アクティビティにつなげます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/e793856b-be67-05e4-6c9a-17a84cdca77c.png)
これで入力ダイアログ表示させるロボットが完成です。ね、簡単でしょ？
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/4f48d89c-e85f-20a1-b81b-ab2f54413170.png)
画面上部にある「ファイルをデバッグ」を押すと、実際にロボットを動かせます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/57cead19-d5b2-b260-be7d-20d91c276718.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/c3448a40-e34b-dc52-852f-360ef0f9a600.png)

## 5.入力項目を選択式にする
入力項目を指定したり、入力された内容を出力する先を選択するには「入力ダイアログ」アクティビティをクリックすると現れるプロパティパネルの項目を編集します
「オプション」に配列形式で入力項目を指定すると、その項目の中から選択することができます。
また、「結果」に変数を指定することで、選択された項目がString型の値として出力されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/a53b63d2-679d-58cf-2175-daa375fa637a.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/420e75d9-4358-c076-1d42-a51719cbc6ec.png)

## 6.条件分岐を入れる
結果がうまく出力できれば、あとはその値に応じて処理を変えてあげるだけでOKなので、値を判別する分岐アクティビティを使用します
アクティビティパネルより「フロースイッチ」アクティビティを選択し、デザイナーパネルにドロップします
ドロップしたフロースイッチアクティビティのプロパティを編集します
「TypeArgument」をString型に変更することで、式の結果を何型で確認するか指定できます
「式」を入力ダイアログアクティビティで結果が格納された変数を指定することで、入力結果をもとに条件分岐ができます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/a7fe04fe-53f4-eeb3-2a9a-a3260c853043.png)

## 7.「すき」の場合の処理を組み立てる
「すき」が返ってきたときは「大石泉すき」ポップアップを表示させます
アクティビティパネルより「メッセージボックス」を検索し、デザイナーパネルにドロップ後、値を"大石泉すき"に変更します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/662fd540-10b1-5b15-5100-21c42f53aad6.png)

## 8.アクティビティを矢印でつなぐ
\#4と同様に、アクティビティを矢印でつないでいきます
「すき」の場合か否かを判断させるには、フロースイッチアクティビティからのばした矢印に式の結果がどのような場合にこの矢印に来るのか入力する項目があるため、その部分(DefaultCaseDisplayName、もしくはCase)に「すき」と入力します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/f7620177-6c49-329d-8b06-d80d2ecdaf6e.png)
これで実行すると…
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/70256162-dd03-8cce-880e-62ff840c9ab9.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/1e7243e3-b8aa-71da-bf39-4ac7588a7d89.png)
やったぜ。

## 9.「すきではない」場合の矢印をつなぐ
「すきではない」が返ってきたときは、最初の確認ポップアップが再度表示されるように仕込みます。ｺﾜｸﾅｲﾖ
フロースイッチからのばした矢印を、そのまま入力ダイアログの**上部**にドロップしてつなぎます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/daa35809-772c-b786-7da0-ae9c280620e5.png)
こちらも\#8と同様に、矢印の「ケース1」となっている部分を「すきではない」に変更します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/3d93cf07-aa89-041f-fe66-e46b1895c0d9.png)
これで再度ロボットを実行してみると…
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/7821da96-14aa-ca8c-420a-5bcc6c6d162f.png)
ﾋｴｯ…
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/e7d3835b-d7ed-17d0-2ab0-db6178c5ff27.png)


※「すし」は、これまでの手順を踏まえて自分の手で作ってみてください
（好きな寿司ネタをポップアップで表示させるとか…）

#最後に
今回はかなりふざけた形のロボットを作成してしまいましたが、皆さまの記事と違いコードではなく画像キャプチャで手順が説明されていてお分かりの通り、**GUI操作で特定の言語を知っている必要がない**のがRPAツールの強みです。（ほかのRPAツールも含めて）
それはプログラミング経験のない事務部門の方に使ってもらえることを想定しているため、「**〇〇(自分の得意な言語)でやればいいじゃん**」とは言わないでいただけるととても喜びます…:joy:
Windowsでの動作のみがサポートされているツールが多いなど、少し制約はありますが、今回の記事以上にもっといろんなことができたりと楽しいツールなので、もしRPAに興味がある方がいましたらぜひ触れてみて頂けると幸いです！

#最後の最後に
まだまだ大石泉すきを公言するにはまだまだ歴も知識も足りないので、立派な大石泉すき姉貴になれるよう、勉強していきたいと思います。
おすすめの文献や資料、やった方が(聞いた方が)いいコンテンツがありましたらぜひ教えて頂けると幸いです！
ここまでお読みいただき、本当にありがとうございました！:cherry_blossom: