【初心者向け】RPAを学ぶ ～RPAExpress～

# はじめに
RPAって実際どんなものなんだろう。
そう思いいろいろ見てみたら、Work Fusion社がRPAExpressという
無料のRPAツールを提供しているそうなので、実際に動かしながらRPAについて学んでみました。

# RPAとは
RPAとは、Robotic Process Automationの略で、主に、
ホワイトカラーの業務を自動化するテクノロジーであり、
単純なフロント/バックオフィスの業務を自動化することが可能です。

# RPAと相性が良い業務
RPAは以下のような業務に対して相性が良いと言われています。

+ 一定のルールに従って繰り返し行われる。

+ 構造化されたデータを扱う。

+ 業務プロセスが標準化されている。

+ プロセス実行に3人以上のリソースが求められる。

+ ヒューマンエラーが起こりやすい。

例）新規アカウントの作成、競合の価格情報の抽出、各種手続きの照合処理 etc...

# RPAの3つの段階
RPAには以下の3つの段階があると言われています。

1.RPA（Robotic Process Automation）
→決められた処理に従って自動的に処理を行う。

2.EPA（Enhanced Process Automation）
→大量のデータを解析し、その結果を出力する。

3.CA（Cognitive Automation）
→読み取ったデータを加味した上で、多様な選択肢もしくは新しい選択肢を提示する。

RPAの最終段階はAI機能を持ち、単に指示したことを行うのではなく
ロボット自体が考え最適解を提示してくれるようになることみたいです。

# RPA導入のメリット
RPAを導入するとどんなメリットがあるのでしょうか？
一般的には以下のようなことが挙げられます。

① 人件費のコストダウン
　一般に1人当たりの人件費のコストは1/10～1/3ほどのようです。

②業務処理のスピードアップ
　ロボットなので、24時間365日働き続けることができます。
　
③アウトプットの正確さ
　ヒューマンエラーが起きても、ロボットなのでミスしません。

④高付加価値業務へのリソース増強
　ロボットができるところはロボットに任せて、空いた人間のリソースを
　人間にしかできない業務に充てることができます。

#RPAExpress
実際にツールを動かしてみようということで、
今回は無償で提供されているWork Fusion社のRPAExpressを使ってみました。

## ダウンロード
[ここから](https://www.workfusion.com/rpa-express/)RPAExpressのダウンロードページに飛びます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/261552/7047d985-234d-87ed-bae0-56256b7031fd.png)
ページにとんだ先の「Download Now」をクリックすると上のような
入力フォームがでてきます。必要事項をいれてSubmitを押すと
入力したメールアドレスにダウンロードリンクが貼られたメールが送られてくるので
そこからダウンロードしてください。

注意）
・インストーラーが重く、ダウンロードに結構時間がかかります。
・32bitのwindowsにはインストールできないみたいです。
・メモリは8GBないとしんどいです。。。
・おきづきかもしれませんが、基本的に全て英語で書かれています。

## 起動
ダウンローができたらさっそく起動してみます。
RPAExpressのアイコンをクリックして起動すると、インジケーターに®みたいなアイコンが
でてきますので、それをクリックすると下のようになります。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/261552/d9a7824e-cb33-c04c-f669-4faa0c7bb816.png)

基本的には一番上の「WorkFusion Studio」でロボットを作っていきます。

## できること
WorkFusion Studioを開くと以下のような画面が出てきます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/261552/70e6b2f9-5d32-b9d2-6090-b69656869f5a.png)

RPAExpressではざっくり以下のようなアクションを使ってロボットを作っていきます。

|アクション名|できること|
|:---|:---|
|Application|アプリケーションの操作（ブラウザの起動など）|
|Excel|Excelの操作（Excelを開く、閉じる、カラムの値を取得、値を設定など）|
|Terminal|cmd等の操作。（非活性になっており、今は使えないっぽいです。）|
|Mouse|マウスの操作。（クリック、ドラッグ、スクロールなど）|
|Keyboard|キーボードからの入力。（EnterやTab等、自由に設定できます。）|
|Conditions|if-elseでの分岐。（case文は使えないみたいです。。。）|
|Loops|繰り返し。（While,Repeat,Retry,ForEachが使えます。）|
|Web|Webでの操作。（URL指定でWebページを開いたり、Webページ上のElementを取得できたりします。）|
|Variables|変数の操作。（ExcelやWebから取得した値を変数に入れ、それを使ってまた別のExcelやWebページに入力できたりします。）|

# 動かしてみる
今回はサンプルとして、
指定した駅から豊洲駅までの経済最短距離での片道運賃を
調べてくれるロボットを作成しました。


![image.png](https://qiita-image-store.s3.amazonaws.com/0/261552/bc10a176-152c-2679-9569-ba6a1e3b1613.png)


手順としては以下になります。（番号は上記画像内のActionの番号の処理です。）
1.Excelファイルを起動する。
2.開いたExcelファイルの1列目に記載されている駅名を取得し、list型の変数へ格納する。
3.取得した駅名の個数分ループを回す。
4.yahooの乗り換え案内をブラウザで開く。
5.乗り換え案内ページの出発駅にExcelから取得した駅名(listの要素)を入れる。
6.到着駅に「豊洲」と入力する。
7.検索ボタンを左クリックする。
8.検索結果ページの「料金の安い順」を左クリックする。
9.表示されたルートの値段部分をstring型の変数に格納する。
10.string型に格納された変数をlist型の変数に格納する。
11.ループが終了したのち、結果が格納されているlist型の変数を、Excelへ入力するためにtable型の変数へ格納する。
12.Excelファイルを起動する。
13.Excelへ結果を入力する。

取得前 : 
![image.png](https://qiita-image-store.s3.amazonaws.com/0/261552/d5361b02-5567-a1a6-4541-de8f07582aae.png)

取得後 : 
![image.png](https://qiita-image-store.s3.amazonaws.com/0/261552/2cc4743b-f200-a5e1-47c1-2676f1955f55.png)

うまく取得してくれました！！（うまくいくと気持ちが良い。）

# 感想

+ コーディング自体はやはり楽に感じました。（Actionを移動させて組み立てるだけなので）

+ ブラウザ内のクリック位置を指定するのにはXpathを指定するとよい。

+  ツール内も、チュートリアルも全英語は結構しんどかった。

# 終わりに
今回実際にツールを動かしてみることで、
「なるほど、こうやってロボットは作っていくのか。」とロボの作り方を理解できました。
（やっぱり手を動かして学ぶのが1番ですね。）

まだまだ、RPAについての知識は薄いので、より知識を深めつつ業務で使えるレベルまでなっていけたらと思いますー。